Zabbix 配置釘釘告警功能

導讀 這篇文章主要介紹了Zabbix 配置釘釘告警功能的實現代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑑價值,需要的朋友可以參考下

需求

Zabbix配置釘釘告警和Prometheus配置釘釘告警類似。只不過Zabbix通過釘釘告警是通過Python腳本實現。而Prometheus是通過釘釘的二進制包實現。
我們現在主要來講解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 配置釘釘告警功能Zabbix 配置釘釘告警功能
Zabbix的配置如下:
(1)配置報警媒介類型:
配置---> 報警媒介類型,腳本參數如下:

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

截圖如下:
Zabbix 配置釘釘告警功能Zabbix 配置釘釘告警功能
(2)配置動作
配置--->動作--->創建動作,把微信告警或者郵件告警的“操作”和恢復操作內容拷貝過來即可。
Zabbix 配置釘釘告警功能Zabbix 配置釘釘告警功能
(3)最後配置用戶
配置--->用戶---> 報警媒介,把釘釘加進來即可。 其中收件人要寫自己的電話號碼。
Zabbix 配置釘釘告警功能Zabbix 配置釘釘告警功能
Zabbix的配置就配置完了。我們看一下告警的效果圖
Zabbix 配置釘釘告警功能Zabbix 配置釘釘告警功能

總結

到此這篇關於Zabbix 配置釘釘告警的文章就介紹到這了Linux就該這麼學

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