您的位置:首页 > 移动开发 > 微信开发

zabbix微信报警

2016-08-17 18:09 375 查看
zabbix设置报警的方式可以有很多种,比如结合微信的企业号利用脚本报警,email实现报警,下面简单的介绍下微信企业号报警的方式。
1、首先注册账号,微信企业号官网链接: https://qy.weixin.qq.com/
 


2、选择属性
          

                                                                          

3、注册之后进行登陆
 


企业logo必须上传否则会出现错误,企业的相关的信心自己按照自己的情况进行填写。
4、进行联系人的添加
 


 
将上述内容进行填写,注意上面的账号就是一会在zabbix里面需要填写的接收人的账号,之后保存。
5、进行组的添加
 




6、添加好了组之后将刚刚创建的用户添加到组中去。
 




添加好了之后点解确定。添加好以后会生成一个相应的id和密码,如此图上面的底部位置所示(CorpID:****** Secret:******),此值会在发送信息的脚本中调用。之后就可以利用微信扫描企业号的二维码进行加关注。

7、创建新的应用
选择消息型,之后保存就好。
 


8、查看刚刚创建应用的ID
 


9、查看创建的组的管理id。
 


10、查看之后可以进行zabbix端的设置了。
 




多余的设置不在提供,如果不清楚报警设置,参考zabbix安装报警设置的博客。
11、weixin.py脚本提供
#!/usr/bin/env python
#coding: utf-8
import time
import urllib,urllib2
import json
import sys
'''
1 空
2 空
3 内容
'''
"""
touser否成员ID列表(消息接收者,多个接收者用‘|’分隔,最多支持1000个)。特殊情况:指定为@all,则向关注该企业应用的全部成员发送
toparty否部门ID列表,多个接收者用‘|’分隔,最多支持100个。当touser为@all时忽略本参数
totag否标签ID列表,多个接收者用‘|’分隔。当touser为@all时忽略本参数
msgtype是消息类型,此时固定为:text
agentid是企业应用的id,整型。可在应用的设置页面查看
content是消息内容
safe否表示是否是保密消息,0表示否,1表示是,默认0
"""
# baseurl = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken'
# securl = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s' % access_token
class WeChatMSG(object):
    def __init__(self,content):
        self.gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken'     
        self.gettoken_content = {
                            'corpid' : '*****',
                            'corpsecret' : '*********' ,         
                            }
        self.main_content = {
                            "toparty":"1",    ------->应用ID号码
                            "agentid":"1",    ------->所属部门ID号码
                            "msgtype": "text",
                            "text":{
                            "content":content,
                                    }
                            }
                           
    def get_access_token(self,string):
        token_result = json.loads(string.read())
        access_token=  token_result['access_token']
        return access_token.encode('utf-8')
    def geturl(self,url,data):
        data = self.encodeurl(data)
        response = urllib2.urlopen('%s?%s' % (url,data))
        return response.read().decode('utf-8')
         
    def posturl(self,url,data,isjson = True):
        if isjson:
            data = json.dumps(data)
        response = urllib2.urlopen(url,data)
        return response.read().decode('utf-8')
    def encodeurl(self,dict):
        data = ''
        for k,v in dict.items():
            data += '%s=%s%s' % (k,v,'&')
        return data
if __name__ == '__main__':
    if len(sys.argv) == 4:
        touser,notuse,content = sys.argv[1:]        
    else:
        print 'error segments, now exit'
        sys.exit()
    msgsender = WeChatMSG(content)
    access_token_response = msgsender.geturl(msgsender.gettoken_url, msgsender.gettoken_content)
    access_token =  json.loads(access_token_response)['access_token']
    sendmsg_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s' % access_token  
print msgsender.posturl(sendmsg_url,msgsender.main_content)
 
 
之后可以进行测试调整了。
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: