• zabbix的配置之新版微信报警(二)


     

    zabbix配置2018版本微信报警

    centos6.5中微信报警需要Python2.7版本之上,由于服务器是centos6.5。所以需要升级版本2.6到2.7.

    具体升级步骤:Python升级版本2.6到2.7

    一、微信企业号申请

    地址: http://work.weixin.qq.com/

    注册企业微信:

    需要一个绑定银行卡的微信

    主要流程如下:
     1.创建微信用户成员
     2.创建应用,这是关键,如果是刚申请的公众号,创建的第一个应用ID 为1 (现在升级后的企业微信创建的应用ID为1000002)。
     3.创建应用管理组,添加组成员(也就是设置哪些用户可以接收到报警的通知信息)。
     4.创建成功后需要获取到以下信息:CropID  和Secret 当然还包括创建的用户信息。
      申请企业微信,创建对应的组成员这些就不介绍了,按照注册向导创建即可,主要写下创建应用获取应用Secret 和CorpID

    主要找到 AgentId 和 Secret 和CorpID,部门id

    注册成功后,进入管理后台

    以下举个例子做为概述

    1)选择企业应用------创建应用 对应范围选择自己的部门。

    2)创建成功后就可以看到该应用的 AgentId 和 Secret

    3)CorpID 需要在【我的企业】-【企业信息】中获取

    4)部门ID 很隐蔽,在【通讯录】-左侧部门列表 点击查看

     综上所述可以获得

    部门id

    AgentId

    Secret

    CorpID

    二、zabbix 脚本创建

    vim /usr/local/zabbix/alertscripts/weixin.sh

     1 #!/bin/bash
     2 CropID='**********************'                    
     3 #填写我们的应用CropID
     4 Secret='**********************************'        
     5 #应用的Secret,下面的GURL和PURL 地址无需变动
     6 GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"      
     7 #Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F" '{print $4}')
     8 Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F" '{print $10}')
     9 PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
    10  
    11 function body() {
    12         local int AppID=1000002        #这里是创建的应用ID,AgentId
    13         local UserID=$1                #接收消息用户,我们在部门里面添加的用户,如果有其他人,用逗号代替
                            部门成员id,zabbix中定义的微信接收者
    14 local PartyID=2 #接收消息的部门ID,定义了范围,组内成员都可接收到消息。 15 local Msg=$(echo "$@" | cut -d" " -f3-) 16 printf '{ ' 17 printf ' "touser": "'"$UserID""", " 18 printf ' "toparty": "'"$PartyID""", " 19 printf ' "msgtype": "text", ' 20 printf ' "agentid": "'" $AppID """, " 21 printf ' "text": { ' 22 printf ' "content": "'"$Msg""" " 23 printf ' }, ' 24 printf ' "safe":"0" ' 25 printf '} ' 26 } 27 /usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL

    脚本设置权限和所属用户

    chown zabbix.zabbix weixin.sh

    chmod 744 weixin.sh

    第三、微信接口调用

    调用微信接口需要一个调用接口的凭证:access_token
    通过CorpID和Secret可以获得access_token
    微信企业号接口调试地址: http://qydev.weixin.qq.com/debug

     

    手动测试脚本能否正常发信,测试的账号由于在脚本里未写明,观察到微信能正常收到测试信息:

    比如说在后台下有一个添加的用户是syp,该用户在添加进入部门前会

    在微信上添加该用户,并且会下载企业微信,并关注(必须的,否则会接受不到消息)

    bash weixin.sh  syp test test

    [root@localhost alertscripts]# ./weixin.sh syp test test
    {"errcode":0,"errmsg":"ok","invaliduser":""}[root@localhost alertscripts]#

    在zabbix的web界面进行配置

    接着开始登陆zabbix,添加报警设置(跟邮件报警的配置差不多)

    1)创建报警媒介(这里我选用python脚本:weixin.py,如果选用shell脚本,就改换weixin.sh。其他设置都不变!

    注意下面要填写的脚本参数:
    {ALERT.SENDTO}
    {ALERT.SUBJECT}
    {ALERT.MESSAGE}

     2)创建用户weixin(密码一栏可以选择跟之前的超级管理员zabbix一样的密码;用户类型也可以设置成超级管理员)

     

     这里最好使用微信企业号的应用ID,AgentId.用户账号。这里只需要填写一个账号即可。zabbix的web界面里发信是按照应用ID,只要关注这个微信企业号内的用户都会收到报警邮件

    这样发的报警信息,在企业号内的用户都能收到。或者添加任意一个用户账号(比如syp1111111111),切不可添加多条,否则就会收到重复信息。

     

     3)创建动作

    注意严格下面的微信发送格式:
    上面的默认接收人填写:{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}

    如下,在“条件”里可自主选择添加“主机”和“模板”(具体可参考上一篇的“zabbix邮件报警”的此步设置)

    下面的“操作”(具体说明可参考上一篇的“zabbix邮件报警”的此步设置)。
    下面设置的报警信息只发送给weixin用户就行了,没有发生给用户组。

     注意:“操作”底部的“条件“做如下设置(时间已确认=非确认),这个别忘了!

     

     这样,就顺利创建了一个名为“weixin”的动作

     

    测试,将其中一台被监控机器(192.168.1.25)的zabbix-agent服务关掉,观察微信是否能正常收到报警信息:
    经测试,报警信息(3次)和恢复后的信息(1次),微信都能正常收到。

    ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
    要追加用户的微信监控,只需要将用户添加到相关应用关联到的对应部门里即可!其他配置都不需要动。

     

  • 相关阅读:
    POJ 1401 Factorial
    POJ 2407 Relatives(欧拉函数)
    POJ 1730 Perfect Pth Powers(唯一分解定理)
    POJ 2262 Goldbach's Conjecture(Eratosthenes筛法)
    POJ 2551 Ones
    POJ 1163 The Triangle
    POJ 3356 AGTC
    POJ 2192 Zipper
    POJ 1080 Human Gene Functions
    POJ 1159 Palindrome(最长公共子序列)
  • 原文地址:https://www.cnblogs.com/fengzhongzhuzu/p/9039758.html
Copyright © 2020-2023  润新知