zoukankan      html  css  js  c++  java
  • zabbix docker-weixin

    安装组件 requests
    方法一(docker中无pip)
    pip install requests
    pip install --upgrade requests
    方法二
    wget https://pypi.python.org/packages/c3/38/d95ddb6cc8558930600be088e174a2152261a1e0708a18bf91b5b8c90b22/requests-2.18.3.tar.gz
    tar zxvf requests-2.18.3.tar.gz
    cd requests-2.18.3
    (docker中setup)
    python setup.py build
    python setup.py install
    下载脚本
    (宿主机git:yum install git)
    git clone https://github.com/X-Mars/Zabbix-Alert-WeChat.git
    chmod +x wechat.py
    测试脚本
    ./wechat.py www web 123
    {u'invaliduser': u'', u'errcode': 0, u'errmsg': u'ok'}
    
    报警动作
    HOST:{HOSTNAME1} 
    Time:{EVENT.DATE} {EVENT.TIME}
    Severity:{TRIGGER.SEVERITY}
    Name:{TRIGGER.NAME}
    Description:{ITEM.NAME} {ITEM.VALUE}
    Status:{TRIGGER.STATUS} {ITEM.VALUE1}
    
    微信脚本
    #!/usr/bin/python2.7
    #_*_coding:utf-8 _*_
    #auther:火星小刘
    
    import requests,sys,json
    import urllib3
    urllib3.disable_warnings()
    
    reload(sys)
    sys.setdefaultencoding('utf-8')
    
    def GetTokenFromServer(Corpid,Secret):
        Url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken"
        Data = {
            "corpid":Corpid,
            "corpsecret":Secret
        }
        r = requests.get(url=Url,params=Data,verify=False)
        print(r.json())
        if r.json()['errcode'] != 0:
            return False
        else:
            Token = r.json()['access_token']
            file = open('/tmp/zabbix_wechat_config.json', 'w')
            file.write(r.text)
            file.close()
            return Token
    
    def SendMessage(User,Agentid,Subject,Content):
        try:
            file = open('/tmp/zabbix_wechat_config.json', 'r')
            Token = json.load(file)['access_token']
            file.close()
        except:
            Token = GetTokenFromServer(Corpid, Secret)
    
        n = 0
        Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
        Data = {
            "touser": "???",            # 企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送。
            #"totag": Tagid,               # 企业号中的标签id,群发使用(推荐)
            "toparty": 2,                  # 企业号中的部门id,群发时使用。
            "msgtype": "text",             # 消息类型。
            "agentid": 1000002,            # 企业号中的应用id。
            "text": {
                "content": Subject + '
    ' + Content
            },
            "safe": "0"
        }
        r = requests.post(url=Url,data=json.dumps(Data),verify=False)
        while r.json()['errcode'] != 0 and n < 4:
            n+=1
            Token = GetTokenFromServer(Corpid, Secret)
            if Token:
                Url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=%s" % Token
                r = requests.post(url=Url,data=json.dumps(Data),verify=False)
                print(r.json())
    
        return r.json()
    
    
    if __name__ == '__main__':
        User = sys.argv[1]                                                                # zabbix传过来的第一个参数
        Subject = str(sys.argv[2])                                                             # zabbix传过来的第二个参数
        Content = str(sys.argv[3])                                                             # zabbix传过来的第三个参数
    
        Corpid = "???"                                                       # CorpID是企业号的标识
        Secret = "???"                              # Secret是管理组凭证密钥
        #Tagid = "1"                                                                        # 通讯录标签ID
        Agentid = "1000002"                                                                 # 应用ID
        Partyid = "2"                                                                      # 部门ID
    
        Status = SendMessage(User,Agentid,Subject,Content)
        print Status
    
  • 相关阅读:
    模块cv2的用法
    调整弹出对话框在ASP.NET应用程序的大小
    xaf 自定义登陆页
    xaf 修改主页logo
    显示一个列表视图图表
    双击直接编辑状态
    xaf 富文本框添加方法
    用户 'NT AUTHORITYIUSR' 登录失败
    C# 中的INotifyPropertyChanged
    线程间操作无效: 从不是创建控件“txtreceive”的线程访问它。
  • 原文地址:https://www.cnblogs.com/kylingx/p/12163538.html
Copyright © 2011-2022 走看看