zabbix

zabbix告警收敛

2020-05-09  本文已影响0人  孙高猛

由于报警短信、邮件太多导致运维人员精神高度紧张、时间长了容易对重要告警忽略,引起不必要的麻烦。为了解决这个问题我在网上开始搜索告警收敛相关的文章尝试解决,最终受益于"简述"大神的这篇文章 "zabbix 告警 | 告警收敛" 的思路,于是基于大神的代码进行了部分修改并已应用于我们公司环境中一年以上。

下面为大家分享下整体的流程以及代码。

一、架构图

①产生的所有告警均由zabbix的actions调用脚本推入缓存redis当中;
②脚本将每分钟(crontab)去redis中拉取数据,根据定义好的一系列规则进行分析、合并;
③根据预先定义好的规则将报警通过定义好的方式发送给相关人员;


zabbix收敛流程图.png

二、设置Zabbix

1. 配置Media types

2. 配置Actions

{EVENT.ID}_1
triggervalue|{TRIGGER.VALUE}
hostname|{HOSTNAME1}
ipaddress|{IPADDRESS}
hostgroup|{TRIGGER.HOSTGROUP.NAME}
triggerstatus|{TRIGGER.STATUS}
triggerseverity|{TRIGGER.SEVERITY}
triggername|{TRIGGER.NAME}
triggerkey|{TRIGGER.KEY1}
triggeritems|{ITEM.NAME}
itemvalue|{ITEM.VALUE}
eventid|{EVENT.ID}
action|{ACTION.NAME}
eventage|{EVENT.AGE}
eventtime|{EVENT.DATE} {EVENT.TIME}
{EVENT.ID}_0
triggervalue|{TRIGGER.VALUE}
hostname|{HOSTNAME1}
ipaddress|{IPADDRESS}
hostgroup|{TRIGGER.HOSTGROUP.NAME}
triggerstatus|{TRIGGER.STATUS}
triggerseverity|{TRIGGER.SEVERITY}
triggername|{TRIGGER.NAME}
triggerkey|{TRIGGER.KEY1}
triggeritems|{ITEM.NAME}
itemvalue|{ITEM.VALUE}
eventid|{EVENT.ID}
action|{ACTION.NAME}
eventage|{EVENT.AGE}
eventtime|{EVENT.DATE} {EVENT.TIME}
多个Actions
Actions-条件配置
Actions-Operations配置
Actions-Recovery配置

三、配置 Zabbix 服务器

1. 安装环境

#下载代码
/etc/zabbix/alertscripts
git clone https://github.com/sungaomeng/zabbix-police.git
#安装依赖
yum install gcc python-devel
pip install -r zabbix-police/requirements.txt

2. 脚本

#文件分布
[root@zabbix-server01 alertscripts]# tree zabbix-police 
zabbix-police
├── police.py    #Action调用此函数, 用于将EventID写入Redis
├── allpolice.py #综合函数, 总入口, 用于整合其他脚本, 定时被Crontab调用
├── dbread.py    #数据库查询函数, 用于查询Redis、Mysql, 获取EventID、获取告警具体信息、Mediatype脚本对应关系、查询告警接收人等信息
├── police.conf  #定义配置文件, 包括mysql、redis、wechat、email、sms、logfile等配置
├── modconf.py   #加载配置函数, 用于加载配置文件
├── operation.py #操作函数, 用于1. 接收dbread.py返回的告警、恢复信息, 进行合并、压缩处理, 并返回处理结果 2. 定义各告警发送调用函数
├── send_wechat.py #告警发送-微信函数
├── send_sms.py    #告警发送-短信函数
├── send_email.py  #告警发送-邮件函数
├── requirements.txt #依赖
└── README.md

3. Crontab

[root@zabbix-server01 zabbix-police]# crontab -l 
* * * * * /usr/bin/python /etc/zabbix/alertscripts/zabbix-police/allpolice.py 

四、告警效果

zabbix告警收敛-邮件 zabbix告警收敛-企业微信告警
zabbix告警-短信
上一篇 下一篇

猜你喜欢

热点阅读