其他分享
首页 > 其他分享> > zabbix告警积压的处理

zabbix告警积压的处理

作者:互联网

前言



在某些时候,由于网络方面的故障(例如:交换机调整或某机房网络波动),会导致成百上千服务器报警,由于报警邮件发送频繁导致邮箱被禁,zabbix仍尝试多次发送,最后导致zabbix堆积大量告警队列,然后产生延时。当网络恢复后,并且联系邮箱管理员解除限制后,仍能不断的收到延迟的报警和恢复邮件。
为了避免过时的报警,影响监控,我们需要把zabbix积压的消息处理掉,让它不再发送。



方法一



修改mysql的zabbix库alerts表,把状态改为已发送或发送失败


<1>为了避免误操作,alerts表备份

mysqldump -u账号 -p密码  zabbix alerts > alerts.sql


<2>查看待发送消息堆积的数量

use zabbix;
select count(*) from alerts;
select count(*) from alerts where status =0;

0待发送
1已发送
2发送失败



<3>修改未发送的为已发送

update zabbix.alerts set status = 1 where status = 0;


<4>重启zabbix-server

systemctl restart zabbix_server


<5>验证功能
关闭一个端口,是否有报警




方法二



直接清理alerts表,会导致action也被清理(不建议删库)


<1>为了避免误操作,alerts表备份

mysqldump -u账号 -p密码  zabbix alerts > alerts.sql


<2>获取创建表的语句

use zabbix;
show create table alerts;


<3>删除表

drop table alerts;


<4>使用获取的创建表语句创建

CREATE TABLE `alerts` (
  `alertid` bigint(20) unsigned NOT NULL,
  `actionid` bigint(20) unsigned NOT NULL,
  `eventid` bigint(20) unsigned NOT NULL,
  `userid` bigint(20) unsigned DEFAULT NULL,
  `clock` int(11) NOT NULL DEFAULT '0',
  `mediatypeid` bigint(20) unsigned DEFAULT NULL,
  `sendto` varchar(100) COLLATE utf8_bin NOT NULL DEFAULT '',
  `subject` varchar(255) COLLATE utf8_bin NOT NULL DEFAULT '',
  `message` text COLLATE utf8_bin NOT NULL,
  `status` int(11) NOT NULL DEFAULT '0',
  `retries` int(11) NOT NULL DEFAULT '0',
  `error` varchar(128) COLLATE utf8_bin NOT NULL DEFAULT '',
  `esc_step` int(11) NOT NULL DEFAULT '0',
  `alerttype` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`alertid`),
  KEY `alerts_1` (`actionid`),
  KEY `alerts_2` (`clock`),
  KEY `alerts_3` (`eventid`),
  KEY `alerts_4` (`status`,`retries`),
  KEY `alerts_5` (`mediatypeid`),
  KEY `alerts_6` (`userid`),
  CONSTRAINT `c_alerts_1` FOREIGN KEY (`actionid`) REFERENCES `actions` (`actionid`) ON DELETE CASCADE,
  CONSTRAINT `c_alerts_2` FOREIGN KEY (`eventid`) REFERENCES `events` (`eventid`) ON DELETE CASCADE,
  CONSTRAINT `c_alerts_3` FOREIGN KEY (`userid`) REFERENCES `users` (`userid`) ON DELETE CASCADE,
  CONSTRAINT `c_alerts_4` FOREIGN KEY (`mediatypeid`) REFERENCES `media_type` (`mediatypeid`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin


<5>重启zabbix-server

systemctl restart zabbix_server

标签:积压,DEFAULT,alerts,发送,zabbix,KEY,告警,NULL
来源: https://blog.csdn.net/GX_1_11_real/article/details/119571151