首先在釘釘羣聊裏添加一個自定義的機器人python
並複製webhook的內容git
https://oapi.dingtalk.com/robot/send?access_token=37e23308d1b84eb4ac34566e03c4c4e74b7eedecbcc002exxxxxxxxxxxxxxxgithub
建立腳本web
能夠直接克隆個人gitjson
git clone https://github.com/donxan/zabbix.git
在zabbix服務端的alertscripts目錄下新建一個python腳本,內容:api
#!/usr/bin/python # -*- coding: utf-8 -*- # Author: aiker@gdedu.ml # My blog http://m51cto.51cto.blog.com 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=37e23308d1b84eb4ac34566e03c4c4e74bxxxxxxxxxxxxxx" def msg(text): json_text= { "msgtype": "text", "at": { "atMobiles": [ "13xxxxxxx80" ], "isAtAll": False }, "text": { "content": text } } print requests.post(api_url,json.dumps(json_text),headers=headers).content if __name__ == '__main__': text = sys.argv[1] msg(text)
保存並設置權限;bash
chmod +x dingdingrobot.py
python使用的是python2
服務器
手動調試腳本:app
python dingdingrobot.py 123
或者ide
./dingdingrobot.py 123
建立報警媒介
綁定到用戶
建立動做
內容以下:
服務器:{HOST.NAME}發生: {TRIGGER.NAME}故障!
{
告警主機:{HOST.NAME}
告警地址:{HOST.IP}
監控項目:{ITEM.NAME}
監控取值:{ITEM.LASTVALUE}
告警等級:{TRIGGER.SEVERITY}
當前狀態:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警時間:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
}
服務器:{HOST.NAME}: {TRIGGER.NAME}已恢復!
{
告警主機:{HOST.NAME}
告警地址:{HOST.IP}
監控項目:{ITEM.NAME}
監控取值:{ITEM.LASTVALUE}
告警等級:{TRIGGER.SEVERITY}
當前狀態:{TRIGGER.STATUS}
告警信息:{TRIGGER.NAME}
告警時間:{EVENT.DATE} {EVENT.TIME}
恢復時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持續時間:{EVENT.AGE}
事件ID:{EVENT.ID}
}
服務器:{HOST.NAME}: 報警確認
{
確認人:{USER.FULLNAME}
時間:{ACK.DATE} {ACK.TIME}
確認信息以下:
"{ACK.MESSAGE}"
問題服務器IP:{HOSTNAME1}
問題ID:{EVENT.ID}
當前的問題是: {TRIGGER.NAME}
}
依次對恢復和確認操做設置
釘釘收到消息: