python3實(shí)現(xiàn)zabbix告警推送釘釘?shù)氖纠?/h1>
更新時(shí)間:2019年02月20日 11:38:41 作者:huangwjwork
今天小編就為大家分享一篇python3實(shí)現(xiàn)zabbix告警推送釘釘?shù)氖纠?,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
自己寫了一個(gè)簡(jiǎn)單的python腳本,用來(lái)推送zabbix告警到釘釘機(jī)器人,推送格式為markdown,有需要的可以自己修改markdown的格式及推送的值(zabbix宏)

環(huán)境如下,理論上zabbix版本不影響,可以看看官方宏定義是否有區(qū)別
python 3
zabbix 3.4.2
zabbix宏官方文檔:https://www.zabbix.com/documentation/3.4/manual/appendix/macros/supported_by_location
配置
配置釘釘自定義機(jī)器人
官方文檔:https://open-doc.dingtalk.com/docs/doc.htm?treeId=257&articleId=105735&docType=1
編寫zabbix告警腳本并置于alertscripts路徑下
[itservice@zabbix alertscripts]$ cat /usr/lib/zabbix/alertscripts/alert_for_zabbix_by_dingding.py
#!/usr/bin/env python3
# encoding: utf-8
# author: huangwj
# mail: huangwjwork@gmail.com
# bolg: huangwj.app
# csdn: http://blog.csdn.net/u010871982
# github: https://github.com/huangwjwork
# file: alert_for_zabbix_by_dingding.py
# time: 2018/5/11 14:31
'''
本程序由huangwjwork開發(fā),一切最終解釋權(quán)歸于huangwjwork.
本程序?yàn)殚_源,只用于技術(shù)交流,只供開發(fā)者參考與學(xué)習(xí).
不得用于違反法律以及未經(jīng)許可不得用于商業(yè).保留其追責(zé)權(quán)利.
本程序不涉及任何違法敏感因素,如有人拿程序改造成違法工具,將與本程序開發(fā)者無(wú)關(guān).
勇于開源,請(qǐng)勿濫用.內(nèi)部學(xué)習(xí)交流,請(qǐng)勿傳播.違反者造成相關(guān)法律事故,自行承擔(dān)刑事責(zé)任.
'''
import sys
import getopt
import requests
import json
import traceback
try:
opts,args = getopt.getopt(sys.argv[1:],shortopts='',longopts=['webhook_url=','webhook_title=','alert_message='])
for opt,value in opts:
if opt == '--webhook_url':
webhook_url = value
elif opt == '--webhook_title':
webhook_title = value
elif opt == '--alert_message':
alert_message = value
webhook_header = {
"Content-Type": "application/json",
"charset": "utf-8"
}
webhook_message = {
"msgtype": "markdown",
"markdown": {
"title": webhook_title,
"text": alert_message
}
}
sendData = json.dumps(webhook_message,indent=1)
requests.post(url=webhook_url,headers=webhook_header,data=sendData)
except:
traceback.print_exc(file=open('/tmp/alert_zabbix_dingding.log','w+'))
配置zabbix mediatype
webhook_url替換成釘釘機(jī)器人webhook URL

配置user

配置action

附上message
告警
## 故障
**主機(jī)名稱:** {HOSTNAME1}
**告警名稱:** {TRIGGER.NAME}
**告警級(jí)別:** {TRIGGER.SEVERITY}
**告警時(shí)間:** {EVENT.DATE} {EVENT.TIME}
**檢查項(xiàng):** {TRIGGER.KEY1}
**當(dāng)前值:** {ITEM.LASTVALUE}
**IP地址:** {HOST.IP}
**事件ID:** {EVENT.ID}
恢復(fù)
## 恢復(fù)
**主機(jī)名稱:** {HOSTNAME1}
**告警名稱:** {TRIGGER.NAME}
**告警級(jí)別:** {TRIGGER.SEVERITY}
**告警時(shí)間:** {EVENT.DATE} {EVENT.TIME}
**恢復(fù)時(shí)間:** {EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME}
**故障時(shí)長(zhǎng):** {EVENT.AGE}
**檢查項(xiàng):** {TRIGGER.KEY1}
**當(dāng)前值:** {EVENT.RECOVERY.VALUE}
**IP地址:** {HOST.IP}
**事件ID:** {EVENT.ID}
以上這篇python3實(shí)現(xiàn)zabbix告警推送釘釘?shù)氖纠褪切【幏窒斫o大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
-
python 實(shí)現(xiàn)將文件或文件夾用相對(duì)路徑打包為 tar.gz 文件的方法
今天小編就為大家分享一篇python 實(shí)現(xiàn)將文件或文件夾用相對(duì)路徑打包為 tar.gz 文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧 2019-06-06
-
解決vscode python print 輸出窗口中文亂碼的問(wèn)題
今天小編就為大家分享一篇解決vscode python print 輸出窗口中文亂碼的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧 2018-12-12
-
使用Python opencv實(shí)現(xiàn)視頻與圖片的相互轉(zhuǎn)換
這篇文章主要介紹了使用Python opencv實(shí)現(xiàn)視頻與圖片的相互轉(zhuǎn)換,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下 2019-07-07
-
Pickle模塊中的dump()和load()方法簡(jiǎn)介
Pickle模塊實(shí)現(xiàn)了基本的數(shù)據(jù)序列化與反序列化操作,通過(guò)序列化操作,我們可以將程序中運(yùn)行的對(duì)象信息轉(zhuǎn)化為字節(jié)流保存到文件中去,永久存儲(chǔ)在磁盤上,這篇文章主要介紹了Pickle模塊中的dump()和load()方法介紹,需要的朋友可以參考下 2023-03-03
-
python 對(duì)key為時(shí)間的dict排序方法
今天小編就為大家分享一篇python 對(duì)key為時(shí)間的dict排序方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧 2018-10-10
-
python接口自動(dòng)化之ConfigParser配置文件的使用詳解
這篇文章主要介紹了python接口自動(dòng)化之ConfigParser配置文件的使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下 2020-08-08
最新評(píng)論
自己寫了一個(gè)簡(jiǎn)單的python腳本,用來(lái)推送zabbix告警到釘釘機(jī)器人,推送格式為markdown,有需要的可以自己修改markdown的格式及推送的值(zabbix宏)
環(huán)境如下,理論上zabbix版本不影響,可以看看官方宏定義是否有區(qū)別
python 3
zabbix 3.4.2
zabbix宏官方文檔:https://www.zabbix.com/documentation/3.4/manual/appendix/macros/supported_by_location
配置
配置釘釘自定義機(jī)器人
官方文檔:https://open-doc.dingtalk.com/docs/doc.htm?treeId=257&articleId=105735&docType=1
編寫zabbix告警腳本并置于alertscripts路徑下
[itservice@zabbix alertscripts]$ cat /usr/lib/zabbix/alertscripts/alert_for_zabbix_by_dingding.py #!/usr/bin/env python3 # encoding: utf-8 # author: huangwj # mail: huangwjwork@gmail.com # bolg: huangwj.app # csdn: http://blog.csdn.net/u010871982 # github: https://github.com/huangwjwork # file: alert_for_zabbix_by_dingding.py # time: 2018/5/11 14:31 ''' 本程序由huangwjwork開發(fā),一切最終解釋權(quán)歸于huangwjwork. 本程序?yàn)殚_源,只用于技術(shù)交流,只供開發(fā)者參考與學(xué)習(xí). 不得用于違反法律以及未經(jīng)許可不得用于商業(yè).保留其追責(zé)權(quán)利. 本程序不涉及任何違法敏感因素,如有人拿程序改造成違法工具,將與本程序開發(fā)者無(wú)關(guān). 勇于開源,請(qǐng)勿濫用.內(nèi)部學(xué)習(xí)交流,請(qǐng)勿傳播.違反者造成相關(guān)法律事故,自行承擔(dān)刑事責(zé)任. ''' import sys import getopt import requests import json import traceback try: opts,args = getopt.getopt(sys.argv[1:],shortopts='',longopts=['webhook_url=','webhook_title=','alert_message=']) for opt,value in opts: if opt == '--webhook_url': webhook_url = value elif opt == '--webhook_title': webhook_title = value elif opt == '--alert_message': alert_message = value webhook_header = { "Content-Type": "application/json", "charset": "utf-8" } webhook_message = { "msgtype": "markdown", "markdown": { "title": webhook_title, "text": alert_message } } sendData = json.dumps(webhook_message,indent=1) requests.post(url=webhook_url,headers=webhook_header,data=sendData) except: traceback.print_exc(file=open('/tmp/alert_zabbix_dingding.log','w+'))
配置zabbix mediatype
webhook_url替換成釘釘機(jī)器人webhook URL
配置user
配置action
附上message
告警
## 故障 **主機(jī)名稱:** {HOSTNAME1} **告警名稱:** {TRIGGER.NAME} **告警級(jí)別:** {TRIGGER.SEVERITY} **告警時(shí)間:** {EVENT.DATE} {EVENT.TIME} **檢查項(xiàng):** {TRIGGER.KEY1} **當(dāng)前值:** {ITEM.LASTVALUE} **IP地址:** {HOST.IP} **事件ID:** {EVENT.ID}
恢復(fù)
## 恢復(fù) **主機(jī)名稱:** {HOSTNAME1} **告警名稱:** {TRIGGER.NAME} **告警級(jí)別:** {TRIGGER.SEVERITY} **告警時(shí)間:** {EVENT.DATE} {EVENT.TIME} **恢復(fù)時(shí)間:** {EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME} **故障時(shí)長(zhǎng):** {EVENT.AGE} **檢查項(xiàng):** {TRIGGER.KEY1} **當(dāng)前值:** {EVENT.RECOVERY.VALUE} **IP地址:** {HOST.IP} **事件ID:** {EVENT.ID}
以上這篇python3實(shí)現(xiàn)zabbix告警推送釘釘?shù)氖纠褪切【幏窒斫o大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python 實(shí)現(xiàn)將文件或文件夾用相對(duì)路徑打包為 tar.gz 文件的方法
今天小編就為大家分享一篇python 實(shí)現(xiàn)將文件或文件夾用相對(duì)路徑打包為 tar.gz 文件的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-06-06解決vscode python print 輸出窗口中文亂碼的問(wèn)題
今天小編就為大家分享一篇解決vscode python print 輸出窗口中文亂碼的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12使用Python opencv實(shí)現(xiàn)視頻與圖片的相互轉(zhuǎn)換
這篇文章主要介紹了使用Python opencv實(shí)現(xiàn)視頻與圖片的相互轉(zhuǎn)換,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07Pickle模塊中的dump()和load()方法簡(jiǎn)介
Pickle模塊實(shí)現(xiàn)了基本的數(shù)據(jù)序列化與反序列化操作,通過(guò)序列化操作,我們可以將程序中運(yùn)行的對(duì)象信息轉(zhuǎn)化為字節(jié)流保存到文件中去,永久存儲(chǔ)在磁盤上,這篇文章主要介紹了Pickle模塊中的dump()和load()方法介紹,需要的朋友可以參考下2023-03-03python 對(duì)key為時(shí)間的dict排序方法
今天小編就為大家分享一篇python 對(duì)key為時(shí)間的dict排序方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10python接口自動(dòng)化之ConfigParser配置文件的使用詳解
這篇文章主要介紹了python接口自動(dòng)化之ConfigParser配置文件的使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08