自己寫了一個簡單的python腳本,用來推送zabbix告警到釘釘機器人,推送格式為markdown,有需要的可以自己修改markdown的格式及推送的值(zabbix宏)

環境如下,理論上zabbix版本不影響,可以看看官方宏定義是否有區別
python 3
zabbix 3.4.2
zabbix宏官方文檔:https://www.zabbix.com/documentation/3.4/manual/appendix/macros/supported_by_location
配置
配置釘釘自定義機器人
官方文檔: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開發,一切最終解釋權歸于huangwjwork.本程序為開源,只用于技術交流,只供開發者參考與學習.不得用于違反法律以及未經許可不得用于商業.保留其追責權利.本程序不涉及任何違法敏感因素,如有人拿程序改造成違法工具,將與本程序開發者無關.勇于開源,請勿濫用.內部學習交流,請勿傳播.違反者造成相關法律事故,自行承擔刑事責任.'''import sysimport getoptimport requestsimport jsonimport tracebacktry: 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替換成釘釘機器人webhook URL

配置user

配置action

附上message
告警
## 故障 **主機名稱:** {HOSTNAME1} **告警名稱:** {TRIGGER.NAME} **告警級別:** {TRIGGER.SEVERITY} **告警時間:** {EVENT.DATE} {EVENT.TIME} **檢查項:** {TRIGGER.KEY1} **當前值:** {ITEM.LASTVALUE} **IP地址:** {HOST.IP} **事件ID:** {EVENT.ID}            
新聞熱點
疑難解答