Zabbix 增加微信报警配置

1. 首先需要注册企业微信,注册地址:https://work.weixin.qq.com/ ,注册就不详细介绍了,有问题百度吧

2. 注册完企业微信后,需要获取以下信息
企业ID
AgentID
Secret
用户的账号 或 组ID

3. 查看企业ID,点击我的企业,企业信息内查看

4. 点击通讯录,创建zabbix报警组和联系人

4. 点击应用与小程序,创建应用

5. 在此获取到AgentId和secret

6. 配置zabbix server端
需要修改 zabbix.conf

grep alertscripts /etc/zabbix/zabbix_server.conf

AlertScriptsPath=/usr/lib/zabbix/alertscripts
我们设置zabbix默认脚本路径,这样在web端就可以获取到脚本

7. Shell 脚本
进入到 /usr/lib/zabbix/alertscripts 目录下,创建一个wechat.sh 脚本文件并且给脚本文件授权 用户和组 以及增加 执行权限
脚本文件内容:

#!/bin/bash
###SCRIPT_NAME:wechat.sh###
###send message from weixin for zabbix monitor###

CropID='此处填写上面获取到的CorpID'
Secret='此处填写应用的Secret'
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"

function body() {
        #企业号中的应用id
        local int AppID=这里填写AgentID
        #部门成员id,zabbix中定义的微信接收者
        local UserID=$1
        #部门id,定义了范围,组内成员都可接收到消息
        local PartyID=2     
        #过滤出zabbix传递的第三个参数
        local Msg=$(echo "$@" | cut -d" " -f3-)
        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##

给脚本文件授权 用户和组 以及增加 执行权限

chown zabbix.zabbix wechat.sh
chmod +x wechat.sh

脚本测试

/bin/bash /usr/lib/zabbix/alertscripts/wechat.sh aaatest bbbtest ccctest

8. 定义Zabbix 动作发送告警

创建告警媒介:
按照图片中的定义创建新告警媒介
此处贴出告警参数

{ALERT.SENDTO}
{ALTER.SUBJECT}
{ALERT.MESSAGE}[object Object]

添加告警用户和动作

最后点击更新,用户就配置完成

9. 添加动作

故障配置

故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

告警主机:{HOSTNAME1}
告警主机IP地址:{HOST.CONN}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
发生: {TRIGGER.NAME}故障!
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}

恢复配置

恢复{TRIGGER.STATUS}, 服务器:{HOSTNAME1}: {TRIGGER.NAME}已恢复!

告警主机:{HOSTNAME1}
告警主机IP地址:{HOST.CONN}
告警时间:{EVENT.DATE} {EVENT.TIME}
告警等级:{TRIGGER.SEVERITY}
告警信息: {TRIGGER.NAME}
告警项目:{TRIGGER.KEY1}
问题详情:{ITEM.NAME}:{ITEM.VALUE}
 {TRIGGER.NAME}已恢复!
当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID:{EVENT.ID}

动作添加:

10. 测试

Was this article helpful?

Related Articles