版本: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
再次收到微信消息。
