首先在釘釘群聊裡添加一個自定義的機器人

并複制webhook的内容
https://oapi.dingtalk.com/robot/send?access_token=37e23308d1b84eb4ac34566e03c4c4e74b7eedecbcc002exxxxxxxxxxxxxxx
建立腳本
可以直接克隆我的git
git clone https://github.com/donxan/zabbix.git
在zabbix服務端的alertscripts目錄下建立一個python腳本,内容:
#!/usr/bin/python
# -*- coding: utf-8 -*-
# Author: [email protected]
# 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)
儲存并設定權限;
chmod +x dingdingrobot.py
python使用的是python2
手動調試腳本:
python dingdingrobot.py 123
或者
./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}
}
依次對恢複和确認操作設定