Zabbix?Timeout?設(shè)置不當(dāng)導(dǎo)致的問(wèn)題及解決方案
今天跟大家分享一個(gè)關(guān)于 zabbix Timeout 值設(shè)置不當(dāng)導(dǎo)致的問(wèn)題,這個(gè)問(wèn)題不知道大家有沒(méi)有碰到過(guò)
問(wèn)題
事情經(jīng)過(guò)是這樣的:
把某一臺(tái) zabbix agent 的模板由原來(lái)的 Template OS Windows by Zabbix agent
換成了 Template OS Windows by Zabbix agent active
Template OS Windows by Zabbix agent active
使用 主動(dòng)模式 主動(dòng)獲取數(shù)據(jù)
Template OS Windows by Zabbix agent
使用 被動(dòng)模式 等待 Server 請(qǐng)求數(shù)據(jù)
也就是說(shuō)在主動(dòng)模式下,Zabbix Agent 主動(dòng)連接到 Zabbix Server 并發(fā)送監(jiān)控?cái)?shù)據(jù),Zabbix Server 只需監(jiān)聽(tīng)指定的端口,接收 Agent 發(fā)送過(guò)來(lái)的數(shù)據(jù)
結(jié)果發(fā)現(xiàn) zabbix server 接收不到數(shù)據(jù)
排查
查看 agent 日志(/var/log/zabbix/zabbix_agentd.log
),發(fā)現(xiàn) ZBX_TCP_READ() timed out
8452:20230620:134942.947 active check configuration update from [192.168.149.129:10051] started to fail (ZBX_TCP_READ() timed out) 8452:20230620:135044.072 active check configuration update from [192.168.149.129:10051] is working again 8452:20230620:140049.959 active check configuration update from [192.168.149.129:10051] started to fail (ZBX_TCP_READ() timed out) 8452:20230620:140149.093 active check configuration update from [192.168.149.129:10051] is working again
而且經(jīng)過(guò)進(jìn)一步排查,發(fā)現(xiàn):
- server 節(jié)點(diǎn)運(yùn)行正常,agent 節(jié)點(diǎn)正常運(yùn)行
- server 節(jié)點(diǎn)和 agent 節(jié)點(diǎn)之間可以 ping 通,而且 Telnet 端口可用
綜合上面的現(xiàn)象,懷疑是網(wǎng)絡(luò)原因?qū)е?TCP 建立連接時(shí)間超時(shí),agent 向 server 發(fā)送數(shù)據(jù)失敗
既然是網(wǎng)絡(luò)原因,那為什么我在修改模板(即被動(dòng)模式)之前,server 是能夠向 agent 獲取數(shù)據(jù)的
怎么被動(dòng)模式就沒(méi)超時(shí),主動(dòng)模式就超時(shí)了呢?
解決
在 Zabbix 中,timeout(超時(shí))是指在進(jìn)行監(jiān)控?cái)?shù)據(jù)獲取或傳輸時(shí),等待響應(yīng)的時(shí)間限制
在配置文件中如下所示,默認(rèn)值是 3 s
### Option: Timeout
# Spend no more than Timeout seconds on processing
# Timeout=3
我們分別來(lái)看下 server 和 agent 關(guān)于超時(shí)時(shí)間的配置
#server 端
Timeout=30#agent 端
Timeout=3
可以看到,sever 端設(shè)置的超時(shí)時(shí)間是 30 s,agent 端設(shè)置的超時(shí)時(shí)間是 3s,這兩個(gè)時(shí)間相差太大了吧
如果 agent 的 timeout 設(shè)置得太短,可能會(huì)導(dǎo)致一些請(qǐng)求無(wú)法完成;而如果 server 的 timeout 設(shè)置得太短,可能會(huì)導(dǎo)致 agent 的請(qǐng)求被錯(cuò)誤地判定為超時(shí)
結(jié)合上面的情況,可以得知:
- 主動(dòng)模式下,agent 向 server 發(fā)送數(shù)據(jù)的時(shí)候,agent 端設(shè)置的超時(shí)時(shí)間是 3s,有可能會(huì)出現(xiàn)網(wǎng)絡(luò)原因?qū)е?TCP 建立連接時(shí)間超時(shí),server 端獲取不到數(shù)據(jù),就會(huì)出現(xiàn)上面的問(wèn)題
- 被動(dòng)模式下,server 向 agent 獲取數(shù)據(jù),但是 server 端設(shè)置的超時(shí)時(shí)間是 30s,這個(gè)超時(shí)時(shí)間可以說(shuō)是非常大了
我們把 agent 端的超時(shí)時(shí)間改一下,跟 server 端一致
#agent 端
Timeout=30
重啟 agent 后發(fā)現(xiàn)日志沒(méi)有報(bào) started to fail (ZBX_TCP_READ() timed out)
錯(cuò),zabbix server 端也能夠獲取數(shù)據(jù)了
總結(jié)一下:
- 在 Zabbix 中,timeout 是指在進(jìn)行監(jiān)控?cái)?shù)據(jù)獲取或傳輸時(shí),等待響應(yīng)時(shí)間的限制
- Agent 和 Server 之間的超時(shí)時(shí)間設(shè)置應(yīng)該相互協(xié)調(diào),并根據(jù)實(shí)際網(wǎng)絡(luò)狀況和環(huán)境來(lái)進(jìn)行調(diào)整。如果 Agent 的 timeout 設(shè)置得太短,可能會(huì)導(dǎo)致一些請(qǐng)求無(wú)法完成;而如果 Server 的 timeout 設(shè)置得太短,可能會(huì)導(dǎo)致 Agent 的請(qǐng)求被錯(cuò)誤地判定為超時(shí)
- 主動(dòng)模式下 agent 的 timeout 值最好高于 server 配的 timeout 值,被動(dòng)模式下 server 配的 timeout 值最好高于 agent 的 timeout
If used with the passive agent, Timeout value in server configuration may need to be higher than Timeout in the agent configuration file. Otherwise the item may not get any value because the server request to agent timed out first.
到此這篇關(guān)于Zabbix Timeout 設(shè)置不當(dāng)導(dǎo)致的問(wèn)題的文章就介紹到這了,更多相關(guān)Zabbix Timeout 設(shè)置不當(dāng)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
分布式監(jiān)控系統(tǒng)之Zabbix主動(dòng)、被動(dòng)及web監(jiān)控的過(guò)程詳解
這篇文章主要介紹了分布式監(jiān)控系統(tǒng)之Zabbix主動(dòng)、被動(dòng)及web監(jiān)控的過(guò)程詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11zabbix agent2 監(jiān)控oracle數(shù)據(jù)庫(kù)的方法
這篇文章主要介紹了zabbix agent2 監(jiān)控oracle數(shù)據(jù)庫(kù)的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具體一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05zabbix監(jiān)控sqlserver的過(guò)程詳解
這篇文章主要介紹了zabbix監(jiān)控sqlserver的詳細(xì)過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-10-10Linux平臺(tái)Zabbix Agent的安裝配置方法
這篇文章主要介紹了Linux平臺(tái)Zabbix Agent的安裝配置方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-06-06關(guān)于YUM安裝部署Zabbix4.4.7使用mysql數(shù)據(jù)庫(kù)的問(wèn)題
這篇文章主要介紹了YUM安裝部署Zabbix4.4.7使用mysql數(shù)據(jù)庫(kù)的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03Zabbix如何通過(guò)ssh監(jiān)控獲取網(wǎng)絡(luò)設(shè)備數(shù)據(jù)
這篇文章主要介紹了Zabbix如何通過(guò)ssh監(jiān)控獲取網(wǎng)絡(luò)設(shè)備數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08zabbix監(jiān)控Linux系統(tǒng)服務(wù)的流程
這篇文章主要介紹了zabbix監(jiān)控Linux系統(tǒng)服務(wù)的流程,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10