Zabbix 配置釘釘告警

需求

Zabbix配置釘釘告警和Prometheus配置釘釘告警類似。只不過Zabbix通過釘釘告警是通過Python腳本實現。而Prometheus是通過釘釘的二進制包實現。

釘釘的設置可以參看我的另外一篇博文(Prometheus 配置釘釘告警): https://knight.blog.csdn.net/article/details/105583741

我們現在主要來講解Zabbix的設置實現

釘釘Webhook代碼實現

vim /usr/local/zabbix/share/zabbix/alertscripts/dingding.py

#!/usr/bin/env python
#coding:utf-8

import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=6e5bcfee12bc6fa7f3c6bd16b7d6c333d86266cecadd3fe5e77a29cedae9f9"      #說明:這裏改爲自己創建的機器人的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/dingding.log"):
    f=open("/tmp/dingding.log","a+")
else:
    f=open("/tmp/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()

執行一下:

chmod +x dingding.py  # 加執行權限
python dingding.py  a b "測試"

我們看釘釘能不能收到告警(記得釘釘要加服務器的公網ip的白名單)

Zabbix的配置如下:

(1)配置報警媒介類型:

配置---> 報警媒介類型,腳本參數如下:

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

截圖如下:

 

(2)配置動作

 配置--->動作--->創建動作,把微信告警或者郵件告警的“操作”和恢復操作內容拷貝過來即可。

(3)最後配置用戶

配置--->用戶---> 報警媒介,把釘釘加進來即可。 其中收件人要寫自己的電話號碼。

 

Zabbix的配置就配置完了。我們看一下告警的效果圖

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章