zabbix设置微信报警的配置过程
zabbix设置微信报警的配置过程
转发:https://blog.csdn.net/qq_31613055/article/details/78831607
微信企业号的申请
注册的地址https://qy.weixin.qq.com/
这样企业就注册完成了我们来创建用户和应用
创建应用
到这里为止我们在企业微信上的操作基本就已经结束了,此时我们应该去zabbix下配置脚本
[root@koby ~]# cd /usr/local/zabbix-3.4.4/
[root@koby zabbix-3.4.4]# mkdir scripts && chown -R zabbix.zabbix scripts
[root@koby zabbix-3.4.4]# vim conf/zabbix_server.conf
[root@koby zabbix-3.4.4]# vim conf/zabbix_server.conf
AlertScriptsPath=/usr/local/zabbix-3.4.4/scripts #把里面的AlertScriptsPath改成相对应的路径
- 1
- 2
- 3
- 4
- 5
- 6
我们配置微信脚本 首先我们需要调用微信接口
调用微信接口需要一个调用接口的凭证:access_token
通过:GropID,Secret才能获取到access_token,但是获取到的token有效期为两分钟
微信企业号接口调试工具地址:http://qydev.weixin.qq.com/debug
打开上面的url,使用上面monitops企业号的monit-manager管理组的CorpID和Secret号获得调用接口凭证access_token,如下
在这里我们看到需要两个值这两个值分别在
[root@koby /data/tar]# wget https://pypi.python.org/packages/f0/07/26b519e6ebb03c2a74989f7571e6ae6b82e9d7d81b8de6fcdbfc643c7b58/simplejson-3.8.2.tar.gz
[root@koby /data/tar]# tar -zxvf simplejson-3.8.2.tar.gz
[root@koby simplejson-3.8.2]# python setup.py build
[root@koby simplejson-3.8.2]# python setup.py install
[root@koby scripts]# cat weixin.py
#!/usr/bin/python
#_*_coding:utf-8 _*_
import urllib,urllib2
import json
import sys
import simplejson
reload(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_url
try:
token_file = urllib2.urlopen(gettoken_url)
except urllib2.HTTPError as e:
print e.code
print 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 token
def senddata(access_token,user,subject,content):
send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token
send_values = {
"touser":"*******", #企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送。
"toparty":"2", #企业号中的部门id。
"msgtype":"text", #消息类型。
"agentid":"*******", #企业号中的应用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')
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 = '***********' #企业号的标识(上文中提到获取位置)
corpsecret = '*********' #管理组凭证密钥(上文中提到获取位置)
accesstoken = gettoken(corpid,corpsecret)
senddata(accesstoken,user,subject,content)
[root@koby scripts]# chmod 755 weixin.py & chown -R zabbix.zabbix weixin.py
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
手动测试weixin.py脚本,可以使用用户账号或应用ID去测试,观察微信是否能收到信息:
[root@koby scripts]# ./weixin.py 654547615@qq.com test test
https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wwa837c8ac53ec6618&corpsecret=lwc9BY3pEW8cF9q3Fqj1OLz-AFvYARV7_vwvdXPuZXM
{u'invalidparty': u'2', u'invaliduser': u'', u'errcode': 0, u'errmsg': u'ok'
- 1
- 2
- 3
上面的654547615@qq.com是我们的用户的账号
当在企业微信上收到发送的信息后我们就可以登录zabbix,在上面添加报警配置1)创建报警媒介(这里我选用python脚本:weixin.py)
注意下面要填写的脚本参数:
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
2)创建用户weixin(密码一栏可以选择跟之前的超级管理员zabbix一样的密码;用户类型也可以设置成超级管理员)
3)创建动作
![]()
![]()
{TRIGGER.STATUS}: {TRIGGER.NAME}
告警主机:{HOST.NAME}
主机IP: {HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}{TRIGGER.STATUS}: {TRIGGER.NAME}
告警主机:{HOST.NAME}
主机IP: {HOST.IP}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息:{TRIGGER.NAME}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件ID: {EVENT.ID}到这里我们就配置完毕了 但是这样的问题是只能用企业微信接到消息 那么如何让我们平时使用的微信也能接到消息呢?
这里我们用手机扫描二维码进行关注 下面我们来测试下
[root@koby scripts]# service zabbix_agentd stop
Shutting down zabbix_agentd: [ OK ]
zabbix设置微信报警的配置过程的更多相关文章
- Zabbbix之十二------Zabbix实现微信报警通知及创建聚合图形
实战一:实现zabbix监控微信报警 1.在企业微信上注册账号 1.注册企业微信,管理员需要写上自己的真实姓名,扫描以下的二维码,与微信关联真实姓名. 2.登陆企业微信,然后创建一个微信故障通知应用 ...
- 【Zabbix】zabbix设置邮件报警
目录 Zabbix设置邮件报警 1.安装sendmail或postfix 2.安装邮件发送工具mailx . 3.配置mail 4. 测试邮件发送 5.编写邮件发送脚本sendmail.sh 6.设置 ...
- ZABBIX Proxy容器启动的配置过程
ZABBIX Proxy容器启动的配置过程 环境介绍 版本 zabbix6 zabbix server 与 zabbix proxy 非同一台主机,zabbix proxy为主动方式提交给server ...
- 配置zabbix通过微信报警企业微信报警
如今势态: 报警的方式可谓是八仙过海各显神通,如电话报警,短信报警,邮件报警,QQ报警,微信报警等等. 电话报警:一般都是使用别的平台的工具,平台给你提供一个接口供你使用,大多数为限量收费款 短信报警 ...
- CentOS 7 zabbix实现微信报警
环境 : LAMP CentOS7 192.168.94.11 首先搭建LAMP环境 , 安装zabbix [root@zabbix-server ~]# wget http://repo.zab ...
- zabbix使用微信报警(四)
https://qy.weixin.qq.com/ 企业号注册 http://qydev.weixin.qq.com/wiki/index.php?title=%E9%A6%96%E9%A1%B5 ...
- zabbix利用微信报警
一.背景介绍 报警的方式有很多种,比如常用的邮件报警,短信,微信等.那这篇文章主要是实现微信报警. 值得注意的是,之前使用微信企业公众号,现在微信企业公众号更新成企业微信了.所以直接注册企业微信,进入 ...
- Zabbix设置邮件报警
邮件报警 概述当监控项收集了数据后,触发器会根据异常状态触发报警.根据一些报警机制,它也会通知我们一些重要的事件,而不需要我们直接在Zabbix前端进行查看.这就是通知(Notifications)的 ...
- 部署zabbix,自动发现lnmp环境,监控主机状态,实现 邮件及微信报警(配置server端)
二.配置server端监控 1.监控apache 首先在本机下载模板:https://github.com/rdvn/zabbix-templates/archive/master.zip 该 zi ...
随机推荐
- Oracle 数据库 简单查询
select DISTINCT dept_id from s_emp; desc s_emp; ; --给入职3年以上员工发10万元年终奖 ; --列出职位是仓库管理员的名字和工资 select la ...
- [Spark SQL_3] Spark SQL 高级操作
0. 说明 DataSet 介绍 && Spark SQL 访问 JSON 文件 && Spark SQL 访问 Parquet 文件 && Spark ...
- Python3编写网络爬虫02-基本请求库requests的使用
一.requests 库使用 需要安装 pip install requests import requests #导入requests库 request = requests.get("h ...
- python爬虫(三)
webdriver Selenium是ThroughtWorks公司开发的一套Web自动化测试工具.它分为三个组件:Selenium IDE,Selenium RC (Remote Control), ...
- 死磕nginx系列--使用nginx做负载均衡
使用nginx做负载均衡的两大模块: upstream 定义负载节点池. location 模块 进行URL匹配. proxy模块 发送请求给upstream定义的节点池. upstream模块解读 ...
- [SDOI2008]洞穴勘测
嘟嘟嘟 写完lct的板儿后觉得这就是一道大水题. 连pushup都不用. 不过还是因为一个zz的错误debug了一小会儿(Link的时候连出自环--) 还有一件事就是Cut的时候判断条件还得加上,因为 ...
- Zookeeper入门(三)之工作流
一旦ZooKeeper集合启动,它将等待客户端连接.客户端将连接到ZooKeeper集合中的一个节点.它可以是leader或follower节点.一旦客户端被连接,节点将向特定客户端分配会话ID并向该 ...
- Android4.4 ContentResolver查询图片无效 及 图库删除 增加图片后,ContentResolver不更新的问题解决
问题背景: 参考链接 做了一个图片浏览,用ContentResolver扫描图库照片,且严格按照时间拍摄顺序排好序显示在listview里.如下图所示: 遇到的问题是在4.2的手机上能正常显示,但是新 ...
- Python2.7-logging模块
logging模块,用于记录程序的运行情况,可将需要的信息打印到控制台或是日志文件中 1.Logger对象 Logger对象从来不会被直接使用,都是通过logging.getLogger(name)这 ...
- P1550 [USACO08OCT]打井Watering Hole
题目描述 Farmer John has decided to bring water to his N (1 <= N <= 300) pastures which are conven ...