1 添加機器人
在釘釘群里面添加一個機器人
會獲取到一個URL:
'https://oapi.dingtalk.com/robot/send?access_token=62be1ea97b4653b8521f26a4fxxxxxxxxxxxxxx'
2 寫一個發送消息的腳本
在zabbix-server端的配置文件zabbix_server.conf中找到報警腳本的配置
AlertScriptsPath=/usr/lib/zabbix/alertscripts
接下來寫一個釘釘發送消息的腳本dingding.py,並放到/usr/lib/zabbix/alertscripts目錄底下
#!/usr/bin/python3
import requests import json import sys # 告警群,測試環境 url = 'https://oapi.dingtalk.com/robot/send?access_token=62be1ea97b4653b8521f26a4fxxxxxxxxxxxxxx' def send_msg(msg): """ 發送消息的函數,這里使用阿里的釘釘 :param msg: 要發送的消息 :return: 200 or False """ # url = url program = {"msgtype": "text", "text": {"content": msg}, } headers = {'Content-Type': 'application/json'} try: f = requests.post(url, data=json.dumps(program), headers=headers) except Exception as e: return False return f.status_code def main(): msg = sys.argv[1] send_msg(msg) if __name__ == '__main__': main()
修改腳本權限
chmod 755 /usr/lib/zabbix/alertscripts/dingding.py
3 ZABBIX的設置
創建媒體類型
給用戶綁定媒體
創建報警動作
添加好操作是這個樣子的
恢復操作和更新操作類似,這里不再贅述!
下面給出告警消息的標題和消息內容格式
操作:
默認標題:
服務器:{HOST.NAME}發生: {TRIGGER.NAME}故障!
消息內容:
告警主機:{HOST.NAME}
告警地址:{HOST.IP}
監控項目:{ITEM.NAME}
監控取值:{ITEM.LASTVALUE}
告警等級:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警時間:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
當前狀態:{TRIGGER.STATUS}
恢復操作:
默認標題:
服務器:{HOST.NAME}: {TRIGGER.NAME}已恢復!
消息內容:
告警主機:{HOST.NAME}
告警地址:{HOST.IP}
監控項目:{ITEM.NAME}
監控取值:{ITEM.LASTVALUE}
告警等級:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
告警時間:{EVENT.DATE} {EVENT.TIME}
恢復時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持續時間:{EVENT.AGE}
事件ID:{EVENT.ID}
當前狀態:{TRIGGER.STATUS}
更新操作:
默認標題:
服務器:{HOST.NAME}: 報警確認
消息內容:
確認人:{USER.FULLNAME}
時間:{ACK.DATE} {ACK.TIME}
確認信息如下:
"{ACK.MESSAGE}"
問題服務器IP:{HOSTNAME1}
問題ID:{EVENT.ID}
當前的問題是: {TRIGGER.NAME}
添加好的效果
釘釘收到消息的內容