Zabbix企业微信告警

发布员1号 发布于 2021-03-18 78 次阅读


1.1、先到企业微信官网注册

https://work.weixin.qq.com

1.2、创建部门并将用户移动到创建的部门并记录部门ID(我这偷懒没创建所以部门ID为1)

image.png

1.3、在应用管理,应用,在自建分类里点击创建应用并记录下应用的AgentId和Secret

image.png

image.png

1.4、在此处找到企业ID

image.png

2.1、配置zabbix server服务端

先查看zabbix_server.conf配置文件中告警脚本存放位置(如果zabbix是默认编译安装的,脚本路径一般在/usr/local下)

Mon0001:~ #find /usr/local -name "alertscripts"
/usr/local/zabbix/share/zabbix/alertscripts

2.2、创建微信告警API调用脚本(或者单击此处直接下载脚本)

Mon0001:~ #cd /usr/local/zabbix/share/zabbix/alertscripts
vim weixin.sh
#!/bin/bash
CropID='*****************'                    #填写企业ID
Secret='*****************************'                   #填写应用的Secret ID
GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"      
#Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $4}')
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() {
        local int AppID=1000003                      #填写创建的应用ID 
        local UserID=$1                          #接收消息用户,系统传参,无需更改
        local PartyID=1                          #接收消息的部门ID
        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

2.3、配置脚本权限

chown zabbix:zabbix weixin.sh
chmod 755 weixin.sh

2.4、添加告警媒介

image.png

{ALERT.SENDTO}
{ALERT.SUBJECT}
{ALERT.MESSAGE}

2.5创建告警用户、添加报警媒介、权限

image.png

2.6、创建动作(触发器、操作动作、恢复动作)

image.png

image.png

image.png

标题内容:
{HOST.NAME}产生告警!
消息内容:
告警服务器: {HOST.NAME}
服务器IP: {IPADDRESS}
告警服务器组: {TRIGGER.HOSTGROUP.NAME}
时间: {EVENT.DATE} {EVENT.TIME}
等级: {TRIGGER.SEVERITY}
信息: {TRIGGER.NAME}
详情: {ITEM.NAME}:{ITEM.VALUE}
状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID: {EVENT.ID}

image.png

标题内容:
问题持续时间{EVENT.DURATION}: {HOST.NAME}已恢复!
消息内容:
问题已在{EVENT.RECOVERY.DATE}-{EVENT.RECOVERY.TIME}恢复
恢复服务器组: {TRIGGER.HOSTGROUP.NAME}
恢复服务器: {HOST.NAME}
服务器IP: {IPADDRESS}
问题发生时间: {EVENT.DATE} {EVENT.TIME}
问题持续时间: {EVENT.DURATION}
等级: {TRIGGER.SEVERITY}
信息: {TRIGGER.NAME}
详情: {ITEM.NAME}:{ITEM.VALUE}
状态: {TRIGGER.STATUS}:{ITEM.VALUE1}
事件 ID: {EVENT.ID}

2.7、触发告警测试

image.png

与此同时企业微信收到测试消息

image.png