一、新建媒介類型和 參數添加如下圖:
二、添加消息模板
故障問題:
參數值:
##故障 告警主機:{HOST.NAME} 告警信息:{TRIGGER.NAME} 告警項目:{ITEM.NAME} 告警時間:{EVENT.DATE}_{EVENT.TIME} 當前狀態:故障 值={ITEM.VALUE} 故障已持續{EVENT.AGE},請盡快處理 事件ID:{EVENT.ID}
故障恢復:
參數值:
##恢復 告警主機:{HOST.NAME} 告警信息:{TRIGGER.NAME} 告警項目:{ITEM.NAME} 告警時間:{EVENT.DATE}_{EVENT.TIME} 恢復時間:{EVENT.RECOVERY.DATE}_{EVENT.RECOVERY.TIME} 當前狀態:{TRIGGER.STATUS} 值={ITEM.VALUE} 故障共持續{EVENT.AGE} 事件ID:{EVENT.ID}
還有其他選項供你選擇,可視自己情況添加:
三、利用腳本傳參發送至釘釘(這里利用的是python2)
如果環境是python3的需要更改一下腳本格式
dnf install python2 dnf install python2-requests
vim /usr/local/share/zabbix/alertscripts/dingding.py
#!/usr/bin/env python2 #coding:utf-8 #zabbix釘釘報警 import requests,json,sys,os,datetime webhook="https://oapi.dingtalk.com/robot/send?access_token=XXXXXXXX" user=sys.argv[1] text=sys.argv[3] data={ "msgtype": "text", "text": { "content": text }, "at": { "atMobiles": [ user ], "isAtAll": False } } headers = {'Content-Type': 'application/json'} x=requests.post(url=webhook,data=json.dumps(data),headers=headers) if os.path.exists("/usr/local/zabbix/log/dingding.log"): f=open("/usr/local/zabbix/log/dingding.log","a+") else: f=open("/usr/local/zabbix/log/dingding.log","w+") f.write("\n"+"--"*30) if x.json()["errcode"] == 0: f.write("\n"+str(datetime.datetime.now())+" "+str(user)+" "+"發送成功"+"\n"+str(text)) f.close() else: f.write("\n"+str(datetime.datetime.now()) + " " + str(user) + " " + "發送失敗" + "\n" + str(text)) f.close()
創建日志文件並授權寫
mkdir /usr/local/zabbix/log/
vim /usr/local/zabbix/log/dingding.log
chmod 766 /usr/local/zabbix/log/dingding.log
測試發送
/usr/local/share/zabbix/alertscripts/dingding.py 15xxxxxx 監控 '監控'
cat /usr/local/zabbix/log/dingding.log
2020-09-08 10:35:16.814385 15xxxxxxxx 發送成功
監控
四、編輯用戶動作
都設置完成后回到媒體介質類型點擊測試,看是否發送成功
網友的釘釘報警設置:
1,申請釘釘賬號,登錄賬號。
2,創建一個告警群組,添加一個機器人。
記錄下來這個webhook地址。把他填上去腳本webhook=后面