xxqyzsc 发表于 2019-1-25 07:57:15

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)将脚本放在下面路径,并设置权限及属主:
# 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)编辑配置文件,添加下面一行
AlertScriptsPath=/usr/local/zabbix-server/alertscripts  4)测试发送脚本
#这里提示OK,就表示成功。xuwu147220591 为我企业号里的帐号,test 为标题,testcontent为发送内容。
# ./wechat.sh xuwu147220591 test testcontent
{"errcode":0,"errmsg":"ok"}  5) 查看发送消息
http://s1.运维网.com/wyfs02/M01/8B/E6/wKiom1hbvQzA1O25AAAT9T1medw547.png-wh_500x0-wm_3-wmp_4-s_1826172732.png
  

  3. 设置Zabbix通过微信企业号告警。
  1) 登录zabbix,并设置报警媒介类型
http://s1.运维网.com/wyfs02/M01/8B/E6/wKiom1hbvpzz5R2dAACKZq33b0M559.png-wh_500x0-wm_3-wmp_4-s_827566635.png
http://s1.运维网.com/wyfs02/M00/8B/E6/wKiom1hbvpzQUkqgAAB9naVqS3A826.png-wh_500x0-wm_3-wmp_4-s_3900244966.png
  2)添加完成后,需要关联到报警用户Administration-->Users-->Media-->add
http://s1.运维网.com/wyfs02/M01/8B/E6/wKiom1hbxNjyelzVAAChm9e4G1M991.png-wh_500x0-wm_3-wmp_4-s_3831827992.png
http://s4.运维网.com/wyfs02/M01/8B/E3/wKioL1hbxNrh2Wn4AAD6qKge6n8678.png-wh_500x0-wm_3-wmp_4-s_1319408787.png
  

  

  3) 配置发送的动作,设置内容,条件等
http://s4.运维网.com/wyfs02/M02/8B/E3/wKioL1hbxNqw2zc_AABVb168ZkE372.png-wh_500x0-wm_3-wmp_4-s_4087113147.png
http://s4.运维网.com/wyfs02/M00/8B/E6/wKiom1hbxNqBNiVvAACarXwrUj0744.png-wh_500x0-wm_3-wmp_4-s_1408894906.png
  

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




页: [1]
查看完整版本: zabbix 设置微信企业号报警