釘釘機器人報警
一、釘釘機器人配置
1.1 準備機器人
1.在右上角點選機器人
2.新增自定義機器人
3.將webhook內容儲存下來
1.2 編寫機器人傳送訊息指令碼dingtalk.py
#!/usr/bin/env python3 import json import requests import sys def send_msg(url, reminders, msg): headers = {'Content-Type': 'application/json;charset=utf-8'} data = { "msgtype": "text", # 傳送訊息型別為文字 "at": { "atMobiles": reminders, "isAtAll": False, # 不@所有人 }, "text": { "content": msg, # 訊息正文 } } r = requests.post(url, data=json.dumps(data), headers=headers) return r.text if __name__ == '__main__': msg = sys.argv[1] reminders = [] url = 'https://oapi.dingtalk.com/robot/send?access_token=37eef7fa8fd14bed5a76f240486ff9c8bce7d813d0f9c315dc2f2837c0ffbe37' print(send_msg(url, reminders, msg))
1.3 測試機器人自動傳送訊息指令碼
alertscripts]# python3 dingtalk.py 'hello world!'
二、zabbix配置
alertscripts]# vim /usr/local/etc/zabbix_server.conf
AlertScriptsPath=/usr/local/share/zabbix/alertscripts/
//配置指令碼路徑
alertscripts]# killall zabbix_server
alertscripts]# zabbix_server //重啟服務
alertscripts]# ls
dingtalk.py // 把dingtalk.py放到這個目錄下
2.1 建立報警媒介
2.2 繫結到使用者
2.3 建立動作
內容如下:
伺服器:{HOST.NAME}發生: {TRIGGER.NAME}故障!
{
告警主機:{HOST.NAME}
告警地址:{HOST.IP}
監控專案:{ITEM.NAME}
監控取值:{ITEM.LASTVALUE}
告警等級:{TRIGGER.SEVERITY}
當前狀態:{TRIGGER.STATUS}
告警資訊:{TRIGGER.NAME}
告警時間:{EVENT.DATE} {EVENT.TIME}
事件ID:{EVENT.ID}
}
伺服器:{HOST.NAME}: {TRIGGER.NAME}已恢復!
{
告警主機:{HOST.NAME}
告警地址:{HOST.IP}
監控專案:{ITEM.NAME}
監控取值:{ITEM.LASTVALUE}
告警等級:{TRIGGER.SEVERITY}
當前狀態:{TRIGGER.STATUS}
告警資訊:{TRIGGER.NAME}
告警時間:{EVENT.DATE} {EVENT.TIME}
恢復時間:{EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
持續時間:{EVENT.AGE}
事件ID:{EVENT.ID}
}
伺服器:{HOST.NAME}: 報警確認
{
確認人:{USER.FULLNAME}
時間:{ACK.DATE} {ACK.TIME}
確認資訊如下:
"{ACK.MESSAGE}"
問題伺服器IP:{HOSTNAME1}
問題ID:{EVENT.ID}
當前的問題是: {TRIGGER.NAME}
}
依次對恢復和確認操作設定
釘釘收到訊息: