云计算、AI、云原生、大数据等一站式技术学习平台

网站首页 > 教程文章 正文

Zabbix 微信报警——企业号版本!

jxf315 2025-05-14 14:21:41 教程文章 1 ℃

开篇上脚本

脚本:

#!/bin/bash

###SCRIPT_NAME:weixin###

###send message from weixin for zabbix monitor###

###yangguang###

###V1-2016-06-12###

CropID='wx9a5706b19f1112f0'

Secret='jWPdGauAGusDWkETib9PEwnDacTQnIe-w-FhtHhSUD3rmsQ_ro87x8un8jbOAVrS'

GURL="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=$CropID&corpsecret=$Secret"

Gtoken=$(/usr/bin/curl -s -G $GURL | awk -F\" '{print $4}')

PURL="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=$Gtoken"

function body(){

local int AppID=1 # 企业号中的应用id

local UserID=$1 # 部门成员id,zabbix中定义的微信接收者

local PartyID=2 # 部门id,定义了范围,组内成员都可接收到消息

local Msg=$(echo "$@" | cut -d" " -f3-) # 过滤出zabbix中传递的第三个参数

printf '{\n'

printf '\t"touser": "'"$User"\"",\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

1.创建媒体类型



名称自定义

脚本名称:这需要和服务器中的脚本名称一样。否则会在推送时候找不到脚本文件错误。

2.创建动作

主要是动作和操作

动作:服务器发生问题以及恢复后,通过脚本发送给终端的相关信息。

具体如下:

名称:告警

默认接收人:故障{TRIGGER.STATUS},服务器:{HOSTNAME1}发生: {TRIGGER.NAME}故障!

默认信息:告警主机:{HOSTNAME1} {HOST.IP}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

恢复信息

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

恢复信息:告警主机:{HOSTNAME1} {HOST.IP}

告警时间:{EVENT.DATE} {EVENT.TIME}

告警等级:{TRIGGER.SEVERITY}

告警信息: {TRIGGER.NAME}

告警项目:{TRIGGER.KEY1}

问题详情:{ITEM.NAME}:{ITEM.VALUE}

当前状态:{TRIGGER.STATUS}:{ITEM.VALUE1}

事件ID:{EVENT.ID}

操作:发送具体人和发送方式等定义



3.发送的用户报警属性定义

4.服务器端配置。

打开zabbix_server.conf 找到如下几行

### Option: AlertScriptsPath

# Full path to location of custom alert scripts.

# Default depends on compilation options.

#

# Mandatory: no

# Default:

AlertScriptsPath=
/usr/local/zabbix/alertscripts ##自定义脚本的位置。

脚本内容为文章开头部分。

注意事项:复制粘贴后要修改下格式

:set fileformait=unix

5.企业公众账号设置:

a)注意不是微信订阅号是企业号。

b)需要提供如下信息给脚本获取

i.组织部门ID

ii.应用ID

iii.CropID

iv.Secret

v.成员账号

6.企业号设置(比较傻瓜)

新建组织架构添加微信报警组并新建成员

新建应用(关键)

新建管理组及权限

以上三张图片覆盖了我们需要的信息和操作。

注意企业号、企业号、企业号。重要事说三遍!

7.测试

每天三分钟,知识效率高。轻文章,更高效。

欢迎关注同名微信公众账号DevOps24h。

Tags:

最近发表
标签列表