zabbix报警信息聚合并及企业微信接收
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix报警信息聚合并及企业微信接收相关的知识,希望对你有一定的参考价值。
1、代码下载地址
https://gitee.com/yyping2019/zabbix_police.git
2、开发的目的
本次开发主要基于作者_简_述的版本修改而来,主要增加了企业微信接收报警、邮件接收报警、slack接收报警,同时还区分不同报警足接收不同报警信息
3、zabbix配置
3-1.zabbix Actions
对Actions进行特殊设置,Default subject极为重要,是识别收敛的标示。
Default subject
{EVENT.ID}_1
Default message
triggervalue|{TRIGGER.VALUE}#hostname|{HOSTNAME1}#ipaddress|{IPADDRESS}#hostgroup|{TRIGGER.HOSTGROUP.NAME}#triggernseverity|{TRIGGER.NSEVERITY}#triggername|{TRIGGER.NAME}#triggerkey|{TRIGGER.KEY1}#triggeritems|{ITEM.NAME}#itemvalue|{ITEM.VALUE}#eventid|{EVENT.ID}
Recovery subject
{EVENT.ID}_0
Recovery message
triggervalue|{TRIGGER.VALUE}#hostname|{HOSTNAME1}#ipaddress|{IPADDRESS}#hostgroup|{TRIGGER.HOSTGROUP.NAME}#triggernseverity|{TRIGGER.NSEVERITY}#triggername|{TRIGGER.NAME}#triggerkey|{TRIGGER.KEY1}#triggeritems|{ITEM.NAME}#itemvalue|{ITEM.VALUE}#eventid|{EVENT.ID}
3-2.Media types
这里只需要传递subject 参数就可以了。
police.py--报警函数:zabbix告警是调用此函数,将事件id推入redis。
redis 安装查看第三部分
/usr/local/zabbix/share/zabbix/alertscripts/police.py
#!/usr/bin/env python
#coding:utf-8
import redis
import sys
subject=sys.argv[1]
r = redis.StrictRedis(host=‘**.**.**.**‘, port=6379)
r.set(subject,subject)
4、操作部分
4-1.环境安装
#安装python、mysql、redis模块
pip install redis
pip install pymysql
yum install gcc python-devel
pip install requests
安装python3.6
4-2、程序部署
a、zabbix_server 需要安装redis,配置无密码
b、除police.py需要放到zabbix目录,其他程序放到自定义目录即可
c、程序运行执行方式:/usr/local/python3/bin/python /data/police/allpolice.py
5、配置详解
5-1、config.py
redis_ip = "127.0.0.1" #redis 的ip地址
redis_port = 6379 #redis 的端口
mysql_ip = "127.0.0.1" #zabbix 的mysql地址
mysql_port = 3306
mysql_user = "zabbix"
mysql_pwd = "xiyou2018"
mysql_db = "zabbix"
actionid = ["3"] #zabbix db select actionid,name from actions;通过查找到对应的actionid值
send_to_users_0 = ["x1@qq.com","x2@qq.com"] #告警用户邮箱, send_to_users_<num> 从0开始,0对应actionid列表中的第一个值,依次类推,这就实现了不同的actionid对应不同的报警用户组
# send_to_users_1 = ["x3@qq.com","x4@qq.com"]
slack_status = 1 #是否使用slack报警,值为1|0,1表示使用
slack_webhook = ["https://hooks.slack.com/services/T67AS4FPD/BHPSPTQQY/v6x7XGjCxXPoyYTC7Mwxxx"]
email_status = 1 #是否使用邮件报警,值为1|0,1表示使用
recevier_server_smtp = "smtp.exmail.qq.com" #发送者邮箱服务器
recevier_user = "tt@yxorange.com" #发送者邮箱帐号
recevier_pwd = "asdfasdfasdf"
weixin_status = 1 #是否使用企业微信报警,值为1|0,1表示使用
weixin_webhook = ["https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=deac9049-79cd-4167-b3ed-830336883240sadfasddfasdf",]
#企业微信多个群组,只需要把对应的webhook地址放进即可,action依次对应
以上是关于zabbix报警信息聚合并及企业微信接收的主要内容,如果未能解决你的问题,请参考以下文章