场景:由于网络故障导致,导致zabbix几百上千台机子告警,邮件失败多次尝试发送,导致堆积了很多告警队列,其他邮件产生了时延
处理:方法1、通过修改mysql的zabbix库alerts表,把状态改为已发送或发送失败 (建议使用)
方法2、直接清理alerts表,但这种操作会导致action日志也被清理
说明:alerts表为告警日志表,记录zabbix action发送过的信息,status字段含义:0表示待发送,1表示发送正常,2表示发送失败
建议:在对数据库进行修改或删除操作时,对数据进行备份,命令:mysqldump -u -p 库名 表名 >表名.sql
方法一:
1、查看alerts目前存在多少待发送的action;
mysql> select count(*) from alerts where status =0;
2、对待发送的action进行状态更新
mysql> update zabbix.alerts set status = 1 where sttaus = 0;
3、重启zabbix-server服务
#systemctl restart zabbix_server
方法二:
(该方法请先备份alerts表)
1、查看alerts表创建的语句,记录,后面清理后需重新创建
mysql> show create table alerts;
2、删除alerts表
mysql>drop table alterts;
3、重启zabbix-server服务,查看状态是否正常
#systemctl restart zabbix_server