码迷,mamicode.com
首页 > 微信 > 详细

通过微信企业号发送zabbix报警

时间:2016-07-15 09:32:11      阅读:389      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

 

采用微信报警时,管理员账户中必须要设置"示警媒体"一项,"收件人"一项可随便填写一下。其它成员则可以不用添加设置。

-------------------------------------------------------------------------------------------------------------------------------------

1. 首先要自己申请一个微信企业号(貌似一个人可以申请好几个,我测试的时候同样的信息申请了2个没问题)。团体模式的 三分钟就ok

微信企业号官网链接: https://qy.weixin.qq.com/

申请账号就不细说了,填下自己的信息然后用绑定了自己银行卡的微信扫一下..注意下面几个地方就ok: 
技术分享
技术分享

2.申请完毕后登陆进去(每次登陆都会要求微信扫码认证,很恶心,但是很安全) 
注意:主要上传logo..不然发消息的时候会返回报错…(应该算是bug了…) 
技术分享

这时候先把自己配置好 然后加关注. 
技术分享 
这里设置好邮箱..可以发送二维码到邮箱邀请关注.后期可能会比较有用 
技术分享

上面在通讯录里面加好自己以后,直接扫描设置里面的二维码.进行关注. 
技术分享

ok。。。关注完成了..那么下面需要创建一个管理组,生成Corpip和Secret (这里说明下,,,后面通过api进行调用时,会通过corpip和Secret生成认证token.以此作为凭证进行身份确认.默认过期时间为7200秒) 
技术分享

技术分享

然后权限管理里面加上自己,会发送邮件到对应邮箱,进行确认就ok

技术分享

页面配置都ok,然后根据官网文档的API接口进行测试..我这里就不演示了 具体可以去看官方API

http://qydev.weixin.qq.com/wiki/index.php?title=%E4%B8%BB%E5%8A%A8%E8%B0%83%E7%94%A8

技术分享

然后写了一个简单的Python 根据位置变量传入要发送的信息

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import urllib2
import simplejson as json
import sys
class weChat:
    def __init__(self,url,Corpid,Secret): 
        url = %s/cgi-bin/gettoken?corpid=%s&corpsecret=%s % (url,Corpid,Secret)
        res = self.url_req(url)
        self.token = res[access_token]

    def url_req(self,url,method=get,data={}):
        if method == get:
            req = urllib2.Request(url)
            res = json.loads(urllib2.urlopen(req).read())
        elif method == post:
                        req = urllib2.Request(url,data)
                        res = json.loads(urllib2.urlopen(req).read())
        else:
            print error request method...exit
            sys.exit()  
        return res
    def send_message(self,userlist,content,agentid=0):
        self.userlist = userlist
        self.content = content
        url = https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s % self.token
        data = {
                      "touser": "",
                      "toparty": "1",
                      "totag": "",
                      "msgtype": "text",
                      "agentid": "1",
                      "text": {
                          "content": ""
                      },
                      "safe":"0"
                   } 
        data[touser] = userlist   
        data[agentid] = agentid
        data[text][content] = content
        data = json.dumps(data,ensure_ascii=False)
    #   print data
        res = self.url_req(url,method=post,data=data)
        if res[errmsg] == ok:
            print send sucessed!!!
        else:
            print send failed!!
            print res




if __name__ == __main__:  
      userlist = sys.argv[1]
      content = sys.argv[2:]
      content = \n.join(content)
      Corpid = wx647eb76cd7038c3d
      Secret = DTmfHEEQw1bwLG5T1MMtABzrJe1Dhon54s4XvIS8H0rHpZ09L7E0bJg0nL8HFwMt
      url = https://qyapi.weixin.qq.com

      wechat = weChat(url,Corpid,Secret)
      wechat.send_message(userlist,content)

 

 

3.关联zabbix

  1. 将 sendwechat.py 脚本放到zabbix安装目录下的share/zabbix/alertscripts

 

 

 

  1. 添加警类型技术分享技术分享技术分享
  2. 添加联系人,这里的联系人,对应之前设置的userid 技术分享

最后进行测试.根据自己的情况进行调整.

 

参考资料:http://blog.csdn.net/u011744758/article/details/45363125

 

通过微信企业号发送zabbix报警

标签:

原文地址:http://www.cnblogs.com/wjoyxt/p/5672345.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!