前提:安装配置好zabbix-server 安装php 、 pip
实现zabbix通过微信报警的方式也是通过脚本来实现,与邮件报警不同的是,脚本调用的微信的相关接口的获取相对复杂一点
1、申请一个微信公众号(企业号),为了获得三个数据(corpid、appsecret、agentid)用于写脚本参数。


接口调用测试
点击:API文档——>开发者工具——>接口调试工具,找不到就直接点这个地址
http://work.weixin.qq.com/api/devtools/devtool.php
corpid为创建的企业号生成的corpid2.写脚本 位置/usr/lib/zabbix/alertscripts
cat weixin.py

#!/usr/bin/env python#-*- coding: utf-8 -*-import requestsimport sysimport osimport jsonimport logging logging.basicConfig(level = logging.DEBUG, format = '%(asctime)s, %(filename)s, %(levelname)s, %(message)s',datefmt = '%a, %d %b %Y %H:%M:%S',filename = os.path.join('/tmp','weixin.log'),filemode = 'a')corpid='微信企业号corpid'appsecret='应用的Secret'agentid=应用的id#获取accesstokentoken_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecretreq=requests.get(token_url)accesstoken=req.json()['access_token']#发送消息msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstoken touser=sys.argv[1]subject=sys.argv[2]#toparty='3|4|5|6'message=sys.argv[2] + "\n\n" +sys.argv[3]params={"touser": touser,#"toparty": toparty,"msgtype": "text","agentid": agentid,"text": {"content": message},"safe":0}req=requests.post(msgsend_url, data=json.dumps(params))logging.info('sendto:' + touser + ';;subject:' + subject + ';;message:' + message)

3.脚本编写完成之后需要为脚本添加执行权限
[root@zabbix alertscripts]# chmod +x weixin.py
4.web界面新增报警媒介类型

名称自定义即可,类型选择脚本,脚本名称为所写的脚本的名称weixin.py,脚本的三个参数都是zabbix内置变量,分别为:报警收件人:{ALERT.SENDTO},报警标题:{ALERT.SUBJECT},报警内容:{ALERT.MESSAGE},添加完报警媒介类型后勾选启用.
5.6、配置用户报警媒介信息
配置需要收到微信报警的用户的信息,添加报警媒介,选择上面创建的微信报警,收件人填写上面所说的部门成员的账号,由于是通过微信公众号发送的微信提醒,如果需要为多个用户例如微信企业号中所有用户发送报警,这里收件人的信息就填写为@all

6.测试
命令行测试脚本能否成功执行
[root@zabbix alertscripts]# ./weixin.py 用户id “测试” ‘test’

测试的时候如果出现错误提示缺少requests,解决方法为使用pip进行安装:pip install smtplib同时在zabbix服务器的后台也生成了微信报警的日志文件/tmp/weixin.log,如果测试不成功可以通过日志来进行查错命令行测试完成后,如果想要通过zabbix进行触发报警,还需要做的就是将上面生成的日志文件的所属修改为zabbix用户且具有写权限 chown -R   777 /tmp/weixin.log  [root@zabbix alertscripts]# ll /tmp/weixin.log    -rwxr-xr-x 1 zabbix zabbix 35329 6月 13 07:47 /tmp/weixin.log 到这里微信报警就算大功告成了,接下来就可以愉快的通过zabbix进行触发微信报警了,报警成功触发后可以通过zabbix面板的报表——>动作日志查看

©著作权归作者所有:来自51CTO博客作者wx5b99ec814c1ab的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. MySQL-MHA集群部署(binlog复制)
  2. 优雅spring-boot项目启动,停止,重启脚本
  3. 虚假软件更新滥用NetSupport远程访问工具
  4. 【DB笔试面试459】ORA-00904:
  5. DiskShadow使用大全 基于IOCs的防御
  6. 【函数】wm_concat包的订制
  7. ubuntu下安装交叉编译的环境脚本
  8. Take Command 脚本语言基础
  9. Zabbix各种报错信息和遇到的问题

随机推荐

  1. Wordpress 外网访问时不显示图片解决办法
  2. Java MySQL数据类型对照
  3. [征集] MySQL交叉表解决方案及散分
  4. VS2013使用EF6通过ADO.NET 连接mySql成功
  5. mysql 批量更新与批量更新多条记录的不同
  6. MySQL第一课(基础、库操作、表操作)
  7. labview使用DSN与数据库的连接包括access
  8. 【文档】五、Mysql Binlog事件结构
  9. g++ 连接 mysql 编译报错 /usr/bin/ld: c
  10. Mysql 查看及设置事物隔离级别