Zabbix报警用企业微信通知的功能实现

版本:zabbix3.4

企业微信

准备材料:企业微信corpid 【打开企业微信-》我的企业,最后一行企业ID就是】

企业微信企业ID

企业微信corpsecret 【打开企业微信-》企业应用-》创建的应用,Secret就是】

企业微信应用ID( agentid )【打开企业微信-》企业应用-》创建的应用,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的配置。

创建媒介

zabbix创建媒介

zabbix创建媒介2

填完参数,先点添加,再点更新。

{ALERT.SENDTO}

{ALERT.SUBJECT}

{ALERT.MESSAGE}

接着创建用户。

zabbix创建用户

zabbix创建用户-用户信息

报警媒介选 wechat.sh

zabbix报警媒介收件人填接收企业微信消息的用户。

接着添加动作。

zabbix动作添加

zabbix动作条件 zabbix动作消息内容 zabbix动作发送用户

zabbix动作恢复消息内容

测试

停止zabbix-agent

cd /etc/init.d

sh zabbix-agent stop

等5分钟,收到微信消息。

然后启动。

sh zabbix-agent start

再次收到微信消息。

zabbix-微信消息预览

0%