1. 程式人生 > 實用技巧 >zabbix5.0 設定釘釘告警

zabbix5.0 設定釘釘告警

一、新建媒介型別和 引數新增如下圖:

二、新增訊息模板

故障問題:

引數值:

##故障
告警主機:{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)

centos8 預設的python環境是python3,所以需要安裝python2

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  監控 '監控'

四、編輯使用者動作

都設定完成後回到媒體介質型別點選測試,看是否傳送成功