Zabbix 使用微信接收报警信息
1、Zabbix 使用微信接收报警信息
目录[-]
1、配置Zabbix微信报警媒介
2、配置收件人
3、配置Action
4、准备微信报警脚本
5、微信脚本关联企业微信
6、微信告警脚本配置连接微信API认证信息
7、企业微信消息测试
8、Zabbix告警测试
Zabbix没有为我们提供微信报警的媒介,我们需要自己创建,通过脚本来发消息。主要分为三部分:
1、zabbix server端配置报警媒介,以及发给谁 ;
2、准备微信告警脚本;
3、在企业微信创建应用API(供zabbix报警调用)以及用户的账号(收报警信息)。
1、配置Zabbix微信报警媒介
Administration–>Media Types–>Create Media Type
脚本加入三个参数:
- {ALERT.SENDTO} 发送给谁
- {ALERT.SUBJECT} 发送信息的标题
- {ALERT.MESSAGE} 发送内容
脚本文件放在服务端即server端:微信脚本是放在服务端的weixin.sh
2、配置收件人
配置报警邮件的接收人,到底写谁?这个收件人必须拥有企业微信账号,后面会讲,可以先配置:
至此 发送端接收端都已经配置好了 微信监控报警配置完毕
3、配置Action
4、准备微信报警脚本
上传微信报警包,并解压缩 (公众号回复关键字:“zbx-wx” 即可获取)
Zabbix微信告警脚本。
链接:https://pan.baidu.com/s/1zQAvIaQCA43asjF0lKJibA
提取码:c1vl
[root@localhost src]# tar zxvf zabbix_weixin.x86_64.tar.gz
[root@localhost zabbix_weixin]# ll
total 6712
-rwxr-xr-x. 1 root wheel 6868856 Jan 27 2016 weixin #可以看到是一个可执行脚本文件,有x权限
-rw-r--r--. 1 root wheel 99 Jan 27 2016 weixincfg.json #配置文件
[root@localhost zabbix_weixin]# mv weixin weixin.sh #因为zabbix媒介weixin里面配置脚本名称就是weixin.sh,一个二进制文件(这个脚本名字要和媒介里面的微信脚本名称保持一致)
配置server端报警文件的路径,即脚本存放的路径:
[root@localhost zabbix_weixin]# vim /et
c/zabbix_server.conf
AlertScriptsPath=/var/lib/zabbixsrv/alertscripts
将脚本拷贝到该目录:
[root@localhost zabbixsrv]# mkdir -p /var/lib/zabbixsrv/alertscripts
[root@localhost ~]# cp /usr/src/zabbix_weixin/weixin.sh /var/lib/zabbixsrv/alertscripts/
[root@localhost ~]# cd /var/lib/zabbixsrv/alertscripts/
[root@localhost alertscripts]# ls
weixin.sh
[root@localhost alertscripts]# cp /usr/src/zabbix_weixin/weixincfg.json /etc/ --微信配置文件拷贝到/etc下面,这个文件配置在企业微信配置好后面配
5、微信脚本关联企业微信
在企业微信创建消息应用,在企业微信的后台创建应用,就是消息应用,微信报警的应用要绑定部门成员,只有在该部门里面的成员才可以接收到微信信息。
创建运维部门:
创建应用,这个应用就是用来实现报警的API, 可见范围就是哪些人可以使用该应用,即报警。
创建用户,这些用户属于运维部门,就是用来接收报警信息的,注意账号,这个账号是在zabbix配置收件人需要配置的,即send to。
6、企业微信消息测试
这个应用为报警提供了API接口,可以看到产生了AgentId Secret 这个都需要添加到配置文件里面,下面先来测试发信息。
可以看到通过该API可以向运维部的成员发送消息,要让zabbix触发器满足某个条件通过该API来实现微信报警。
7、微信告警脚本配置连接微信API认证信息
[root@localhost zabbix_weixin]# vim /etc/weixincfg.json
{"corp": {"corpid": "ww0ba7f12c8be29fdf","secret": "rDAdRGMdb5YilAWoChY5bJFCp1yS6t500i66LmoysDM","agentid": 1000004}
}
这三行就是调用微信api接口凭据,copyid相当于企业ID, secret+agentid相当于一个应用,这个应用就是来实现报警的。
8、Zabbix告警测试
找一台被监控端,关闭nginx服务触发告警。
# 2、zabbix通过微信报警
Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越多的企业开始使用zabbix结合微信作为主要的告警方式,这样可以及时有效的把告警信息推送到接收人,方便告警的及时处理。
1、注册企业微信
注册地址: https://work.weixin.qq.com
2、配置企业微信
2.1 创建部门
2.2 添加成员
也可通过二维码邀请成员
记住成员账号(后面会用到)
3. 创建应用
填写应用信息(应用名字和可见成员)
记住应用(AgentId、Secret后面会用到)
4、配置监控脚本
准备事项:
微信企业号
企业号已经被部门成员关注
企业号有一个可以发送消息的应用,一个授权管理员,可以使用应用给成员发送消息
需要得到的信息
成员账号
组织部门ID
应用ID
CorpID和Secret
4.1 修改zabbix_agentd
[root@localhost ~]# grep alertscripts /etc/zabbix/zabbix_server.conf
# AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/opt/scripts/zabbix/alertscripts
4.2 安装simplejson
wget https://pypi.python.org/packages/f0/07/26b519e6ebb03c2a74989f7571e6ae6b82e9d7d81b8de6fcdbfc643c7b58/simplejson-3.8.2.tar.gz
tar zxvf simplejson-3.8.2.tar.gz && cd simplejson-3.8.2
python setup.py build
python setup.py install
4.3 配置监控脚本
[root@localhost alertscripts]# cat /opt/scripts/zabbix/alertscripts/wechat.py
#!/usr/bin/python
#_*_coding:utf-8 _*_import urllib,urllib2
import json
import sys
import simplejsonreload(sys)
sys.setdefaultencoding('utf-8')def gettoken(corpid,corpsecret):gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret
# print gettoken_urltry:token_file = urllib2.urlopen(gettoken_url)except urllib2.HTTPError as e:print e.codeprint e.read().decode("utf8")sys.exit()token_data = token_file.read().decode('utf-8')token_json = json.loads(token_data)token_json.keys()token = token_json['access_token']return tokendef senddata(access_token,user,subject,content):send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_tokensend_values = {"touser":'damaiyunwei', #企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送。"toparty":"2", #企业号中的部门id。"msgtype":"text", #消息类型。"agentid":"1000002", #企业号中的应用id。"text":{"content":subject + '\n' + content},"safe":"0"}
# send_data = json.dumps(send_values, ensure_ascii=False)send_data = simplejson.dumps(send_values, ensure_ascii=False).encode('utf-8')print(send_data)send_request = urllib2.Request(send_url, send_data)response = json.loads(urllib2.urlopen(send_request).read())print str(response)if __name__ == '__main__':user = str(sys.argv[1]) #zabbix传过来的第一个参数subject = str(sys.argv[2]) #zabbix传过来的第二个参数content = str(sys.argv[3]) #zabbix传过来的第三个参数corpid = 'ww758c347e5635e284' #CorpID是企业号的标识corpsecret = 'Sf5m6Xfu3laloq36k9mIrrpjYufGl4U61zyUApCWNcE' #corpsecretSecret是管理组凭证密钥accesstoken = gettoken(corpid,corpsecret)senddata(accesstoken,user,subject,content)
4.4 报警测试
./wechat.py 1 报警测试 error{"text": {"content": "报警测试\nerror"}, "safe": "0", "msgtype": "text", "touser": "damaiyunwei", "agentid": "1000002", "toparty": "2"}
{u'invaliduser': u'', u'errcode': 0, u'errmsg': u'ok'}
5、 zabbix web界面配置
5.1 配置报警媒介
5.2 创建报警用户
5、 zabbix web界面配置
5.1 配置报警媒介
5.2 创建报警用户
5.3 配置用户报警媒介(选择刚才创建的)
5.4 创建动作
5.5 设置报警消息
故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
5.6 恢复报警
恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!告警主机:{HOSTNAME1}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID:{EVENT.ID}
到此,zabbix微信报警已完成,自行测试即可
参考链接 :
Zabbix 使用微信接收报警信息 :https://mp.weixin.qq.com/s/i4nF-KSyR8obdhEilb50dA
精简干货之–zabbix通过微信报警 :https://mp.weixin.qq.com/s/kg-2ToVJM8kaZjQP3x81bw
Zabbix 使用微信接收报警信息相关推荐
- 微信-软件 报警信息
微信报警信息配置地址: http://www.siteview.com/sites/siteview/home/document/siteview-itoss/itoss-faq/faq-azjc/f ...
- oracle定时器定时删除30天前的数据_使用 TDengine 存储能耗数据并通过钉钉机器人接收报警信息...
小 T 导读:福建中海创集团(FUJIAN HISTRON)始创于1992年,是一家专业从事综合智能服务的大型企业集团.基于多年打造的"工业4.0"的核心技术.商业模式与产业链体系 ...
- 怎么在微信接收邮箱信息
1.网易企业邮箱. 对于网易企业邮箱账户,可以微信关注公众号"网易企业邮箱服务号",绑定网易企业邮箱账户后可以收到"信函到达通知". 2.腾讯企业邮箱. 同网易 ...
- 企业实战zabbix(7)--结合qqmail(报警信息发给qq用户)
启用电子邮件,停用sms 方式一:设置qq邮箱,选择标准版的(目前已不可用) 方式二: 用手机下载qq邮箱app,进行以上相同的步骤. 注意: 配置zabbix-server虚拟机上网,使出现问题的时 ...
- 利用云服务器接收微信消息,使用脚本实现云之家(类似微信)接收zabbix报警消息...
之前共享了云之家报警脚本,使用此脚本,可以实现下面这种实时的报警消息.当然我们也可以使用微信来报警,不过云之家是完全免费没有任何限制可以发送∞条消息,微信需要花钱认证才能实现相同的功能,所以选择云之家 ...
- Zabbix配置微信报警通知
Zabbix告警可以通过邮件,微信,电话,短信等方式发送告警消息. 电话和短信需要向运营商购买相应的网关,需要付费: 邮件和微信是免费的,可以根据业务需要选择相应的告警模式 Zabbix版本:3.2 ...
- zabbix配置微信报警
前言:zabbix一般可以通过邮件以及脚本的方式进行告警,zabbix通过微信报警的方式也是通过脚本来实现 企业微信号内配置 自行申请企业号 在企业号内添加新应用 应用创建完之后查看并启用应用,同时会 ...
- Zabbix设置微信报警
Zabbix微信告警 企业微信注册地址:https://work.weixin.qq.com 登录进来的首页 设置总部门名称添加成员 创建应用 收集信息 部门ID AgentId和Secret ID ...
- php微信公众号报警,Zabbix之微信订阅号平台报警
Zabbix简介 zabbix(音同 zbix)是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案. zabbix能监视各种网络参数,保证服务器系统的安全运营:并提供灵活的 ...
最新文章
- 关于oracle中table函数的使用
- 关于AttributeError:‘Flask‘ object has no attribute ‘ensure_sync‘的报错解决
- /usr/lib/sudo/sudoers.so must be only be writable by owner
- 数据挖掘——相似文章推荐
- ACDU活动回顾:@DBA,前辈指路不迷茫
- 写给开发者——从比特币脚本引擎到以太坊虚拟机
- Docker 私有仓库搭建
- 崩坏3支持鸿蒙系统没,崩坏3鸿蒙版
- ORACLE 發送郵件(全)
- .Hbase批量导入数据应用
- 初级程序员考试知识点总结
- 12-ubuntu:010 Editor
- win7 蓝屏:stop 0x0000006b解决方法
- 零信任学习系列一——研读NIST零信任架构(正式版)
- 赵小楼《天道》《遥远的救世主》深度解析(137) 职业的责任担当,活的认真
- 福利彩票36选7模拟程序
- 初始化磁盘选哪个格式 初始化磁盘分区形式选什么好
- 迅视财经 探馆长沙智能制造大会
- Go语言下载安装教程|Goland配置教程|2021|Windows
- 【2019-CVPR-3D人体姿态估计】Weakly-Supervised Discovery of Geometry-Aware Representation for 3D HPE..
热门文章
- matlab的HDLcoder,MATLAB发布新产品模块——Simulink HDL Coder_虚拟与仿真
- n平方的求和公式_极限求解--数列前n项和公式推导(补充知识)
- 只显示小方格_excel中最有效率的插件——方方格子
- leip与mysql数据库_性能分析方法 - osc_xm8bu282的个人空间 - OSCHINA - 中文开源技术交流社区...
- 计算机学习知识,如何学习计算机知识呢
- linux系统函数 utime,utime函数
- 知道python_看完这篇文章,你就知道Python是什么?
- iptables防火墙基础
- TortoiseGit客户端的ssh密钥配置
- Oracle绑定变量分级(Bind Graduation)