Zabbix:添加項目使代理不可用
Zabbix 版本:3.0.3 (zabbix-server-mysql)
作業系統:Ubuntu 14.04 值得信賴
主機數量(啟用/禁用/模板):28 / 0 / 57
項目數(啟用/禁用/不支持):1349 / 161 / 47
觸發器數量(啟用/禁用):902 / 39
所需的伺服器性能,每秒新值:22.86
Zabbix 伺服器配置:
StartPollers=5 StartPollersUnreachable=2 StartTrappers=5 StartDiscoverers=3 StartHTTPPollers=5
我有這樣 3 個項目的模板:
net.tcp.port[<IP>,3128]
. 模板應用於 10 個伺服器。這是問題:當我啟用此項目時,
zabbix-agent on <hostname> is not available for 2 minutes
開始隨機出現在應用模板的 10 個主機上。圖“Zabbix Server Preformance”(表示 )上的值,表示zabbix[wcache,values]
,從 19-19.5 開始下降到 16-17。代表的值zabbix[queue]
和以前一樣保持在 0。當我禁用項目時,問題消失了。
Zabbix 伺服器沒有因 I/O 或 CPU 過載,有大量可用記憶體。似乎不是硬體性能問題。主機上的 Zabbix 代理可用,我用
nc -vz <hostname> 10050
.這 10 台主機上的伺服器日誌或代理日誌均未出現異常。
我嘗試增加
ulimit -n
zabbix 伺服器程序,它增加了:cat /proc/<zabbix_worker_pid>/limits
現在顯示Max open files 10240 10240 files
. 沒有幫助。我嘗試將 StartPollers 的數量增加到 10 和 15 - 也沒有幫助。
伺服器發生了什麼?
更新:
商品類型:Zabbix 代理
所有系統都在執行 Linux ubuntu 14.04 值得信賴
主機上的代理執行 3 個偵聽器、1 個收集器和 1 個活動檢查程序。
對於這 10 台主機中的 7台,
zabbix_get -s <host> -t net.tcp.port[<IP>,3128]
所有 3 項都立即工作,在其他 3 台主機上,它工作約 3 秒並返回 0(受監控的 IP 不能從這 3 台主機獲得)。
最後:
如果:
- 代理和伺服器上的超時時間相同(預設值:超時 = 3)
- 有項目
net.tcp.port[<IP>,<port>]
和触發器使用它- TCP 超時導致對
[<IP>,<port>]
不可用然後:
“{HOST.NAME} 上的 Zabbix-agent 不可用”(觸發器表達式:)
{agent.ping.nodata(2m)} = 1
開始在具有此項目的主機上生成。不是特定項目的觸發器,而是代理可用性的觸發器。這是錯誤,但 zabbix 傢伙似乎不同意:https://support.zabbix.com/browse/ZBX-10868
用於伺服器和代理的 Zabbix 版本 3.0.3。
可能的解決方法:
- 使 zabbix_server.conf 中的 Timeout 大於 zabbix_agentd.conf 中的超時
- 像這樣使用 UserParameter:
UserParameter=tcp_connect_check[*], /bin/nc -z "$1" "$2" -w "$3"; echo $?
並創建項目連接超時小於 zabbix_agentd.conf。為避免安全問題,請不要UnsafeUserParameters
在 zabbix_agentd.conf 中啟用