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中assert用法实例分析
Apr 30 Python
在Python的Django框架中更新数据库数据的方法
Jul 17 Python
Python实现网站注册验证码生成类
Jun 08 Python
Scrapy基于selenium结合爬取淘宝的实例讲解
Jun 13 Python
TensorFlow 滑动平均的示例代码
Jun 19 Python
python字符串中匹配数字的正则表达式
Jul 03 Python
Python-openCV读RGB通道图实例
Jan 17 Python
详解django中Template语言
Feb 22 Python
学习Python列表的基础知识汇总
Mar 10 Python
Python GUI编程学习笔记之tkinter中messagebox、filedialog控件用法详解
Mar 30 Python
Python request中文乱码问题解决方案
Sep 17 Python
python中time tzset()函数实例用法
Feb 18 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中使用Imagick操作PSD文件实例
2015/01/26 PHP
php中session定期自动清理的方法
2015/11/12 PHP
Laravel中为什么不使用blpop取队列详析
2018/08/01 PHP
JavaScript中的一些定位属性[图解]
2010/07/14 Javascript
jquery中通过过滤器获取表单元素的实现代码
2011/07/05 Javascript
js实现简单的购物车有图有代码
2014/05/26 Javascript
使用js画图之圆、弧、扇形
2015/01/12 Javascript
jQuery实现带滚动线条导航效果的方法
2015/01/30 Javascript
jQuery实现仿路边灯箱广告图片轮播效果
2015/04/15 Javascript
Bootstrap CSS布局之代码
2016/12/17 Javascript
Bootstrap中datetimepicker使用小结
2016/12/28 Javascript
通过sails和阿里大于实现短信验证
2017/01/04 Javascript
详解vue中使用微信jssdk
2019/04/19 Javascript
生产制造追溯系统之再说条码打印
2019/06/03 Javascript
ES6 class的应用实例分析
2019/06/27 Javascript
vue $set 给数据赋值的实例
2019/11/09 Javascript
JavaScript实现密码强度实时验证
2020/03/18 Javascript
从0到1学习JavaScript编写贪吃蛇游戏
2020/07/28 Javascript
[01:44]Ti10举办地公布
2019/08/25 DOTA
python调用cmd命令行制作刷博器
2014/01/13 Python
caffe binaryproto 与 npy相互转换的实例讲解
2018/07/09 Python
Python 常用模块 re 使用方法详解
2019/06/06 Python
Python tcp传输代码实例解析
2020/03/18 Python
Python图像阈值化处理及算法比对实例解析
2020/06/19 Python
python mock测试的示例
2020/10/19 Python
如何利用python正则表达式匹配版本信息
2020/12/09 Python
plt.figure()参数使用详解及运行演示
2021/01/08 Python
美国体育用品商店:Rally House(NCAA、NFL、MLB、NBA、NHL和MLS)
2018/01/03 全球购物
某个公司的Java笔面试题
2016/03/11 面试题
军训的自我鉴定
2013/12/10 职场文书
烹调加工管理制度
2014/02/04 职场文书
难忘的一课教学反思
2014/04/30 职场文书
2015年法院工作总结范文
2015/04/28 职场文书
乡镇司法所2015年度工作总结
2015/10/14 职场文书
关于python中readlines函数的参数hint的相关知识总结
2021/06/24 Python
Nginx配置使用详解
2022/07/07 Servers