Zabbix 版本:3.0.3(zabbix-server-mysql)
操作系统:Ubuntu 14.04 Trusty
主机数量(启用/禁用/模板):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 服务器性能”(代表)上的值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 trusty
主机上的代理运行 3 个监听器、1 个收集器和 1 个主动检查进程。
对于这 10 台主机中的 7 台,zabbix_get -s <host> -t net.tcp.port[<IP>,3128]
所有 3 项均可立即运行,其他 3 台主机运行约 3 秒并返回 0(这 3 台主机无法提供受监控的 IP)。
答案1
最后:
如果:
- 代理和服务器上的超时相同(默认值:超时 = 3)
- 有物品
net.tcp.port[<IP>,<port>]
和触发器使用它 [<IP>,<port>]
由于 TCP 超时,对不可用
然后:
“{HOST.NAME} 上的 Zabbix-agent 不可用”(触发器表达式:)
{agent.ping.nodata(2m)} = 1
开始在具有此项的主机上生成。不是特定项目的触发器,而是代理可用性。 这是漏洞,但是zabbix的小伙伴好像不太同意:
https://support.zabbix.com/browse/ZBX-10868
服务器和代理均使用 Zabbix 版本 3.0.3。
可能的解决方法:
- 使 zabbix_server.conf 中的超时时间大于 zabbix_agentd.conf 中的超时时间
- 像这样使用 UserParameter:
UserParameter=tcp_connect_check[*], /bin/nc -z "$1" "$2" -w "$3"; echo $?
并创建少于 zabbix_agentd.conf 中的连接超时的项目。为避免安全问题,请勿UnsafeUserParameters
在 zabbix_agentd.conf 中启用