Zabbix实现微信报警
一、 申请企业微信账号,申请地址 https://qy.weixin.qq.com/
二、 登陆企业微信账
图一
图二
2、添加微信账号
图一
图二
完成以上步骤后 就完成了微信账号的添加
三、新建应用
图一
图二
图三
图四
以上四幅图完成后就应用创建完成
四、设置权限管理
图一
图二
图三
完成以上三幅图的操作,权限管理设置完成;到此微信设置已经完成!
五、Zabbix Server配置
图一
图二
图三
完成以上三幅图中的配置,则zabbix server的配置已经完成。
七、weixin.py程序内容
- 1 #!/usr/bin/env python
- 2 # encoding: utf-8
- 3 # Create time 2016-10-08
- 4 #Auth chenpeng
- 5 import urllib2
- 6 import json
- 7 import sys
- 8 import time
- 9
- 10 class WebChat(object):
- 11 def __init__(self,CropID,Secret):
- 12 self.CropID = CropID
- 13 self.Secret = Secret
- 14 def Get_Token(self,info):
- 15 '''
- 16 :param info: 存储执行结果和执行程序状态码code (0代表执行成功,非零表示不成功)
- 17 :return:
- 18 '''
- 19 self.info = info
- 20 gurl = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=%s&corpsecret=%s" % (self.CropID,self.Secret)
- 21 try:
- 22 #通过Get方式获取token
- 23 req = urllib2.Request(gurl)
- 24 response = urllib2.urlopen(req)
- 25 g_result = json.loads(response.read(),"UTF-8")
- 26
- 27 if g_result .has_key('access_token'):
- 28 self.info['result']= g_result ['access_token']
- 29 self.info['code'] = 0
- 30 else:
- 31 self.info['result'] = g_result
- 32 self.info['code'] = 1
- 33 except Exception,e:
- 34 self.info['code'] = 1
- 35 self.info['result'] = e
- 36
- 37
- 38 def Send_Msg(self,touser,toparty,agentid,access_token,content,info,*args,**kwargs):
- 39 '''
- 40 发送信息到微信
- 41 :param touser: 部门成员id,zabbix中定义的微信接收者,
- 42 成员ID列表(消息接收者,多个接收者用‘|’分隔,最多支持1000个)。
- 43 特殊情况:指定为@all,则向关注该企业应用的全部成员发送
- 44 :param toparty: 部门id,定义了范围,组内成员都可接收到消息,
- 45 部门ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数
- 46 :param agentid: 企业应用的id,整型。可在应用的设置页面查看
- 47 :param access_token: 根据CropID,Secret获取的访问token值
- 48 :param content: 滤出zabbix传递的第三个参数,
- 49 表示发送微信消息的内容消息内容,最长不超过2048个字节,
- 50 注意:主页型应用推送的文本消息在微信端最多只显示20个字(包含中英文)
- 51 :param info: 返回执行结果信息{'result':None,'code':None};'code':0或者非零 ;0表示成功 非零表示失败
- 52 :param args:
- 53 :param kwargs:
- 54 :return:
- 55 '''
- 56 self.touser = touser
- 57 self.toparty = toparty
- 58 self.agentid = agentid
- 59 self.conntent = content
- 60 self.access_token = access_token
- 61 self.info = info
- 62 purl = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % (access_token)
- 63 data = {
- 64 "touser": "",
- 65 "toparty": "",
- 66 "totag": "", #标签ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数,非必须
- 67 "msgtype": "text", #必须
- 68 "agentid": "", #必须
- 69 "text": {
- 70 "content": "" #必须
- 71 },
- 72 "safe": "0" # 表示是否是保密消息,0表示否,1表示是,默认0
- 73 }
- 74 data['touser'] = self.touser
- 75 data['agentid'] = self.agentid
- 76 data['toparty'] = self.toparty
- 77 data['text']['content']=self.conntent
- 78 data = json.dumps(data,ensure_ascii=False)
- 79 try:
- 80 #通过PUT方式获取发送数据
- 81 req = urllib2.Request(purl, data)
- 82 response = urllib2.urlopen(req)
- 83 res = json.loads(response.read())
- 84 self.info['code'] = res['errcode']
- 85 self.info['result'] = res['errmsg']
- 86
- 87 except Exception,e:
- 88 self.info['result'] = e
- 89 self.info['code'] = 1
- 90
- 91 if __name__ == '__main__':
- 92 reload(sys)
- 93 sys.setdefaultencoding('utf-8')
- 94 def log(date, touser, content,info):
- 95 '''
- 96 发送的日志打印日志
- 97 :param date: 时间
- 98 :param touser: 发送给谁
- 99 :param content: 发送的信息内容
- 100 :param info: 发送执行的结果
- 101 :return:
- 102 '''
- 103 msg = '%s %s %s 发送结果 - %s\n' % (date, touser, content, info)
- 104 with open('msg.log', 'a') as f:
- 105 f.write(msg)
- 106
- 107 agentid = sys.argv[1]
- 108 #agentid = 1
- 109 touser = 'xxxxxxx@qq.com'
- 110 toparty = ''
- 111 content = sys.argv[2:]
- 112 content = '\n'.join(content)
- 113 #content = '测试'
- 114 CropID = 'xxxxxxxxxxxxxxxxxxx'
- 115 Secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
- 116 info={'result':None,'code':None}
- 117 date = time.strftime('%Y-%m-%d %H:%M:%S')
- 118 res=WebChat(CropID,Secret)
- 119 res.Get_Token(info)
- 120 if info['code'] == 0:
- 121 access_token = info['result']
- 122 res.Send_Msg(touser=touser, toparty=toparty, agentid=agentid, access_token=access_token,
- 123 content=content,info=info)
- 124 if info['code'] == 0:
- 125 content = eval(content)
- 126 log(date, touser, content,info)
- 127 else:
- 128 log(date, touser, content, info)
- 129 else:
- 130 log(date,touser,content,info)
其中代码114、115行中的CropID 和 Secret对应的是第四步《设置权限管理》中图三对应的CropID 和 Secret
代码63行中的data数据,请参考微信接口文档
地址:http://qydev.weixin.qq.com/wiki/index.php?title=%E5%8F%91%E9%80%81%E6%8E%A5%E5%8F%A3%E8%AF%B4%E6%98%8E
Zabbix实现微信报警的更多相关文章
- zabbix设置微信报警的配置过程
zabbix设置微信报警的配置过程 转发:https://blog.csdn.net/qq_31613055/article/details/78831607 微信企业号的申请 注册的地址https: ...
- Zabbbix之十二------Zabbix实现微信报警通知及创建聚合图形
实战一:实现zabbix监控微信报警 1.在企业微信上注册账号 1.注册企业微信,管理员需要写上自己的真实姓名,扫描以下的二维码,与微信关联真实姓名. 2.登陆企业微信,然后创建一个微信故障通知应用 ...
- zabbix配置微信报警
首先我们先目睹下微信报警的效果 接下来我们正式开始操作. 一:注册企业微信. 打开企业微信注册:http://work.weixin.qq.com 根据以上提示填入相应的内容,然后注册即可. 二:登录 ...
- 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通过微信报警企业微信报警
如今势态: 报警的方式可谓是八仙过海各显神通,如电话报警,短信报警,邮件报警,QQ报警,微信报警等等. 电话报警:一般都是使用别的平台的工具,平台给你提供一个接口供你使用,大多数为限量收费款 短信报警 ...
- Zabbix配置微信报警通知
Zabbix告警可以通过邮件,微信,电话,短信等方式发送告警消息. 电话和短信需要向运营商购买相应的网关,需要付费: 邮件和微信是免费的,可以根据业务需要选择相应的告警模式 Zabbix版本:3.2 ...
- zabbix利用微信报警
一.背景介绍 报警的方式有很多种,比如常用的邮件报警,短信,微信等.那这篇文章主要是实现微信报警. 值得注意的是,之前使用微信企业公众号,现在微信企业公众号更新成企业微信了.所以直接注册企业微信,进入 ...
- zabbix企业微信报警实现
企业微信配置 # 注册 企业微信注册地址:https://work.weixin.qq.com 笔者注册的企业微信名称为 5iik # 配置 # 在主干5iik(企业名称)下添加子部门(监控组),并将 ...
- zabbix之微信报警
#:先在企业微信注册一个企业微信号 #:注册好之后,进入微信 #:测试一下 #:获取access_token #:开始获取 #:获取 #:在server端安装pip root@ubuntu:~# ap ...
随机推荐
- iOS中的单例
#import "Singleton.h" @implementation Singleton static Singleton *singleton = nil; + (Sing ...
- iOS之 清理缓存
作为一个开发者,对于缓存的清理也是理所应当的需要的.这次就简单的谈一下iOS中对于缓存的清理方法. 我们清理缓存通常是在这三种方式下进行的: (1)项目中的清理缓存按钮 (2)点击退出app按钮时清理 ...
- json序列化及反序列化
/// <summary> /// 把对象序列化 JSON 字符串 /// </summary> /// <typeparam name="T"> ...
- 前端工具 & git笔记
git diff (working dir to INDEX ) git diff --cached (INDEX to HEAD) git diff HEAD (working dir t ...
- [软件推荐、资料分享]MATLAB
MATLAB是美国MathWorks公司出品的商业数学软件,用于算法开发.数据可视化.数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分. Matlab ...
- 利用Photoshop修改图片以达到投稿要求
摘自:http://www.dxy.cn/bbs/thread/8602152#8602152 利用Photoshop修改图片以达到投稿要求 软件版本为Photoshop CS V8.0.1(中文版) ...
- js禁用右键菜单、选中、复制、剪切、粘贴
//屏蔽右键菜单 document.oncontextmenu = function (event) { if (window.event) { event = window.event; } try ...
- Angular 单元格合并
在Angular实现表格输出的话,使用ng-repeat输出信息, 使用了: ng-repeat-start ng-repeat-end ng-hide="$first" < ...
- Docker 创建php 开发环境遇到的权限问题解决方案
最近我将公司的开发,和测试环境都运行到docker 上面,因为开发,测试基本都是装代码拉到本址,然后,再装目录,挂载到镜像目录中如:我用的是docker-compose # development.y ...
- 关于英语PETS5备考的一些事
首先,自我介绍一下,我叫万世想,目前国内某985高校CS硕士在读,在现代软件工程课上,接触到了博客园,之前是自己在新浪云上用WP简单搭了自己的博客,但是都没有坚持下来.希望自己能够在博客园大家庭中,与 ...