首页 > 代码库 > zabbix 设置微信企业号报警

zabbix 设置微信企业号报警

一、发现问题

    Zabbix之前一直用的是邮件报警,因为现在邮件不方便经常查看,所以今天决定试一试使用zabbix来发送报警。


二、分析问题

    1.要用微信企业号发送告警,首先要申请微信企业号。

    2.其次要写发送告警的脚本。

    3.最后就是设置zabbix指定哪些人可以接收到信息。


三、解决问题

    1. 申请并设置企业号,

       微信企业号申请地址:https://qy.weixin.qq.com/


       如何申请企业号及配置可以参数下面链接:

       http://www.cnyunwei.com/thread-29593-1-1.html


    2. 写发送微信消息脚本

       1)  脚本内容

#!/bin/bash
#########################################################################
# File Name: wechat.sh
# Author: xuwu
# Email: 147220591@qq.com
# Created Time: 2016-12-22 
#########################################################################
# Functions: send messages to wechat app
# set variables


#申请完企业号可以得到CropID和Secret
CropID=‘wx5dee690b68b562ae‘
Secret=‘6i1oXjgc0dd7UxpXZUmO2nLN4-aMKPrZCrwWjLBxa_ZfTS0flyDvKfoRRZtVYwqx‘
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"
#get acccess_token
Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" ‘{print $4}‘)
PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"
#
function body() {
local int AppID=1                        #企业号中的应用id
local UserID=$1                          #部门成员id,zabbix中定义的微信接收者
local PartyID=2                          #部门id,定义了范围,组内成员都可接收到消息
local Msg=$(echo "$@" | cut -d" " -f3-)  #过滤出zabbix传递的第三个参数
printf ‘{\n‘
printf ‘\t"touser": "‘"$UserID"\"",\n"
printf ‘\t"toparty": "‘"$PartyID"\"",\n"
printf ‘\t"msgtype": "text",\n‘
printf ‘\t"agentid": "‘" $AppID "\"",\n"
printf ‘\t"text": {\n‘
printf ‘\t\t"content": "‘"$Msg"\""\n"
printf ‘\t},\n‘
printf ‘\t"safe":"0"\n‘
printf ‘}\n‘
}
/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL


       2)将脚本放在下面路径,并设置权限及属主:

[root@zabbix alertscripts]# ll
total 20
-rwxrwxrwx 1 zabbix zabbix  258 Sep  2 14:50 mail.sh
-rwxr-xr-x 1 zabbix zabbix  466 Sep  5 13:12 msmtp.sh
-rwxr-xr-x 1 zabbix zabbix  150 Sep  5 13:25 mutt.sh
-rwxr-xr-x 1 zabbix zabbix  153 Sep  2 16:22 sendmail.sh
-rwxr-xr-x 1 zabbix zabbix 1354 Dec 22 13:06 wechat.sh
[root@zabbix alertscripts]# pwd
/usr/local/zabbix-server/alertscripts

[root@zabbix alertscripts]# chmod u+x wechat.sh 
[root@zabbix alertscripts]# chown zabbix.zabbix wechat.sh

       3)编辑配置文件,添加下面一行

AlertScriptsPath=/usr/local/zabbix-server/alertscripts

       

       4)测试发送脚本

#这里提示OK,就表示成功。xuwu147220591 为我企业号里的帐号,test 为标题,testcontent为发送内容。
[root@zabbix alertscripts]# ./wechat.sh xuwu147220591 test testcontent
{"errcode":0,"errmsg":"ok"}

       5) 查看发送消息

  技术分享


     3. 设置Zabbix通过微信企业号告警。

        1) 登录zabbix,并设置报警媒介类型

        

技术分享

技术分享

      2)添加完成后,需要关联到报警用户Administration-->Users-->Media-->add

技术分享

技术分享



      3) 配置发送的动作,设置内容,条件等

技术分享

技术分享


          4) 配置完成,接下来就是验证结果了。


本文出自 “徐铭江的博客” 博客,请务必保留此出处http://xumingjiang.blog.51cto.com/703960/1885229

zabbix 设置微信企业号报警