在釘釘客戶端的羣中,添加自定義機器人
添加完成後記錄好webhook值,待會會用到
修改zabbix服務端配置文件,設置腳本的存放位置,以後要使用的腳本都要存放到該目錄下
[root@server ~]# vim /usr/local/zabbix/etc/zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix/share/zabbix/alertscripts
安裝所需模塊
[root@server ~]# yum install python-pip
[root@server ~]# pip -V
[root@server ~]# pip install requests
或者這樣
[root@server ~]# yum install -y python-requests
我兩條都做過
編寫釘釘報警的腳本,並且修改屬組屬主
[root@server ~]# vim /usr/local/zabbix/share/zabbix/alertscripts/dingding.py
#!/usr/bin/env python
#coding:utf-8
#zabbix釘釘報警
import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=468c0460b7b442509b55bbb7a4203e74e3f218686699c3ca1e7704c870775ff1" #添加之前複製的webhook
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("/tmp/zabbix_dingding.log"):
f=open("/tmp/zabbix_dingding.log","a+")
else:
f=open("/tmp/zabbix_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()
[root@server ~]# cd /usr/local/zabbix/share/zabbix/alertscripts/
[root@server alertscripts]# chown zabbix:zabbix dingding.py
[root@server alertscripts]# ll
總用量 8
-rwxrwxrwx 1 zabbix zabbix 977 11月 4 20:56 dingding.py
然後添加報警媒介及動作
ps:參數模板在這
設置用戶使用報警媒介
管理→用戶選擇→admin,選擇報警媒介,添加
ps:箭頭方向填羣中的手機號
然後選擇配置→動作,添加新的動作,名稱自定義,最好設置英文,操作、恢復操作、確認操作按照下面模板即可
然後點擊更新添加即可。
ps:配置模板參數模板在這
配置模板
標題:故障{TRIGGER.STATUS}, 服務器:{HOSTNAME1}發生:{TRIGGER.NAME}故障
內容:告警信息:{TRIGGER.NAME}
告警主機:{HOSTNAME1}
告警時間:{EVENT.DATE} {EVENT.TIME}
告警等級:{TRIGGER.SEVERITY}
告警項目:{TRIGGER.KEY1}
問題詳情:{ITEM.NAME}:{ITEM.VALUE}
當前狀態:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
模擬報錯後釘釘羣內就會收到類似提醒