zoukankan      html  css  js  c++  java
  • zabbix 微信报警

    一、注册企业微信号

              略

    需要得到的信息

    成员账号      在企业群组里的个人账号
    组织部门ID    2

    应用ID=
    corpsecret=


    corpid = 在我的企业 ,企业信息中得到


    二、配置zabbix 

    [root@2323~]# grep alertscripts /etc/zabbix/zabbix_server.conf
    AlertScriptsPath=/usr/lib/zabbix/alertscripts //我们设置zabbix默认脚本路径,这样在web端就可以获取到脚本

    #安装simplejson
    wget https://pypi.python.org/packages/f0/07/26b519e6ebb03c2a74989f7571e6ae6b82e9d7d81b8de6fcdbfc643c7b58/simplejson-3.8.2.tar.gz
    tar zxvf simplejson-3.8.2.tar.gz && cd simplejson-3.8.2
    python setup.py build
    python setup.py install

    cd
    /usr/lib/zabbix/alertscripts
     vim  wechat.py    
     1 [root@abcdocker ~]# cat /usr/lib/zabbix/alertscripts/wechat.py 
     2 #!/usr/bin/python
     3 #_*_coding:utf-8 _*_
     4 
     5 
     6 import urllib,urllib2
     7 import json
     8 import sys
     9 import simplejson
    10 
    11 reload(sys)
    12 sys.setdefaultencoding('utf-8')
    13 
    14 
    15 def gettoken(corpid,corpsecret):
    16     gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret
    17     print  gettoken_url
    18     try:
    19         token_file = urllib2.urlopen(gettoken_url)
    20     except urllib2.HTTPError as e:
    21         print e.code
    22         print e.read().decode("utf8")
    23         sys.exit()
    24     token_data = token_file.read().decode('utf-8')
    25     token_json = json.loads(token_data)
    26     token_json.keys()
    27     token = token_json['access_token']
    28     return token
    29 
    30 
    31 
    32 def senddata(access_token,user,subject,content):
    33 
    34     send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token
    35     send_values = {
    36         "touser":“user”,    #企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送。
    37         "toparty":"2",    #企业号中的部门id。
    38         "msgtype":"text", #消息类型。
    39         "agentid":"1000002",    #企业号中的应用id。
    40         "text":{
    41             "content":subject + '
    ' + content
    42            },
    43         "safe":"0"
    44         }
    45 #    send_data = json.dumps(send_values, ensure_ascii=False)
    46     send_data = simplejson.dumps(send_values, ensure_ascii=False).encode('utf-8')
    47     send_request = urllib2.Request(send_url, send_data)
    48     response = json.loads(urllib2.urlopen(send_request).read())
    49     print str(response)
    50 
    51 
    52 if __name__ == '__main__':
    53     user = str(sys.argv[1])     #zabbix传过来的第一个参数
    54     subject = str(sys.argv[2])  #zabbix传过来的第二个参数
    55     content = str(sys.argv[3])  #zabbix传过来的第三个参数
    56 
    57     corpid =  '11111111111111'   #CorpID是企业号的标识
    58     corpsecret = '222222222222222222'  #corpsecretSecret是管理组凭证密钥
    59     accesstoken = gettoken(corpid,corpsecret)
    60     senddata(accesstoken,user,subject,content)

     # chmod +x wechat.py && chown zabbix:zabbix wechat.py

    执行py脚本,进行测试

    [root@abcdocker alertscripts]# ./wechat.py www www 123
    https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=wx6dadb9cc293b793e&corpsecret=JjesoeixbFt6dDur7_eXtamVBx2SjPBuXMQ0Jte3YLkz8l-VBnr0JvU12P0kvpGJ
    {u'invaliduser': u'all user invalid', u'errcode': 0, u'errmsg': u'ok'}

    微信收到信息 ,,成功~

    三、配置zabbix  

    建立一个  报警媒介 关联到 wechat.py 脚本 (脚本中默认发给一个用户信息,可以配置多个脚本发给多个)


     wechat.py   必须存放在/usr/lib/zabbix/alertscripts/  下才能调用

    {ALERT.SENDTO}

    {ALERT.SUBJECT}

    {ALERT.MESSAGE}

    配置 触发报警机制以后的   动作  (邮件微信可以使用这一个动作,发送给 Admin)

     触发以上动作后,进行以下操作,将报警信息 发送给 指定 的 zabbix 系统账号 admin:

     

    故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

    告警主机:{HOSTNAME1}
    告警时间:{EVENT.DATE} {EVENT.TIME}
    告警等级:{TRIGGER.SEVERITY}
    告警信息: {TRIGGER.NAME}
    告警项目:{TRIGGER.KEY1}
    问题详情:{ITEM.NAME}:{ITEM.VALUE}
    当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
    事件ID:{EVENT.ID}

     编辑 admin 用户的 报警媒介。 

     

     类型:选择刚才建立的脚本名称,关联调动,将报警信息 发给 微信平台。

     

    应用ID

     测试报警

     
  • 相关阅读:
    2017.4.6下午
    2017.4.6上午
    2017.3.31下午
    2017.4.5下午
    2017.4.5上午
    2017.4.1上午
    2017.3.31上午
    2017.3.28下午
    2017.3.28上午
    3.28上午
  • 原文地址:https://www.cnblogs.com/jjp816/p/7204307.html
Copyright © 2011-2022 走看看