zoukankan      html  css  js  c++  java
  • Zabbix实战-简易教程--通过公众平台企业号发送短信

    一、注册企业号【体验号】 

    打开页面 http://qydev.weixin.qq.com/try?t=experience   (2016年注册的时候的连接)现在可能变了。进行注册操作,默认有90天的期限。

    填写相关资料后你会收到一封邮件,进行体验账号激活,如下图:

    注意,这里激活需要绑定在你的微信号上进行激活,激活后会有如下显示:

    扫描完成后,进入登陆界面,这里的登陆信息就是你刚刚注册用的邮箱和密码,登入:

    二、配置企业号 

    进入企业号后,需要进行相关配置:

    A、导入用户

    选择通讯录,进入我的企业,添加子部门,我这里添加运维平台部。

    添加部门后,进行成员添加,也就是后续会受到微信的成员了。

    新增成员信息填写:

    这里关机是身份验证信息部分,一定要准确。

    B、邀请关注

    填写成员后,需要进行要求关注,微信受到邀请链接后,即进行关注。

    D、设定管理员

    指定应用的管理员。点击设置-> 权限管理 -> 管理 -> 新建管理组 --> 添加管理员和权限。

    三、API测试 

    有了前面的corpID和Sectet后,可以根据官方文档进行API测试。

    A.文档阅读链接

    http://qydev.weixin.qq.com/wiki/index.php?title=%E9%A6%96%E9%A1%B5

    我只读了建立连接、管理通讯录、发送消息。

    B、建立连接获取access_token。

    这个token是一个有有效时间的密钥用于后续操作认证。

    Https请求方式: GET

    https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=id&corpsecret=secrect

    正常情况下就会反馈一个json并得到access_token

    C、API测试

    可以进行很多测试,不过这里需要用到上面提到的corpID和Secret。

    我这里只要发送报警短信,而且是文本格式的,所以就只需要进行发送消息测试就OK了。

    然后就坐等微信受到消息吧。

    四、编写脚本结合API进行告警测试 

    编写报警脚本,和之前通过短信网关类似,
    #!/usr/local/bin/python
    #fileencoding:utf-8
    import sys
    import urllib2
    import time
    import json
    import requests
    
    reload(sys)
    sys.setdefaultencoding('utf-8')
    
    title = sys.argv[2]   # 位置参数获取title 适用于zabbix
    content = sys.argv[3] # 位置参数获取content 适用于zabbix
    
    
    class Token(object):
        # 获取token
        def __init__(self, corpid, corpsecret):
            self.baseurl = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid={0}&corpsecret={1}'.format(
                corpid, corpsecret)
            self.expire_time = sys.maxint
    
        def get_token(self):
            if self.expire_time > time.time():
                request = urllib2.Request(self.baseurl)
                response = urllib2.urlopen(request)
                ret = response.read().strip()
                ret = json.loads(ret)
                if 'errcode' in ret.keys():
                    print >> ret['errmsg'], sys.stderr
                    sys.exit(1)
                self.expire_time = time.time() + ret['expires_in']
                self.access_token = ret['access_token']
            return self.access_token
    
    
    def send_msg(title, content):
        # 发送消息
        corpid = "88888888888888"  # 填写自己应用的
        corpsecret = "88888888888888888888888" # 填写自己应用的
        qs_token = Token(corpid=corpid, corpsecret=corpsecret).get_token()
        url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token={0}".format(
            qs_token)
        payload = {
            "touser": "@all",
            "msgtype": "text",
            "agentid": "4",
            "text": {
                       "content": "{0}
     {1}".format(title, content)
    
            },
            "safe": "0"
        }
        ret = requests.post(url, data=json.dumps(payload, ensure_ascii=False))
        print ret.json()
    
    if __name__ == '__main__':
        # print title, content
      send_msg(title, content)

    脚本命名为wexin_sendms.py,存放位置为zabbix报警目录,我这里为

    /usr/lib/zabbix/alertscripts,具体设置在zabbix_server里进行设置。然后在zabbix的web界面进行配置。

    测试微信报警接收,我这里停掉了线上一台puppetmaster的agnet服务,会报出一个5分钟不可达报警。

     

    至此,微信告警测试完毕。

    五、参考文献和文件索引 

    a、微信告警脚本位于github:

    https://github.com/loveqx/zabbix-doc/blob/master/zabbix-scripts/zabbix-install/weixin_sendms.py

    b、参考文章

  • 相关阅读:
    [GIT] warning: LF will be replaced by CRLF问题解决方法
    最近想学的工具
    如何在webstrom中配置eslint和less
    Git常用命令
    windows下nginx安装、配置与使用
    关于 addEventListener 和 handleEvent 方法
    PHP中的魔术方法总结 :__construct, __destruct , __call, __callStatic,__get, __set, __isset, __unset , __sleep, __wakeup, __toStr
    Git使用详细教程
    9个永恒的UI设计原则
    常见浏览器兼容性问题与解决方案
  • 原文地址:https://www.cnblogs.com/skyflask/p/7507938.html
Copyright © 2011-2022 走看看