zabbix--釘釘告警


zabbix 釘釘告警機制

群機器人是釘釘群的高級擴展功能,群機器人可以將第三方服務的信息聚合到群聊中,實現自動化的信息同步。例如:通過聚合GitHub,GitLab等源碼管理服務,實現源碼更新同步;通過聚合Trello,JIRA等項目協調服務,實現項目信息同步。不僅如此,群機器人支持Webhook協議的自定義接入,支持更多可能性. 比如我們可將Zabbix運維報警提醒通過自定義機器人聚合到釘釘群中,以實現釘釘告警。

釘釘機器人創建

登錄釘釘客戶端,創建一個群,把需要收到報警信息的人員都拉到這個群內.然后點擊群右上角的"群機器人"->"添加機器人"->"自定義",記錄該機器人的webhook值!

zabbix-server 配置

[root@SrtAly120 ~]# cat /usr/local/zabbix/etc/zabbix_server.conf |grep ^AlertScriptsPath
AlertScriptsPath=/usr/local/zabbix/lib/zabbix/alertscripts

進入到/usr/local/zabbix/alertscripts下編寫dingding.py腳本(腳本中包含釘釘機器人的webhook值):
[root@SrtAly120 ~]# cd /usr/local/zabbix/lib/zabbix/alertscripts

[root@SrtAly120 alertscripts]# cat dingding.py 
#!/usr/bin/env python
#coding:utf-8
#zabbix釘釘報警
import requests,json,sys,os,datetime
webhook="https://oapi.dingtalk.com/robot/send?access_token=8ea7abd3db4b49a9e898e911920d4899c526ae78f5794c977cfca8b6c0bjsdd"      #說明:這里改為自己創建的機器人的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("/usr/local/zabbix/log/dingding.log"):
    f=open("/usr/local/zabbix/log/dingding.log","a+")
else:
    f=open("/usr/local/zabbix/log/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()

賦予腳本執行權限
[root@SrtAly120 alertscripts]# chmod +x dingding.py
創建上面腳本中的日志路徑
[root@SrtAly120 alertscripts]# mkdir /usr/local/zabbix/log/
[root@SrtAly120 alertscripts]# touch /usr/local/zabbix/log/dingding.log 
[root@SrtAly120 alertscripts]# chown zabbix.zabbix /usr/local/zabbix/log/dingding.log

手動測試腳本是否可以正常發送消息
這個條文檔記錄的測試信息,忽略
[root@SrtAly120 alertscripts]# ./dingding.py test gaojing "測試下"

釘釘收到的測試消息如下: 

zabbix web界面配置

1)創建報警媒介   腳本參數:ALERT.SENDTO      ALERT.SUBJECT      ALERT.MESSAGE

2)給用戶添加報警媒介

說明:收件人是釘釘上的手機號碼,我這里使用的是Admin管理員用戶。

特別注意:這里只需要添加釘釘群里的任何一個成員的手機號碼即可,即添加一個收件人,這樣在機器人群里成員都能看到告警信息.
如果添加多個收件人,則機器人群里就會發送多個告警信息,一個收件人發一條信息. 

測試結果:

查看日志

 

至此、zabbix 釘釘告警就完成了。

消息內容參考:https://www.cnblogs.com/yanjieli/p/10840423.html

郵件告警:https://www.cnblogs.com/yanjieli/p/10814722.html

微信告警:https://www.cnblogs.com/yanjieli/p/10840132.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM