agent.ping在大量机器的情况下,一直误报。
-
具体体现为:
大批主机出现告警,不一会就又自动恢复了,导致真正有问题的主机混在其中无法及时发现。 -
经过分析:
有数据库insert慢影响的因素,导致监控的数据还未落库,此时触发器查不到值,就会触发nodata告警(如每2m agent主动上报一次数据,10:00:00 Up (1)数据已到,但10:00:02数据经观察,实际是在系统10:00:08才落库,显示在最新数据里是10:00:02 Up (1),由于查看数据是正确的,导致很容易迷惑查找出问题原因)。 -
解决:
观察最新数据的agent.ping值,总结上下两次监控数据实际落表的时间间隔(或从数据库里sql查看)。可以优化{agent.ping.nodata(10m)}=1的间隔时间,尽量避过插入间隔时间。此外,减少agent.ping监控历史数据保留时间,减少数据库数据量,也是加快监控数据落表的一个优化。
写在最后,zabbix 的mysql数据库对于大批量主机监控,感觉还是有瓶颈的,机器少的时候还好,量大了数据库的限制就体现出来。欢迎小伙伴们一起分享经验,讨论如何解决这个问题。