码迷,mamicode.com
首页 > 微信 > 详细

zabbix报警信息聚合并及企业微信接收

时间:2020-05-13 12:00:20      阅读:112      评论:0      收藏:0      [点我收藏+]

标签:列表   stat   sts   sele   dfa   识别   trigger   模块   items   

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报警信息聚合并及企业微信接收

标签:列表   stat   sts   sele   dfa   识别   trigger   模块   items   

原文地址:https://blog.51cto.com/yyping2008/2494755

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!