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

     

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

  • 相关阅读:
    Scrapy 概览笔记
    Python 依赖版本控制 (requirements.txt 文件生成和使用)
    Python 虚拟空间的使用
    macOS 所有版本 JDK 安装指南 (with Homebrew)
    鉴权那些事
    Java 位运算符和 int 类型的实现
    ASP.NET Core 入门教程 5、ASP.NET Core MVC 视图传值入门
    如何做好一次知识或技术分享
    ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门
    ASP.NET Core 入门教程 3、ASP.NET Core MVC路由入门
  • 原文地址:https://www.cnblogs.com/guarderming/p/9883537.html
Copyright © 2011-2022 走看看