- PC端先在釘釘群中添加群機器人,把webhook復制備用:
- zabbix server上定義的告警腳本存放路徑:
[root@zabbix_server ~]# egrep -v "^$|#" /etc/zabbix/zabbix_server.conf LogFile=/var/log/zabbix/zabbix_server.log LogFileSize=0 PidFile=/var/run/zabbix/zabbix_server.pid SocketDir=/var/run/zabbix DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix SNMPTrapperFile=/var/log/snmptrap/snmptrap.log Timeout=4 AlertScriptsPath=/usr/lib/zabbix/alertscripts ExternalScripts=/usr/lib/zabbix/externalscripts LogSlowQueries=3000
- 在/usr/lib/zabbix/alertscripts目錄中創建ding.py
#!/usr/bin/python # -*- coding: utf-8 -*- 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=寫自己的" def msg(text): json_text= { "msgtype": "text", "at": { "atMobiles": [ "187********" ], "isAtAll": True }, "text": { "content": text } } print requests.post(api_url,json.dumps(json_text),headers=headers).content if __name__ == '__main__': text = sys.argv[1] msg(text)
- 給ding.py執行權限,並測試一下
[root@zabbix_server alertscripts]# chmod +x ding.py [root@zabbix_server alertscripts]# ./ding.py dingding Traceback (most recent call last): File "./ding.py", line 4, in <module> import requests ImportError: No module named requests [root@zabbix_server alertscripts]# yum -y install epel-release [root@zabbix_server alertscripts]# yum -y install python-pip [root@zabbix_server alertscripts]# pip install requests [root@zabbix_server alertscripts]# ./ding.py dingding
- 測試結果
- 創建告警媒介
- 最后不要忘了開啟動作,默認是關閉的,手動開啟
- 優化發送的內容,不要忘了在內容里加關鍵字
-
服務器:{HOST.NAME} 發生:{TRIGGER.NAME}故障!dingding { 告警主機:{HOST.NAME} 告警地址:{HOST.IP} 監控項目:{ITEM.NAME} 監控取值:{ITEM.LASTVALUE} 告警等級:{TRIGGER.SEVERITY} 當前狀態:{TRIGGER.STATUS} 告警信息:{TRIGGER.NAME} 告警時間:{EVENT.DATE} {EVENT.TIME} 事件ID:{EVENT.ID} }
- 添加收件人
- 在客戶端添加一個新用戶,測試告警結果
完成釘釘告警觸發!!