最近zabbix server 出现大量告警,所有的主机agent.ping 都告警,一会又恢复了正常,这样反复一直持续,Zabbix agent on XXXX is unreachable for 5 minutes。其他监控项目取值都很正常,只有agent.ping取值断断续续。

手动在zabbix server 手动执行: root@zabbix:~# time zabbix_get -s 10.10.20.201 -k "agent.ping" 1

real 0m0.002s user 0m0.000s sys 0m0.000s

没有任何延时的问题。

所有的zabbix_agentd.conf 和 zabbix_server.conf 的timeout 早已经都设置为30了,重启agentd 和 server 进程都无效。

考虑可能是mysql 参数导致的问题,修改了mysql 参数问题还是一样。

无意中发现,只开了一台主机的监控,是不会发生:Zabbix agent on XXXX is unreachable for 5 minutes,就这样,一台主机一台主机的加入监控, 直到加了其中一台之后,就开始出现“zabbix agent on XXXX is unreachable for 5 minutes”。 这台主机用于监控oracle ,最近才添加一个自发现规则,监控效率低的sql (执行超过20秒,取前20行),主机属于cdb database ,用户偏多,所以sql_id 更多,自发现sql_id 监控项目不停的增加,已经达到3000了,因为自发现的规则设置的是“资源周期不足:30d”,导致已经无效的监控项要在30天后再删除。

手动修改了“资源周期不足:2d”,在把多余的监控项删除,现在监控项保留在700-800 之间,告警“zabbix agent on XXXX is unreachable for 5 minutes” 消失了。

大概率是个bug,一台主机的监控项超过一定数量就会出现这个问题。写出来防止大家入坑。