• 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次),微信都能正常收到。

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

     

  • 相关阅读:
    青魔法圣堂法术 Django的技术栈(持续更新)
    青魔法圣堂法术 Django REST framework (DRF) 框架(持续更新)
    Python无法卸载的解决办法
    Django开发social-auth-app-django 第三方登陆
    【转载】青魔法圣堂法术Django项目知识点汇总
    基于session 的springMvc 国际化
    java导出生成csv文件
    mybatis + log4j 打印mybatis的sql
    spring Mvc + Mybatis 中使用junit
    spring官网项目
  • 原文地址:https://www.cnblogs.com/fengzhongzhuzu/p/9039758.html
Copyright © 2020-2023  润新知