zoukankan      html  css  js  c++  java
  • centos7--zabbix3.4微信报警

    1.申请企业微信

    1.1 注册企业微信的地址

    https://qy.weixin.qq.com/ 

     

    1.2 按照提示进行填写

     

    1.3 完善个人信息:

     

    1.4 创建应用

     

    根据提示创建应用:

     

    1.5 筛出重要信息:

    (建议:把下面筛出来的信息保存在一个文本里面)

     

     

    2.调用微信接口

    我们配置微信脚本 首先我们需要调用微信接口

    调用微信接口需要一个调用接口的凭证:access_token

    通过:GropID,Secret才能获取到access_token,但是获取到的token有效期为两分钟

    微信企业号接口调试工具地址:http://qydev.weixin.qq.com/debug

    打开上面的url,使用上面monitops企业号的monit-manager管理组的CorpID和Secret号获得调用接口凭证access_token,如下

    2.1 微信企业号接口调试工具

    地址:http://qydev.weixin.qq.com/debug 

     

    3.下载依赖工具

    [root@localhost ~]# wget https://pypi.python.org/packages/f0/07/26b519e6ebb03c2a74989f7571e6ae6b82e9d7d81b8de6fcdbfc643c7b58/simplejson-3.8.2.tar.gz

    [root@localhost ~]# tar zxf simplejson-3.8.2.tar.gz

    [root@localhost ~]# cd simplejson-3.8.2/

    [root@localhost ~]# python setup.py build

    [root@localhost ~]# python setup.py install

    4.编写脚本

    4.1 查找脚本文件路径

    [root@localhost ~]# find / -name alertscripts

     

    4.2 修改主配置文件脚本路径

    (默认的可以不更改)

     

    4.3 编写脚本

     

    #!/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,user,subject,content):

        send_url = 'https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=' + access_token

        send_values = {

            "touser":"WeiGuo",   #企业号中的用户帐号,在zabbix用户Media中配置,如果配置不正常,将按部门发送。

            "toparty":"2",        #企业号中的部门id。

            "msgtype":"text",     #消息类型

            "agentid":"1000003",  #企业号中的应用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__':

        user = str(sys.argv[1])     #zabbix传过来的第一个参数

        subject = str(sys.argv[2])  #zabbix传过来的第二个参数

        content = str(sys.argv[3])  #zabbix传过来的第三个参数

        corpid =  'ww7f78865c2ba33afa'     #企业号的标识(上文中提到获取位置)

        corpsecret = 'szAMO1lIFOEH6JuCSIqjuw35zZbKcHdVx76tBhHOon8'    #管理组凭证密钥(上文中提到获取位置)

        accesstoken = gettoken(corpid,corpsecret)

    senddata(accesstoken,user,subject,content)

    4.4 授权

    [root@localhost alertscripts]# chmod 755 wechat.py & chown -R zabbix.zabbix wechat.py

     

    4.5 试发微信

    (WeiGuo是企业微信里面的微信号 hello为标题   zabbix测试为内容)

     

    微信可以看到已经发过来了

    5.zabbix添加微信报警

    5.1 添加报警媒介

     

    参数:

    {ALERT.SENDTO}

    {ALERT.SUBJECT}

    {ALERT.MESSAGE}

    5.2 管理报警媒介

     

    5.3 用户授权

    (可创建新用户,也可使用Admin)

     

     

    5.4 创建动作

     

     

     

    操作/恢复操作:

    {TRIGGER.STATUS}: {TRIGGER.NAME}

    告警主机:{HOST.NAME}

    主机IP: {HOST.IP}

    告警时间:{EVENT.DATE} {EVENT.TIME}

    告警等级:{TRIGGER.SEVERITY}

    告警信息:{TRIGGER.NAME}

    问题详情:{ITEM.NAME}:{ITEM.VALUE}

    当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}

    事件ID: {EVENT.ID}

     

    确认操作:

    {TRIGGER.STATUS}: {TRIGGER.NAME}

    告警主机:{HOST.NAME}

    主机IP: {HOST.IP}

    告警时间:{EVENT.DATE} {EVENT.TIME}

    告警等级:{TRIGGER.SEVERITY}

    告警信息:{TRIGGER.NAME}

    问题详情:{ITEM.NAME}:{ITEM.VALUE}

    当前状态: {TRIGGER.STATUS}:{ITEM.VALUE1}

    事件ID: {EVENT.ID}

    6.验证

    6.1 微信收到消息

    到这里我们就配置完毕了 但是这样的问题是只能用企业微信接到消息 那么如何让我们平时使用的微信也能接到消息呢?

     

    6.2 断开zabbix-agent测试

    (断开之后看是否会有微信消息过来)

    zabbix-agent上操作:

    [root@localhost ~]# systemctl stop zabbix-agent.service

     

    可以看到微信警告已经发出。

  • 相关阅读:
    洛谷P1219 八皇后 我。。。。。。
    c++ STL map
    洛谷P1765 手机_NOI导刊2010普及(10) 关于cin和getline的一些区别 以及一些STL
    Restore the Permutation by Sorted Segments CodeForces
    Alternating Subsequence CodeForces
    cerr与cout
    (转)女生应该找一个玩ACM的男生
    (转)搞ACM的你伤不起
    c++多组数据输入
    不要62 HDU
  • 原文地址:https://www.cnblogs.com/guarderming/p/9883537.html
Copyright © 2011-2022 走看看