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)看看吧
自己寫(xiě)了一個(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
編寫(xiě)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開(kāi)發(fā),一切最終解釋權(quán)歸于huangwjwork.
本程序?yàn)殚_(kāi)源,只用于技術(shù)交流,只供開(kāi)發(fā)者參考與學(xué)習(xí).
不得用于違反法律以及未經(jīng)許可不得用于商業(yè).保留其追責(zé)權(quán)利.
本程序不涉及任何違法敏感因素,如有人拿程序改造成違法工具,將與本程序開(kāi)發(fā)者無(wú)關(guān).
勇于開(kāi)源,請(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如何讀寫(xiě)JSON格式數(shù)據(jù)
這篇文章主要介紹了Python如何讀寫(xiě)JSON格式數(shù)據(jù),JSON文件的讀寫(xiě)應(yīng)算成Python基礎(chǔ)知識(shí)的內(nèi)容,在編寫(xiě)Nonebot插件時(shí),常常會(huì)操作JSON類型的數(shù)據(jù),需要的朋友可以參考下 2023-04-04
-
Python網(wǎng)絡(luò)編程之socket與socketserver
這篇文章介紹了Python網(wǎng)絡(luò)編程之socket與socketserver,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下 2022-05-05
-
vscode調(diào)試django項(xiàng)目的方法
這篇文章主要介紹了vscode調(diào)試django項(xiàng)目的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧 2020-08-08
-
pandas實(shí)現(xiàn)對(duì)一列/多列進(jìn)行數(shù)據(jù)區(qū)間篩選
這篇文章主要介紹了pandas實(shí)現(xiàn)對(duì)一列/多列進(jìn)行數(shù)據(jù)區(qū)間篩選方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教 2024-02-02
-
numpy數(shù)組坐標(biāo)軸問(wèn)題解決
本文主要介紹了numpy數(shù)組坐標(biāo)軸問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧 2023-03-03
-
pandas.dataframe按行索引表達(dá)式選取方法
今天小編就為大家分享一篇pandas.dataframe按行索引表達(dá)式選取方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧 2018-10-10
-
Python利用pywin32實(shí)現(xiàn)自動(dòng)操作電腦
在windows系統(tǒng)上,重復(fù)性的操作可以用Python腳本來(lái)完成,其中常用的模塊是win32gui、win32con、win32api,要使用這三個(gè)模塊需要先安裝pywin32。本文就為大家介紹了如何利用這些模塊實(shí)現(xiàn)自動(dòng)操作電腦,感興趣的可以了解一下 2022-11-11
-
Python實(shí)現(xiàn)發(fā)送警告通知到企業(yè)微信方法詳解
常見(jiàn)的報(bào)警方式有:郵件,電話,短信,微信。本文將介紹如何利用Python發(fā)送警告通知到企業(yè)微信,文中的示例代碼有一定的參考價(jià)值,感興趣的可以了解一下 2022-01-01
最新評(píng)論
自己寫(xiě)了一個(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
編寫(xiě)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開(kāi)發(fā),一切最終解釋權(quán)歸于huangwjwork.
本程序?yàn)殚_(kāi)源,只用于技術(shù)交流,只供開(kāi)發(fā)者參考與學(xué)習(xí).
不得用于違反法律以及未經(jīng)許可不得用于商業(yè).保留其追責(zé)權(quán)利.
本程序不涉及任何違法敏感因素,如有人拿程序改造成違法工具,將與本程序開(kāi)發(fā)者無(wú)關(guān).
勇于開(kāi)源,請(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如何讀寫(xiě)JSON格式數(shù)據(jù)
這篇文章主要介紹了Python如何讀寫(xiě)JSON格式數(shù)據(jù),JSON文件的讀寫(xiě)應(yīng)算成Python基礎(chǔ)知識(shí)的內(nèi)容,在編寫(xiě)Nonebot插件時(shí),常常會(huì)操作JSON類型的數(shù)據(jù),需要的朋友可以參考下2023-04-04
Python網(wǎng)絡(luò)編程之socket與socketserver
這篇文章介紹了Python網(wǎng)絡(luò)編程之socket與socketserver,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-05-05
vscode調(diào)試django項(xiàng)目的方法
這篇文章主要介紹了vscode調(diào)試django項(xiàng)目的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-08-08
pandas實(shí)現(xiàn)對(duì)一列/多列進(jìn)行數(shù)據(jù)區(qū)間篩選
這篇文章主要介紹了pandas實(shí)現(xiàn)對(duì)一列/多列進(jìn)行數(shù)據(jù)區(qū)間篩選方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
numpy數(shù)組坐標(biāo)軸問(wèn)題解決
本文主要介紹了numpy數(shù)組坐標(biāo)軸問(wèn)題解決,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-03-03
pandas.dataframe按行索引表達(dá)式選取方法
今天小編就為大家分享一篇pandas.dataframe按行索引表達(dá)式選取方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10
Python利用pywin32實(shí)現(xiàn)自動(dòng)操作電腦
在windows系統(tǒng)上,重復(fù)性的操作可以用Python腳本來(lái)完成,其中常用的模塊是win32gui、win32con、win32api,要使用這三個(gè)模塊需要先安裝pywin32。本文就為大家介紹了如何利用這些模塊實(shí)現(xiàn)自動(dòng)操作電腦,感興趣的可以了解一下2022-11-11
Python實(shí)現(xiàn)發(fā)送警告通知到企業(yè)微信方法詳解
常見(jiàn)的報(bào)警方式有:郵件,電話,短信,微信。本文將介紹如何利用Python發(fā)送警告通知到企業(yè)微信,文中的示例代碼有一定的參考價(jià)值,感興趣的可以了解一下2022-01-01

