现实生产环境中,我们通常使用邮件和短信接受zabbix报警信息,但是邮件经常被工作人员搁置在角落中甚至被设置为垃圾邮件被过滤掉。公司的短信接口又太贵,复杂环境中使用短息报警会使运维成本增加很多。微信提供了很好的第三方接口,我们可以利用微信报警以求降低运维成本。

微信的第三方接口要求我们先申请一个企业号——传送门:https://qy.weixin.qq.com/

1.通讯录添加企业成员

我们要提前把成员信息添加进组织部门,必填项+手机号或者微信号,这样别人扫描二维码的时候才能成功关注企业号。

注意:这里有两个我们要用到信息,一个组织部门的ID,一个部门成员的账号(账号是自己手动指定的,不同于微信号,最好是字母加数字)

添加成员后,成员通过扫描二维码关注企业微信号公众号。

2.应用中心创建应用

我们要在这里创建应用,因为要通过应用发送消息给部门成员

注意:这里要记住一个值,应用ID

3.给部门设置管理员

设置--->功能设置---->权限管理---->新建管理组

管理员必须事先已经关注了企业号,并且已经设置好邮箱地址

我们要准备这些东西:

  • 一个微信企业号

  • 企业号已经被部门成员关注

  • 企业号里有一个可以发消息的应用

  • 一个授权管理员,可以使用该应用给成员发消息

我们要取到这些信息:

  • CropID

  • Secret

4、创建微信告警的python脚本

#!/usr/bin/python2.7
# -*- coding: utf-8 -*-
import sys
import logging
import qyweixin
import json
import argparse
class Logger:def __init__(self, path, Slevel = logging.DEBUG, Flevel = logging.DEBUG):self.logger = logging.getLogger(path)self.logger.setLevel(logging.DEBUG)fmt = logging.Formatter('[%(asctime)s] [%(levelname)s] %(message)s', '%Y-%m-%d %H:%M:%S')#设置CMD日志sh = logging.StreamHandler()sh.setFormatter(fmt)sh.setLevel(Slevel)#设置文件日志fh = logging.FileHandler(path)fh.setFormatter(fmt)fh.setLevel(Flevel)self.logger.addHandler(sh)self.logger.addHandler(fh)def debug(self,message):self.logger.debug(message)def info(self,message):self.logger.info(message)def warning(self,message):self.logger.warning(message)def error(self,message):self.logger.error(message)def critical(self,message):self.logger.critical(message)
def main():# 发送短信日志文件log = Logger('/var/log/weixin.log',logging.ERROR,logging.DEBUG)# 微信基本参数corpid = "******"corpsecret = "********"qy = qyweixin.AccessToken(corpid, corpsecret)token = qy.get_token()push_msg = qyweixin.WeixinPush()# 用户所传参数parser = argparse.ArgumentParser()parser.add_argument("--zabbix_test", help="is test")parser.add_argument("--host", help="host name")parser.add_argument("--ip", help="host ip")parser.add_argument("--trigger", help="trigger name")parser.add_argument("--status", help="trigger status")parser.add_argument("--time", help="trigger time")parser.add_argument("--lastvalue", help="trigger lastvalue")parser.add_argument("--itemid", help="item id")parser.add_argument("--msg", help="msg content")# 解析所传入的参数args = parser.parse_args()host = args.hostip = args.iptrigger = args.triggerstatus = args.statustime = args.timelastvalue = args.lastvalueitemid = args.itemid#TODO: 告警分类,特定告警只发送给指定人员,待实现中# push_msg.push_text_msg(token=token, agentid=0, content='test msg', touser='test', toparty='test_group', totag='', safe=0)# push_msg.push_text_msg(token=token, agentid=0, content=msg, toparty="28|29")msg = "HOST: %s \nIP: %s \nTrigger: %s \nLastValue: %s \nTime: %s \nStatus: %s" %(host, ip, trigger, lastvalue, time, status)# 用户通过命令行发送消息if args.msg:msg = args.msgpush_msg.push_text_msg(token=token, agentid=0, content=msg)return# zabbix 所发的测试报警if args.zabbix_test:push_msg.push_text_msg(token=token, agentid=0, content=msg, touser="liuganglin")return# zabbix 所发的故障告警if not args.zabbix_test and not args.msg:push_msg.push_text_msg(token=token, agentid=0, content=msg)log.info(msg.replace("\n", " "))return
if __name__ == '__main__':main()

注意:这个脚本需要安装python2.7 ,并且用python2.7安装pip2.7。然后用pip2.7安装qyweixin (0.1.3)

[root@ZabbixServer alertscripts]# pip2.7 list
pip (8.0.2)
qyweixin (0.1.3)
setuptools (19.4)

将脚本放在Zabbix Server 的/etc/zabbix/alertscripts路径下

5、Zabbix WEB端配置

Configuration--Actions--Create Action

在Action页面中设置name即可,其他的默认

在Conditions页面设置告警条件,将要告警的主机组加入进来

在Operations中,设置Type为Custom Script,Commands中设置告警的参数。

收到的微信告警消息如下:

参考文档:http://wuhf2015.blog.51cto.com/8213008/1688614

转载于:https://blog.51cto.com/zengestudy/1788079

7、Zabbix微信告警相关推荐

  1. 73 Zabbix 微信告警

    Zabbix 微信告警 1.注册企业微信 企业微信注册地址:https://work.weixin.qq.com 2.进入企业微信后台管理 2.1 添加微信成员

  2. 【Zabbix】Zabbix微信告警配置演示

    文章目录 参考连接 1.注册企业微信 2.配置企业微信 3.配置Zabbix服务器 1.确认记录相关信息 2.修改zabbix.conf 3.下载并设置脚本 4.执行脚本进行测试 4.在zabbix ...

  3. zabbix 微信告警

    搭建微信告警参考: https://www.abcdocker.com/abcdocker/2472 http://www.oschina.net/news/75588/zabbix-3.0.3 ht ...

  4. zabbix微信告警HTML,ZABBIX实现微信告警

    1.1 上传脚本 根据自己server的环境进行选择 链接:https://pan.baidu.com/s/1lSyKFHoPnlDmUEAYxhJY7w 提取码:xi53 weixin_darwin ...

  5. zabbix微信告警(虚拟机脚本测试成功,zabbix上收不到信息)

    前言: 使用zabbix直接运行脚本又可以正常接收.但是登录zabbix  web界面,测试!  动作显示已送达,但是微信并没有收到信息! 解决: 添加脚本参数,因为不添加脚本参数,调用不了你这个脚本 ...

  6. Zabbix部署及微信告警功能

    大学毕业设计写的是关于Zabbix微信告警功能的设计与实现,因为某明星得瑟,高校严控查重率,所以我的毕业论文,虽然查重率比较低,但是还是感觉写的东西太少,不够专业,为了以后还能记住,特意写几篇文章记录 ...

  7. Zabbix实现微信告警

    zabbix实现微信告警可以分为以下两个步骤: 在百度告警告警平台实现微信告警 将Zabbix接入百度告警平台 微信告警 实现微信告警只需要如下四步: 个人主页关注微信 升级策略配置微信告警 服务管理 ...

  8. Zabbix 系统监控(三)VMware 虚拟平台监控、邮件告警、企业微信告警配置

    Vmware 虚拟平台监控.邮件告警.企业微信告警配置 8 Vmware 虚拟平台监控 阅读 zabbix 官方文档,官方提供了 Vmware 虚拟机监控模板,并对模板进行了解释说明,但未对相应名词做 ...

  9. Zabbix企业微信告警最新版

    2019独角兽企业重金招聘Python工程师标准>>> Zabbix企业微信告警最新版 2017年11月21日 15:38:33 阅读数:1481 Zabbix企业微信告警最新版 最 ...

最新文章

  1. 使用MASM04 - Win32汇编语言012
  2. C# 连接数据库 Sql Server
  3. 习题元祖与字典的值交换
  4. mongo更新数组字段_更新mongodb中嵌套数组中的几个字段(使用pymongo)
  5. 测试流程图_挑战美国Postman VS 龙测搭积木接口测试,谁与争锋
  6. SQL2012(32位)下载及安装(32位、64位都一样,不影响)
  7. C++工作笔记-对static_cast的进一步认识(强制转换改变内存,并且删除存在的问题)
  8. 近期计算机视觉相关算法竞赛汇总—总奖池超553万人民币
  9. JavaScript文档对象模型DOM节点操作之兄弟节点(4)
  10. Xshell连接不上行Linux系统
  11. 【Web技术】969- 如何实现高性能的在线 PDF 预览
  12. Ubuntu18.04安装CUDA10、CUDNN
  13. 多渠道打包中优雅的配置渠道签名
  14. 记首次CCF数据算法竞赛的心得与收获(排名top1、top2%、top8%),CCF明年再会!
  15. 台式电脑接路由器步骤_台式电脑怎么连接无线路由器 台式电脑无线路由器
  16. mysql 储存过程/函数调试
  17. python输出元组中的元素_python 列表(list)元组(tuple)字典(dict)如何打印中文总结...
  18. 知识?一文解析币圈一级二级市场 原来币圈居然这么多要知道的
  19. 传统学术研究中有哪些现实问题可望用区块链来解决?
  20. 机器学习 --- 模型评估、选择与验证

热门文章

  1. Linux下双网卡绑定(bonding技术)
  2. ossec 学习二 (ossec -analogi安装)
  3. JS触发Click操作以及获得事件源(转)
  4. python 进阶:修饰器的介绍
  5. redis在Linux上的安装
  6. Kafka实现细节(下)
  7. 【零基础】了解一下前端HTML与CSS
  8. 16个很有用的在线工具
  9. 单独使用 EHCache
  10. Shell脚本判断IP是否合法性(多种方法)