1. 程式人生 > >釘釘機器人報警

釘釘機器人報警

一、釘釘機器人配置

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 建立報警媒介

image.png

2.2 繫結到使用者

image.png

2.3 建立動作

image.png

image.png

image.png

內容如下:

伺服器:{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}

}

依次對恢復和確認操作設定

image.png

image.png

釘釘收到訊息: