zabbix報警信息聚合並及企業微信接收

1、代碼下載地址

https://gitee.com/yyping2019/zabbix_police.git

2、開發的目的

本次開發主要基於作者_簡_述的版本修改而來,主要增加了企業微信接收報警、郵件接收報警、slack接收報警,同時還區分不同報警足接收不同報警信息
3、zabbix配置
3-1.zabbix Actions
對Actions進行特殊設置,Default subject極爲重要,是識別收斂的標示。
zabbix報警信息聚合並及企業微信接收

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 參數就可以了。
zabbix報警信息聚合並及企業微信接收
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 = ["[email protected]","[email protected]"]  #告警用戶郵箱, send_to_users_<num> 從0開始,0對應actionid列表中的第一個值,依次類推,這就實現了不同的actionid對應不同的報警用戶組
# send_to_users_1 = ["[email protected]","[email protected]"]
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 = "[email protected]"  #發送者郵箱帳號
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依次對應
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章