zabbix 设置微信企业号报警
本帖最后由 6754321 于 2016-12-23 08:45 编辑一、发现问题
Zabbix之前一直用的是邮件报警,因为现在邮件不方便经常查看,所以今天决定试一试使用zabbix来发送报警。
二、分析问题
1.要用微信企业号发送告警,首先要申请微信企业号。
2.其次要写发送告警的脚本。
3.最后就是设置zabbix指定哪些人可以接收到信息。
三、解决问题
1. 申请并设置企业号,
微信企业号申请地址:https://qy.weixin.qq.com/
2. 写发送微信消息脚本
1)脚本内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/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)将脚本放在下面路径,并设置权限及属主:
1
2
3
4
5
6
7
8
9
10
11
12
# ll
total 20
-rwxrwxrwx 1 zabbix zabbix258 Sep2 14:50 mail.sh
-rwxr-xr-x 1 zabbix zabbix466 Sep5 13:12 msmtp.sh
-rwxr-xr-x 1 zabbix zabbix150 Sep5 13:25 mutt.sh
-rwxr-xr-x 1 zabbix zabbix153 Sep2 16:22 sendmail.sh
-rwxr-xr-x 1 zabbix zabbix 1354 Dec 22 13:06 wechat.sh
# pwd
/usr/local/zabbix-server/alertscripts
# chmod u+x wechat.sh
# chown zabbix.zabbix wechat.sh
3)编辑配置文件,添加下面一行
1
AlertScriptsPath=/usr/local/zabbix-server/alertscripts
4)测试发送脚本
1
2
3
#这里提示OK,就表示成功。xuwu147220591 为我企业号里的帐号,test 为标题,testcontent为发送内容。
# ./wechat.sh xuwu147220591 test testcontent
{"errcode":0,"errmsg":"ok"}
5) 查看发送消息
3. 设置Zabbix通过微信企业号告警。
1) 登录zabbix,并设置报警媒介类型
2)添加完成后,需要关联到报警用户Administration-->Users-->Media-->add
3) 配置发送的动作,设置内容,条件等
4) 配置完成,接下来就是验证结果了。
不错,学习了!!!!!
不错,学习了!!!!!
不错,学习了!!!!!
多谢分享++++
非常好,有意思!支持 nb 学习了 非常好,有意思!支持
页:
[1]