Zabbix实现微信报警功能_python

一、 申请企业微信账号,申请地址 https://qy.weixin.qq.com/

二、 登陆企业微信账

图一

图二

2、添加微信账号

 图一

图二

完成以上步骤后 就完成了微信账号的添加

三、新建应用

图一

图二

图三

图四

以上四幅图完成后就应用创建完成

四、设置权限管理

图一

图二

图三

完成以上三幅图的操作,权限管理设置完成;到此微信设置已经完成!

五、Zabbix Server配置

图一

图二

图三

完成以上三幅图中的配置,则zabbix server的配置已经完成。

七、weixin.py程序内容

#!/usr/bin/env python
# encoding: utf-8
# Create time 2016-10-08
#Auth chenpeng
import urllib2
import json
import sys
import time
class WebChat(object):
def __init__(self,CropID,Secret):
self.CropID = CropID
self.Secret = Secret
def Get_Token(self,info):
'''
:param info: 存储执行结果和执行程序状态码code (0代表执行成功,非零表示不成功)
:return:
'''
self.info = info
gurl = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=%s&corpsecret=%s" % (self.CropID,self.Secret)
try:
#通过Get方式获取token
req = urllib2.Request(gurl)
response = urllib2.urlopen(req)
g_result = json.loads(response.read(),"UTF-8")
if g_result .has_key('access_token'):
self.info['result']= g_result ['access_token']
self.info['code'] = 0
else:
self.info['result'] = g_result
self.info['code'] = 1
except Exception,e:
self.info['code'] = 1
self.info['result'] = e
def Send_Msg(self,touser,toparty,agentid,access_token,content,info,*args,**kwargs):
'''
发送信息到微信
:param touser: 部门成员id,zabbix中定义的微信接收者,
成员ID列表(消息接收者,多个接收者用‘|'分隔,最多支持1000个)。
特殊情况:指定为@all,则向关注该企业应用的全部成员发送
:param toparty: 部门id,定义了范围,组内成员都可接收到消息,
部门ID列表,多个接收者用‘|'分隔,最多支持100个。当touser为@all时忽略本参数
:param agentid: 企业应用的id,整型。可在应用的设置页面查看
:param access_token: 根据CropID,Secret获取的访问token值
:param content: 滤出zabbix传递的第三个参数,
表示发送微信消息的内容消息内容,最长不超过2048个字节,
注意:主页型应用推送的文本消息在微信端最多只显示20个字(包含中英文)
:param info: 返回执行结果信息{'result':None,'code':None};'code':0或者非零 ;0表示成功 非零表示失败
:param args:
:param kwargs:
:return:
'''
self.touser = touser
self.toparty = toparty
self.agentid = agentid
self.conntent = content
self.access_token = access_token
self.info = info
purl = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % (access_token)
data = {
"touser": "",
"toparty": "",
"totag": "", #标签ID列表,多个接收者用‘|'分隔,最多支持100个。当touser为@all时忽略本参数,非必须
"msgtype": "text", #必须
"agentid": "", #必须
"text": {
"content": "" #必须
},
"safe": "0" # 表示是否是保密消息,0表示否,1表示是,默认0
}
data['touser'] = self.touser
data['agentid'] = self.agentid
data['toparty'] = self.toparty
data['text']['content']=self.conntent
data = json.dumps(data,ensure_ascii=False)
try:
#通过PUT方式获取发送数据
req = urllib2.Request(purl, data)
response = urllib2.urlopen(req)
res = json.loads(response.read())
self.info['code'] = res['errcode']
self.info['result'] = res['errmsg']
except Exception,e:
self.info['result'] = e
self.info['code'] = 1
if __name__ == '__main__':
reload(sys)
sys.setdefaultencoding('utf-8')
def log(date, touser, content,info):
'''
发送的日志打印日志
:param date: 时间
:param touser: 发送给谁
:param content: 发送的信息内容
:param info: 发送执行的结果
:return:
'''
msg = '%s %s %s 发送结果 - %s\n' % (date, touser, content, info)
with open('msg.log', 'a') as f:
f.write(msg)
agentid = sys.argv[1]
#agentid = 1
touser = 'xxxxxxx@qq.com'
toparty = ''
content = sys.argv[2:]
content = '\n'.join(content)
#content = '测试'
CropID = 'xxxxxxxxxxxxxxxxxxx'
Secret = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
info={'result':None,'code':None}
date = time.strftime('%Y-%m-%d %H:%M:%S')
res=WebChat(CropID,Secret)
res.Get_Token(info)
if info['code'] == 0:
access_token = info['result']
res.Send_Msg(touser=touser, toparty=toparty, agentid=agentid, access_token=access_token,
content=content,info=info)
if info['code'] == 0:
content = eval(content)
log(date, touser, content,info)
else:
log(date, touser, content, info)
else:
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微信报警
python实现ping功能、python 微信报警、python实现小功能、python实现cmd功能、python实现爬虫功能,以便于您获取更多的相关知识。

时间: 2024-09-15 21:51:52

Zabbix实现微信报警功能_python的相关文章

python3简单实现微信爬虫_python

使用ghost.py 通过搜搜 的微信搜索来爬取微信公共账号的信息 # -*- coding: utf-8 -*- import sys reload(sys) import datetime import time sys.setdefaultencoding("utf-8") from ghost import Ghost ghost = Ghost(wait_timeout=20) url="http://weixin.sogou.com/gzh?openid=oIWs

zabbix报警问题-求助,关于zabbix微信报警问题

问题描述 求助,关于zabbix微信报警问题 哪位大神帮看这是啥原因,新手好无奈 stdClass Object ( [base_resp] => stdClass Object ( [ret] => -1 [err_msg] => system error ) ) 解决方案 zabbix如何实现微信报警zabbix实现微信报警zabbix微信报警脚本

微信报警 zabbix实现详解_其它综合

现实生产环境中,我们通常使用邮件和短信接受zabbix报警信息,但是邮件经常被工作人员搁置在角落中甚至被设置为垃圾邮件被过滤掉.公司的短信接口又太贵,复杂环境中使用短息报警会使运维成本增加很多.微信提供了很好的第三方接口,我们可以利用微信报警以求降低运维成本.        微信的第三方接口要求我们先申请一个企业号--传送门:https://qy.weixin.qq.com/ 如何操作企业号?     1.通讯录添加企业成员            我们要提前把成员信息添加进组织部门,必填项+手机

Zabbix-3.0.3实现微信(WeChat)告警

Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越多的企业开始使用zabbix结合微信作为主要的告警方式,这样可以及时有效的把告警信息推送到接收人,方便告警的及时处理. 1.微信企业号注册与使用 企业号注册:https://qy.weixin.qq.com/ 2.企业号使用教程 2.1.通讯录添加企业员工 登录新建的企业号,通过提前把企业成员信息添加到组织或者部门,需要填写手机号.微信号或邮箱,通过这样方式让别人扫码关注企业公众号,为了后面企业号推送消息给

微信公众平台接口报警功能 响应出问题随时发现

这段时间网络攻击还是很频繁,ddos会导致你的服务器宕机,连接微信公众平台的服务器和接口响应出现问题那就不足为奇了,如何第一时间发现问题呢?微信团队为你想到了,发布公众平台更新,为开发者提供接口报警功能.以下是官方公告 公众平台更新,为开发者提供接口报警功能 为了帮助开发者在自身服务器和接口响应出现问题时,尽快发现问题,公众平台推出了接口报警功能. 接口报警在登录公众平台后的开发者中心内设置,通过微信来接收报警. 微信团队 2014年07月18日  

利用Python开发微信支付的注意事项_python

前言 微信支付是由微信及财付通联合推出的移动支付创新产品.如今,随着微信支付的全面开放,相关需求也越来越多,很多开发人员进行微信支付开发及商家申请微信支付时,面临着诸多疑惑. 要想开发顺利进行,首先要对业务流程有个清晰的认识.这里以微信公众号支付为例,因此也借用微信支付官方文档中的业务流程图: 接下来来关注几个开发过程中的关键点,包括:       1.生成商户订单与调用统一下单 API       2.微信服务器交互的数据格式       3.公众号支付下网页内通过 JS-API 调起支付  

Python实现微信公众平台自定义菜单实例_python

首先先获取access_token,并保存与全局之中 def token(requset): url = 'https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=%s&secret=%s' % ( Config.AppID, Config.AppSecret) result = urllib2.urlopen(url).read() Config.access_token = json.load

微信 用脚本查看是否被微信好友删除_python

某日,一同学给小的发了 Github 源码,说是可以轻松查到删除自己的微信好友,于是就开始了作死之路. Github 源码请看:0x5e/wechat-deleted-friends 前言 相信各位一定有收到过这样的群发短信,据说还被归类为玩转微信的五大技巧之一╮(╯▽╰)╭但,其实,只要跑一下脚本,就轻松找出删除自己的好友(轻松摔碎玻璃心,逃 GitHub:开源怪我咯? 原理 新建群组,如果加不进来就是被删好友了(不要在群组里讲话,别人是看不见的). 用的是微信网页版的接口,还有些小问题,不过

在Python的Bottle框架中使用微信API的示例_python

微信这个东西估计宅男没几个不熟悉的吧,微信经过这么两年多的发展终于向开放平台跨出了友好的一步.蛋疼的以为微信会出一个详细的api等接口,兴奋不已的去申请了微信公共平台,然后开始找各种api的位置-- 花费了近一个小时,依然没找到-- 最后动用Google大杀器,终于找到了这么个链接.我了个去的,没比这还简单的api文档了吧. 最让人无法理解的是:居然没有本地开发环境支持,每次都要放在生产环境去调试. 最让人欣慰的是:就那么俩方法,生产环境调试几次也就完事了. Python(bottle)版代码如