版本:zabbix3.4
企业微信
准备材料:企业微信corpid 【打开企业微信-》我的企业,最后一行企业ID就是】
企业微信corpsecret 【打开企业微信-》企业应用-》创建的应用,Secret就是】
企业微信应用ID( agentid )【打开企业微信-》企业应用-》创建的应用,AgentId就是】
zabbix安装后,装好zabbix-agent, 并在zabbix监控界面能看到。
centos6.9 的命令
cd /etc/init.d
sh zabbix-agent status
查看zabbix-agent状态
好了,环境准备好了。
下面准备报警脚本。
查找zabbix-server报警脚本默认位置
grep alertscripts /etc/zabbix/zabbix_server.conf
AlertScriptsPath=${datadir}/zabbix/alertscripts
AlertScriptsPath=/usr/lib/zabbix/alertscripts
显示脚本位置存放位置是 /usr/lib/zabbix/alertscripts
那么进入这个目录
cd /usr/lib/zabbix/alertscripts
创建 wechat.sh
vi wechat.sh
插入
#!/bin/bash ###SCRIPT_NAME:wechat.sh### ###send message from weixin for zabbix monitor### CropID='替换你的cropid' Secret='替换你的corpsecret' GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret" Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F" '{print $10}') PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken" echo $PURL function body() { #企业号中的应用id local int AppID=你的应用ID #部门成员id,zabbix中定义的微信接收者 local UserID=$1 #部门id,定义了范围,组内成员都可接收到消息 #local PartyID=2 #过滤出zabbix传递的第三个参数 local Msg=$(echo "$@" | cut -d" " -f3-) printf '{ ' printf ' "touser": "'"$UserID""", " #printf ' "toparty": "'"$PartyID""", " printf ' "msgtype": "text", ' printf ' "agentid": "'" $AppID """, " printf ' "text": { ' printf ' "content": "'"$Msg""" " printf ' }, ' printf ' "safe":"0" ' printf '} ' } /usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL
保存。
执行测试脚本是否正确
./wechat --corpid=你的corpid --corpsecret=你的corpsecret --msg="您好,告警测试" --user=测试用户【企业微信里的】 --agentid=应用ID
看到输出
{“errcode”:0,”errmsg”:”ok”,”invaliduser”:””}
表示成功,而且你的微信会收到一条消息。
下面是zabbix的配置。
创建媒介
填完参数,先点添加,再点更新。
{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}
接着创建用户。
报警媒介选 wechat.sh
收件人填接收企业微信消息的用户。
接着添加动作。
测试
停止zabbix-agent
cd /etc/init.d
sh zabbix-agent stop
等5分钟,收到微信消息。
然后启动。
sh zabbix-agent start
再次收到微信消息。