一、发现问题
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
原文地址:http://xumingjiang.blog.51cto.com/703960/1885229