您好,登錄后才能下訂單哦!
Python利用Zabbix實現一個釘釘報警功能?相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
釘釘報警設置
創建群機器人
接口地址
發送短消息
發送普通消息
import requests import json url = 'https://oapi.dingtalk.com/robot/send?access_token=71638980426c030' headers = { "Content-Type": "application/json", "Chartset": "utf-8" } # 要發送的文本是json格式 request_data = { # 此消息的類型為固定的text "msgtype": "text", "text": { # 消息的內容 "content": "大家新年快樂test" }, "at": { # 被@人的手機號 "atMobiles": [], # 控制@所有人 "isAtAll": True } } # 把json轉變為字符串格式數據 send_data = json.dumps(request_data) # 這個是發送post請求,請求釘釘接口 response = requests.post(url=url, headers=headers, data=send_data) # 講求成功后返回的數據 content = response.content.decode() # 打印 # 課程 vip 標準 # 替換 視頻 print(content)
接口開發
修改結構
import requests import json import sys url = 'https://oapi.dingtalk.com/robot/send?access_token=71389c030' def WriteLogByDing(content): headers = { "Content-Type": "application/json", "Chartset": "utf-8" } request_data = { "msgtype": "text", "text": { "content": content }, "at": { "atMobiles": [], "isAtAll": True } } sendData = json.dumps(request_data) response = requests.post(url=url, headers=headers, data=sendData) content = response.content.decode() print(content) if __name__ == "__main__": content = input('請輸入想要的信息: ') content += "test" # content = sys.argv[1] WriteLogByDing(content)
發送帶鏈接的文檔
import requests import json url = 'https://oapi.dingtalk.com/robot/send?access_token=7164d45fa912dc12ed721522371ecf7428ad912740e87a63c3bf38980426c030' headers = { "Content-Type": "application/json", "Chartset": "utf-8" } # 要發送的文本是json格式 request_data = { # 發送鏈接類型的數據 "msgtype": "link", "link": { # 鏈接提示 "text": "群機器人是釘釘群的高級擴展功能。群機器人可以將第三方服務的信息聚合到群聊中,實現自動化的信息同步。例如:通過聚合GitHub,GitLab等源碼管理服務,實現源碼更新同步;通過聚合Trello,JIRA等項目協調服務,實現項目信息同步。不僅如此,群機器人支持Webhook協議的自定義接入,支持更多可能性,例如:你可將運維報警提醒通過自定義機器人聚合到釘釘群。", # 鏈接標題 "title": "自定義機器人協議test", # 圖片url地址 "picUrl": "http://p3.so.qhmsg.com/sdr/200_200_/t013d7a21145c708288.jpg", # 信息的鏈接跳轉 "messageUrl": "http://www.zcj.net.cn" } } # 把json轉變為字符串格式數據 send_data = json.dumps(request_data) # 這個是發送post請求,請求釘釘接口 response = requests.post(url=url, headers=headers, data=send_data) # 講求成功后返回的數據 content = response.content.decode() # 打印 # 課程 vip 標準 # 替換 視頻 print(content)
發送makedown
import requests import json url = 'https://oapi.dingtalk.com/robot/send?access_token=7164d45fa912dc12ed721522371ecf7428ad912740e87a63c3bf38980426c030' headers = { "Content-Type": "application/json", "Chartset": "utf-8" } # 要發送的文本是json格式 request_data = { "msgtype": "markdown", "markdown": {"title": "杭州天氣", "text": "#### 杭州天氣 \n > 9度, 西北風1級,空氣良89,相對溫度73%\n\n > ![screenshot](http://i01.lw.aliimg.com/media/lALPBbCc1ZhJGIvNAkzNBLA_1200_588.png)\n > ###### 10點20分發布 [天氣](http://www.thinkpage.cn/) test" }, "at": { "atMobiles": [], "isAtAll": False } } # 把json轉變為字符串格式數據 send_data = json.dumps(request_data) # 這個是發送post請求,請求釘釘接口 response = requests.post(url=url, headers=headers, data=send_data) # 講求成功后返回的數據 content = response.content.decode() # 打印 print(content)
zabbix集成釘釘報警
釘釘報警python腳本
https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq
https://www.jb51.net/article/193470.htm
#!/usr/bin/env python #coding:utf-8 #zabbix釘釘報警 import requests,json,sys,os,datetime webhook="https://oapi.dingtalk.com/robot/send?access_token=ce0d39251" user=sys.argv[1] text=sys.argv[3] data={ "msgtype": "text", "text": { "content": "test" }, "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_server/logs/dingding.log"): f=open("/usr/local/zabbix_server/logs/dingding.log","a+") else: f=open("/usr/local/zabbix_server/logs/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.write(str(x)+str(x.json())) f.close()
看完上述內容,你們掌握Python利用Zabbix實現一個釘釘報警功能的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。