python3实现zabbix告警推送钉钉的示例


Posted in Python onFebruary 20, 2019

自己写了一个简单的python脚本,用来推送zabbix告警到钉钉机器人,推送格式为markdown,有需要的可以自己修改markdown的格式及推送的值(zabbix宏)

python3实现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 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替换成钉钉机器人webhook URL

python3实现zabbix告警推送钉钉的示例

配置user

python3实现zabbix告警推送钉钉的示例

配置action

python3实现zabbix告警推送钉钉的示例

附上message

告警

## 故障 

**主机名称:** {HOSTNAME1} 
**告警名称:** {TRIGGER.NAME} 
**告警级别:** {TRIGGER.SEVERITY} 
**告警时间:** {EVENT.DATE} {EVENT.TIME} 
**检查项:** {TRIGGER.KEY1} 
**当前值:** {ITEM.LASTVALUE} 
**IP地址:** {HOST.IP} 
**事件ID:** {EVENT.ID}

恢复

## 恢复  

**主机名称:** {HOSTNAME1} 
**告警名称:** {TRIGGER.NAME} 
**告警级别:** {TRIGGER.SEVERITY} 
**告警时间:** {EVENT.DATE} {EVENT.TIME} 
**恢复时间:** {EVENT.RECOVERY.DATE} {EVENT.RECOVERY.TIME} 
**故障时长:** {EVENT.AGE} 
**检查项:** {TRIGGER.KEY1} 
**当前值:** {EVENT.RECOVERY.VALUE} 
**IP地址:** {HOST.IP} 
**事件ID:** {EVENT.ID}

以上这篇python3实现zabbix告警推送钉钉的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python模拟登录12306的方法
Dec 30 Python
Python语言的面相对象编程方式初步学习
Mar 12 Python
Python编码爬坑指南(必看)
Jun 10 Python
Python中的数学运算操作符使用进阶
Jun 20 Python
详解TensorFlow查看ckpt中变量的几种方法
Jun 19 Python
Python3 字典dictionary入门基础附实例
Feb 10 Python
Python实现井字棋小游戏
Mar 09 Python
使用Keras 实现查看model weights .h5 文件的内容
Jun 09 Python
golang特有程序结构入门教程
Jun 02 Python
python+opencv实现视频抽帧示例代码
Jun 11 Python
关于python爬虫应用urllib库作用分析
Sep 04 Python
Python人工智能之混合高斯模型运动目标检测详解分析
Nov 07 Python
python实现图书借阅系统
Feb 20 #Python
python 调用钉钉机器人的方法
Feb 20 #Python
python钉钉机器人运维脚本监控实例
Feb 20 #Python
Python实现钉钉发送报警消息的方法
Feb 20 #Python
python给微信好友定时推送消息的示例
Feb 20 #Python
linux查找当前python解释器的位置方法
Feb 20 #Python
python 定时器,实现每天凌晨3点执行的方法
Feb 20 #Python
You might like
PHP连接access数据库
2008/03/27 PHP
php读取mysql中文数据出现乱码的解决方法
2013/08/16 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
2016/03/21 PHP
Joomla调用系统自带编辑器的实现方法
2016/05/05 PHP
php安全配置记录和常见错误梳理(总结)
2017/03/28 PHP
js 动态文字滚动的例子
2011/01/17 Javascript
jquery ajax提交整个表单元素的快捷办法
2013/03/27 Javascript
jQuery实现类似滑动门切换效果的层切换
2013/09/23 Javascript
从数组中随机取x条不重复数据的JS代码
2013/12/24 Javascript
页面加载完后自动执行一个方法的js代码
2014/09/06 Javascript
jQuery基础语法实例入门
2014/12/23 Javascript
使用mouse事件实现简单的鼠标经过特效
2015/01/30 Javascript
js实现浏览器倒计时跳转页面效果
2016/08/12 Javascript
Jquery Easyui表单组件Form使用详解(30)
2016/12/19 Javascript
jQuery插件FusionCharts绘制的3D饼状图效果实例【附demo源码下载】
2017/03/03 Javascript
Vue.js如何优雅的进行form validation
2017/04/07 Javascript
详解使用angularjs的ng-options时如何设置默认值(初始值)
2017/07/18 Javascript
node.js利用mongoose获取mongodb数据的格式化问题详解
2017/10/06 Javascript
原生js实现仿window10系统日历效果的实例
2017/10/31 Javascript
webpack项目调试以及独立打包配置文件的方法
2018/02/28 Javascript
vue页面离开后执行函数的实例
2018/03/13 Javascript
JavaScript中toLocaleString()和toString()的区别实例分析
2018/08/14 Javascript
Nginx设置为Node.js的前端服务器方法总结
2019/03/27 Javascript
每周一练 之 数据结构与算法(Stack)
2019/04/16 Javascript
JavaScript中变量提升机制示例详解
2019/12/27 Javascript
vue.js使用v-model实现父子组件间的双向通信示例
2020/02/05 Javascript
[03:38]TI4西雅图DOTA2前线报道 71专访
2014/07/08 DOTA
Python交互环境下实现输入代码
2018/06/22 Python
python实现从pdf文件中提取文本,并自动翻译的方法
2018/11/28 Python
python和pywin32实现窗口查找、遍历和点击的示例代码
2020/04/01 Python
python3环境搭建过程(利用Anaconda+pycharm)完整版
2020/08/19 Python
有影响力的人、名人和艺术家的官方商品:Represent
2019/11/26 全球购物
银行反四风对照检查材料
2014/09/29 职场文书
高中生期中考试失利检讨书
2014/10/23 职场文书
上课迟到检讨书
2015/05/06 职场文书
实例详解Python的进程,线程和协程
2022/03/13 Python