Zabbix 5.0 LTS,跑了一年多了一直很稳定,前两天空间显示快满了,于是手贱清理了一下history_uint表(使用mysql truncate),结果折腾了一周。
大概故障如下:
- 最新数据不更新,查看通过agent取诸如cpu、磁盘的数据,经常是十几个小时都不更新
- 从而造成首页仪表板的报警一直在(即使问题已经解决),而新的问题始终出不来
- 同样造成了报警超时,经常是半夜的报警,下午3点一股脑发过来发几百条
- 而这些不更新的数据,使用zabbix-get却能很快得到数据。
- zabbix和这些服务器在同一网段,不过任何安全设备,所以也不是安全设备问题(我之前还怀疑是防火墙、安全设备做了数据过滤)
然后zabbix论坛、各种群问了好久都没解决,最后自己一番折腾似乎搞定了。
- 首先停掉zabbix-server,truncate掉几个历史表,因为有群友提醒会不会是时间不对。这个排除了已经。
- 然后启动zabbix-server
- 跑一段时间,会发现zabbix的poller和preprocess都在报超过75%。然后提高poller和preprocess。注意poller之前是500我出问题之后降到了300,但是preprocess一直都是默认的。
- 然后就正常了。
初步怀疑,应该是由于历史数据被清空后,zabbix需要去处理数据,但是数据量太大,跑不过来,所以来不及更新了(?)