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随机生成一个6位的验证码代码分享
Mar 24 Python
Python实现统计代码行的方法分析
Jul 12 Python
python logging日志模块的详解
Oct 29 Python
Python之Scrapy爬虫框架安装及使用详解
Nov 16 Python
Python实现的基数排序算法原理与用法实例分析
Nov 23 Python
python2.7到3.x迁移指南
Feb 01 Python
Python3.6简单反射操作示例
Jun 14 Python
Python实现随机漫步功能
Jul 09 Python
python脚本当作Linux中的服务启动实现方法
Jun 28 Python
Django处理Ajax发送的Get请求代码详解
Jul 29 Python
python自定义时钟类、定时任务类
Feb 22 Python
python-web根据元素属性进行定位的方法
Dec 13 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 身份验证方面的函数
2009/10/11 PHP
基于HTTP长连接的"服务器推"技术的php 简易聊天室
2009/10/31 PHP
基于php冒泡排序算法的深入理解
2013/06/09 PHP
php邮件发送的两种方式
2020/04/28 PHP
PHP获取IP地址所在地信息的实例(使用纯真IP数据库qqwry.dat)
2016/11/15 PHP
javascript 子窗体父窗体相互传值方法
2010/05/31 Javascript
如何使用json在前后台进行数据传输实例介绍
2013/04/11 Javascript
深入理解JSON数据源格式
2014/01/10 Javascript
解析JavaScript的ES6版本中的解构赋值
2015/07/28 Javascript
jquery图片滚动放大代码分享(2)
2015/08/28 Javascript
jquery图片轮播特效代码分享
2020/04/20 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
2015/09/19 Javascript
Angular的$http与$location
2016/12/26 Javascript
Vue项目路由刷新的实现代码
2019/04/17 Javascript
js实现图片粘贴到网页
2019/12/06 Javascript
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
[41:08]TNC vs VG 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
Python中MySQL数据迁移到MongoDB脚本的方法
2016/04/28 Python
python中实现精确的浮点数运算详解
2017/11/02 Python
使用pandas对矢量化数据进行替换处理的方法
2018/04/11 Python
解决python2 绘图title,xlabel,ylabel出现中文乱码的问题
2019/01/29 Python
Python脚本修改阿里云的访问控制列表的方法
2019/03/08 Python
Python完全识别验证码自动登录实例详解
2019/11/24 Python
python 循环数据赋值实例
2019/12/02 Python
python requests模拟登陆github的实现方法
2019/12/26 Python
Python爬虫headers处理及网络超时问题解决方案
2020/06/19 Python
卸载tensorflow-cpu重装tensorflow-gpu操作
2020/06/23 Python
基于HTML5 audio元素播放声音jQuery小插件
2011/05/11 HTML / CSS
军训自我鉴定200字
2014/02/13 职场文书
环保建议书100字
2014/05/14 职场文书
销售团队获奖感言
2014/08/14 职场文书
党员剖析材料范文
2014/09/30 职场文书
工程技术员岗位职责
2015/04/11 职场文书
2015年档案室工作总结
2015/05/23 职场文书
歌咏比赛口号大全
2015/12/25 职场文书
python四个坐标点对图片区域最小外接矩形进行裁剪
2021/06/04 Python