zoukankan      html  css  js  c++  java
  • CentOS7.3下Zabbix3.5之微信报警配置

    一、报警脚本放到服务端的 /usr/lib/zabbix/alertscripts/下
          属组属主为zabbix zabbix
          有执行权限
    vim weixinbaojing.py

    #!/usr/bin/python
    #_*_coding:utf-8 _*_
    
    import urllib,urllib2
    import json
    import sys
    import simplejson
    
    reload(sys)
    sys.setdefaultencoding('utf-8')
    
    def gettoken(corpid,corpsecret):
    gettoken_url = 'https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=' + corpid + '&corpsecret=' + corpsecret
    print gettoken_url
    try:
    token_file = urllib2.urlopen(gettoken_url)
    except urllib2.HTTPError as e:
    print e.code
    print e.read().decode("utf8")
    sys.exit()
    token_data = token_file.read().decode('utf-8')
    token_json = json.loads(token_data)
    token_json.keys()
    token = token_json['access_token']
    return token
    
    def senddata(access_token,subject,content):
    
    send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token
    send_values = {
    "totag":"3", #企业号中的部门id。
    "msgtype":"text", #消息类型。
    "agentid":"1000010", #企业号中的应用id。
    "text":{
    "content":subject + '
    ' + content
    },
    "safe":"0"
    }
    # send_data = json.dumps(send_values, ensure_ascii=False)
    send_data = simplejson.dumps(send_values, ensure_ascii=False).encode('utf-8')
    send_request = urllib2.Request(send_url, send_data)
    response = json.loads(urllib2.urlopen(send_request).read())
    print str(response)
    
    if __name__ == '__main__':
    subject = str(sys.argv[1]) #zabbix传过来的第二个参数
    content = str(sys.argv[2]) #zabbix传过来的第三个参数
    
    corpid = 'xxxxxxxxxxxxx' #CorpID是企业号的标识
    corpsecret = xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' #corpsecretSecret是管理组凭证密钥
    accesstoken = gettoken(corpid,corpsecret)
    senddata(accesstoken,subject,content)

    二、web界面操作
    创建触发器Triggers--->创建action-->action中指定Conditions-->opreations中设置报警格式(格式如下)-->Recovery opreations中设格式(格式如下(通知类型为Recovery))
    Default operation step duration 1h
    Default subject 通知类型:WARNING
    Default message

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

    operations中设置发送那个组,使用哪种方式方式发送

    3、在administration中配置Media types,配置格式如下

    Name test
    Type script
    Script name test.py
    Script parameters
    {ALERT.SUBJECT}
    {ALERT.MESSAGE}
    {ALERT.SENDTO}

    4、在administration中配置user中添加media

  • 相关阅读:
    java8--面向对象 下(疯狂java讲义3) 复习笔记
    java8--面向对象 上(疯狂java讲义3) 复习笔记
    my.cnf配置详解[转载]
    java8--集合(疯狂java讲义3复习笔记)
    java8--网络编程(java疯狂讲义3复习笔记)
    Technocup 2017
    Technocup 2017
    Technocup 2017
    Technocup 2017
    Codeforces Round #396 (Div. 2) E
  • 原文地址:https://www.cnblogs.com/wclwcw/p/8329675.html
Copyright © 2011-2022 走看看