6754321 发表于 2016-12-23 08:43:02

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) 配置完成,接下来就是验证结果了。

dxq6888 发表于 2016-12-23 18:02:47

不错,学习了!!!!!

roadhappy 发表于 2017-2-20 11:35:31


不错,学习了!!!!!

roadhappy 发表于 2017-2-22 08:10:45



不错,学习了!!!!!

roadhappy 发表于 2017-2-23 08:46:22


多谢分享++++

roadhappy 发表于 2017-2-27 11:21:42


非常好,有意思!支持

clint 发表于 2017-3-1 11:10:17

nb

jestso 发表于 2017-9-28 17:29:29

学习了

mjy198675 发表于 2017-9-29 09:33:14

非常好,有意思!支持
页: [1]
查看完整版本: zabbix 设置微信企业号报警