zabbix 通过脚本发送微信告警
实现zabbix通过微信报警的方式也是通过脚本来实现,与邮件报警不同的是,脚本调用的微信的相关接口的获取相对复杂一点
1、申请一个微信公众号(企业号)
申请方法不多说,如果已申请请忽略
2、在微信企业号上新建应用
上传应用logo,填写应用名称,应用介绍等
应用创建完之后查看并启用应用,同时会生成应用的AgentId以及Secret,这个在后面步骤会有用
3、接口调用测试
点击:API文档——>开发者工具——>接口调试工具,找不到就直接点这个地址
http://work.weixin.qq.com/api/devtools/devtool.php
corpid为创建的企业号生成的corpid
Corpsecret就是在第2步中创建的应用所生成的Secret,填入后点击检查问题,生成请求地址和返回结果,确认无误后进行下一步
4、关于脚本
脚本的存放目录为/usr/lib/zabbix/alertscripts,脚本内容不做过多说明,需要了解含义请自行百度,脚本内容如下
[root@zabbix alertscripts]# cat weixin.py
#!/usr/bin/env python
#-*- coding: utf-8 -*-
import requests
import sys
import os
import json
import logginglogging.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
#获取accesstoken
token_url='https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + appsecret
req=requests.get(token_url)
accesstoken=req.json()['access_token']#发送消息
msgsend_url='https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + accesstokentouser=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)
脚本中需要填写微信企业号corpid,应用的Secret以及应用的id,脚本中还定义了日志文件为/tmp/weixin.log
脚本编写完成之后需要为脚本添加执行权限
[root@zabbix alertscripts]# chmod +x weixin.py
脚本后面内容中的一些参数touser,toparty,msgtype,agentid,content,safe是微信企业号中定义的参数名称,说明文档见腾讯企业号开发者文档https://work.weixin.qq.com/api/doc
目前微信企业号中的部门成员账号也就是我们使用的touser参数是部门成员的账号,这个账号在早起阶段是成员的微信号码,但是目前我们需要使用的账号微信官方自动生成为成员名字的拼音缩写,可以在微信企业号后台通讯录——>部门——>成员详情找到
另外需要说明的是,微信企业号应用的访问频率是有限制的,这一点同样也可以在开发者文档中找到
5、web界面新增报警媒介类型
名称自定义即可,类型选择脚本,脚本名称为所写的脚本的名称weixin.py,脚本的三个参数都是zabbix内置变量,分别为:报警收件人:{ALERT.SENDTO},报警标题:{ALERT.SUBJECT},报警内容:{ALERT.MESSAGE},添加完报警媒介类型后勾选启用
6、配置用户报警媒介信息
配置需要收到微信报警的用户的信息,添加报警媒介,选择上面创建的微信报警,收件人填写上面所说的部门成员的账号,由于是通过微信公众号发送的微信提醒,如果需要为多个用户例如微信企业号中所有用户发送报警,这里收件人的信息就填写为@all
7、测试
命令行测试脚本能否成功执行
[root@zabbix alertscripts]# ./weixin.py har452330261 "测试" 'test'
测试参数为三个,分别为部门成员账号,报警标题,报警内容
测试的时候如果出现错误提示缺少requests,解决方法为使用pip进行安装:pip install smtplib
测试后会在微信企业号中收到我们创建的应用所发出的消息
同时在zabbix服务器的后台也生成了微信报警的日志文件/tmp/weixin.log,如果测试不成功可以通过日志来进行查错
命令行测试完成后,如果想要通过zabbix进行触发报警,还需要做的就是将上面生成的日志文件的所属修改为zabbix用户且具有写权限
[root@zabbix alertscripts]# ll /tmp/weixin.log
-rwxr-xr-x 1 zabbix zabbix 35329 6月 13 07:47 /tmp/weixin.log
到这里微信报警就算大功告成了,接下来就可以愉快的通过zabbix进行触发微信报警了,报警成功触发后可以通过zabbix面板的报表——>动作日志查看
收到的报警提示如下
附加内容:
1、微信报警基于微信企业号,通常情况下我们收到微信企业号的消息需要下载微信企业号的客户端,如何不下载又能收到消息呢(也就是直接在自己的微信收到消息呢)?
解决办法为:进入微信企业号后台——>连接微信——>微工作台——>邀请关注,后台会给所拥有的微信企业号生成一个二维码,拿出手机,微信扫码关注,以后报警的消息就能直接在微信收到了
2、新添加的用户收到微信报警的步骤:
微信企业号通讯录相应部门中添加成员
微信企业号微工作台邀请成员关注
zabbix服务端web界面添加用户,设置用户的微信报警媒介(收件人所在部门的相应成员账号)
3、微信企业号具有很多功能以及开发者工具,有兴趣或者相关开发人员可以细细研究
zabbix 通过脚本发送微信告警相关推荐
- linux上配置zabbix并设置企业微信,机器人以及自主告警
linux上配置zabbix并设置企业微信,机器人以及自主告警 配置lamp 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 linux上配置zabbix并设置企业微信,机 ...
- zabbix部署、设置邮件和微信告警
1. Zabbix简介 Zabbix 是一个企业级分布式开源监控解决方案. Zabbix 软件能够监控众多网络参数和服务器的健康度.完整性.Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置 ...
- zabbix 配置企业微信告警群机器人告警
一.企业微信端配置 1.创建微信群机器人 在需要接收告警信息的企业微信群上右键(注意群里成员至少要3人以上),选择"添加群机器人",设置机器人名称,系统自动生成此机器人的webho ...
- 在zabbix中实现发送带有图片的邮件和微信告警
微信公众号:运维开发故事,作者:double冬 1 python实现在4.2版本zabbix发送带有图片的报警邮件 我们通常收到的报警,都是文字,是把动作中的消息内容当成了正文参数传给脚本,然后邮件或 ...
- 7、Zabbix微信告警
现实生产环境中,我们通常使用邮件和短信接受zabbix报警信息,但是邮件经常被工作人员搁置在角落中甚至被设置为垃圾邮件被过滤掉.公司的短信接口又太贵,复杂环境中使用短息报警会使运维成本增加很多.微信提 ...
- Zabbix 系统监控(三)VMware 虚拟平台监控、邮件告警、企业微信告警配置
Vmware 虚拟平台监控.邮件告警.企业微信告警配置 8 Vmware 虚拟平台监控 阅读 zabbix 官方文档,官方提供了 Vmware 虚拟机监控模板,并对模板进行了解释说明,但未对相应名词做 ...
- Zabbix企业微信告警最新版
2019独角兽企业重金招聘Python工程师标准>>> Zabbix企业微信告警最新版 2017年11月21日 15:38:33 阅读数:1481 Zabbix企业微信告警最新版 最 ...
- 【Zabbix】Zabbix微信告警配置演示
文章目录 参考连接 1.注册企业微信 2.配置企业微信 3.配置Zabbix服务器 1.确认记录相关信息 2.修改zabbix.conf 3.下载并设置脚本 4.执行脚本进行测试 4.在zabbix ...
- zabbix 微信告警
搭建微信告警参考: https://www.abcdocker.com/abcdocker/2472 http://www.oschina.net/news/75588/zabbix-3.0.3 ht ...
最新文章
- 1 sec on Large Judge (java): 
https://github.com/l...
- flask 刷新 html 网页
- linux下的环境变量/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc文件
- conda command not found ubuntu
- 计划得一步一步实施,题库首先是第一步!
- 问题 A: 深度学习
- WinForm------TreeList修改节点图标和按钮样式
- 修改weblogic服务的编码格式
- 零基础学python实战-Python3.6零基础入门与实战 PDF 带源码视频版
- 无法保存此文档。它可能是只读的,或者正在被其他应用程序使用
- 蓝丝雨第八季高精端实战系列【商业实战DNF刷图】
- 智能制造+机器视觉技术培训研讨会
- MODB:软体动物线粒体基因组数据库
- IP Scanner Pro for mac(局域网IP扫描)
- python 模拟键盘按键错乱_python 采坑总结 调用键盘事件后导致键盘失灵的可能原因...
- RustScan(端口扫描器)
- 【EdgeX(13)】 :EdgeX官方的摄像头demo-app,接入摄像头可以控制摄像头的上下左右方向,创建OpenVINO的目标检测跟踪服务,并成功接受到相关坐标数据,可以直接做边缘计算了。
- 论文阅读《Characterizing BDS signal-in-space performance from integrity perspective》3
- 计算机硬件介绍之CPU与多线程
- oracle中排序--拼音、笔画、偏旁部首
热门文章
- TMS Sphinx crack
- C/C++ 位域定义
- openCV学习-自动处理图片 视频
- 什么是游戏美术(游戏美工)?
- Java中计算1--n的累加和
- c语言数组从小到大冒泡排序,C语言冒泡排序将一个数组按照从小到大进行排序...
- NFT游戏开发元宇宙游戏开发游戏源码+搭建
- 服务器上传图片显示图片404,关于使用spring文件上传遇到的服务器中的图片访问不到报404的问题...
- LPR个人房贷利率如何计算?(商贷部分)
- 串行DAC——基于小梅哥AC620