Zabbix 利用python腳本實現釘釘告警
1、安裝python3.6環境
2、創建python腳本
cd local/zabbix-4.0.3/share/zabbix/alertscripts/
新建一個zabbix_dingding.py文件
vi zabbix_dingding.py
//修改文件所有者為zabbix
chown zabbix.zabbix zabbix_dingding.py
//設置所有者為7權限
chmod 744 zabbix_dingding.py
文件內容如下:
#!/usr/bin/python
# -*- coding: utf-8 -*-
import requests
import json
import sys
import os
headers = {'Content-Type': 'application/json;charset=utf-8'}
api_url="https://oapi.dingtalk.com/robot/send?access_token=abec8a22f6fdfc458e9ecdd922ae2349bcbf862bfaa7f6b15c71f80fd6fc9ff1"
def msg(text):
json_text= {
"msgtype": "text",
"text": {
"content": text
},
"at": {
"atMobiles": [
"atMobiles":[13xxxxxxxx,186xxxxxxxx]
],
"isAtAll": False
}
}
requests.post(api_url,json.dumps(json_text),headers=headers).content
if __name__ == '__main__':
text = sys.argv[1]
msg(text)
3、zabbix管理后台,創建一個新的媒介類型叫釘釘
腳本參數為{ALERT.MESSAGE}
4、為用戶添加釘釘媒介類型
5、為需要釘釘告警的觸發器創建新的動作
6、設置觸發條件后,轉“操作”
消息內容為:
##告警
主機名稱:{HOST.NAME}
IP地址 :{HOST.IP}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警信息:{TRIGGER.NAME}
告警級別:{TRIGGER.SEVERITY}
檢查項 :{TRIGGER.KEY1}
當前狀態:{TRIGGER.STATUS}
值={ITEM.LASTVALUE}
故障已持續{EVENT.AGE}
7、設置好”操作”后,再轉”恢復操作”
消息內容為:
##恢復
主機名稱:{HOST.NAME}
IP地址 :{HOST.IP}
告警時間:{EVENT.DATE} {EVENT.TIME}
恢復時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
故障時長:{EVENT.AGE}
告警信息:{TRIGGER.NAME}
告警級別:{TRIGGER.SEVERITY}
檢查項 :{TRIGGER.KEY1}
當前狀態:{TRIGGER.STATUS}
值={ITEM.VALUE}
動作設置完畢,就可以測試了
釘釘收到的效果