Zabbix 新版微信告警-转载

Zabbix 新版微信告警


 Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是越来越多的企业开始使用zabbix结合微信作为主要的告警方式,这样可以及时有效的把告警信息推送到接收人,方便告警的及时处理。


一、微信企业号申请

地址: http://work.weixin.qq.com/

第一步注册 
image_1bijf4k4a1ssl1lk718bi33f1ngsm.png-63.3kB 
因为我们没有企业,所以我们选择组织。

提示:这里简单的说一下,微信企业号和微信公众号是不一样的!

image_1bijf63vd1p7h1heje0k1ho51scj13.png-62.5kB 
继续下一步

提示一下: 因为这步需要添加管理员的身份证号以及手机号,我这里就不截图了

二、配置微信企业号

当我们设置完微信号的信息之后,请继续跟我操作。中间可能步骤不是特别全,就是设置企业的信息

我们需要记录CorpID 
image_1bijfa66e1a2t9sr157b142de0e1g.png-84.8kB

我们点击通讯录,添加一个组,或者添加一个成员。成员可以使用微信邀请或者短信邀请,我扫码添加自己的时候微信这个坑比给我下载一个企业微信。很尴尬,微信变了。不单纯了 
image_1bijfcqeaaot1bad1lqv1unc1mol1t.png-54.1kB

添加完管理员需要记录管理员账号

我们添加成员需要记录成员ID 
image_1bijgfnh91440f3s8djr8c55.png-55kB

点进去 
image_1bijgaq4u8n91ijk1f01vfi14g64b.png-53kB 
记录用户账号 
image_1bijgcopp12gf1shp5n7gv65p14o.png-58.6kB

点击企业应用,新增应用 
image_1bijfi97pgee1lie1ggb1p0s9uo2n.png-50.9kB

设置应用 
image_1bijfkm9h1rq41m0pe7vso582134.png-47.8kB

同样也可以在微信插件里面二维码邀请关注加入通讯录 
image_1bijfh1t45vq1rqm19vp1iq47be2a.png-85.8kB

创建完成后 
需要记录Agentld、Secret 
image_1bijfo71hlioppi6ptvkp12d93h.png-89kB

以前的应用ID和组ID已经被取消

准备事项:

微信企业号 
企业号已经被部门成员关注 
企业号有一个可以发送消息的应用,一个授权管理员,可以使用应用给成员发送消息

需要得到的信息

记录用户的账号
CorpID和Secret、Agentld
  • 1
  • 2

三、修改Zabbix.conf

[root@abcdocker ~]# grep alertscripts /etc/zabbix/zabbix_server.conf 
AlertScriptsPath=/usr/lib/zabbix/alertscripts 我们设置zabbix默认脚本路径,这样在web端就可以获取到脚本
  • 1
  • 2
  • 3
  • 4

四、设置脚本

下载脚本

[root@abcdocker alertscripts]# wget http://download.zhsir.org/Zabbix/weixin_linux_amd64
[root@abcdocker alertscripts]# mv weixin_linux_amd64 wechat
[root@abcdocker alertscripts]# chmod 755 wechat [root@abcdocker alertscripts]# chown zabbix:zabbix wechat
  • 1
  • 2
  • 3
  • 4

执行脚本,进行测试

[root@abcdocker alertscripts]# ./wechat --corpid=wwcxxxxxxxxxxxxxxxx  --corpsecret=Q-HMnIo9HKX8kZwbT4m1SUcS-kmYhmiuRgr4DCLreQA   --msg="您好,告警测试" --user=CongYuHong  --agentid=1000002
{"errcode":0,"errmsg":"ok","invaliduser":""} 提示: --corpid= 我们企业里面的id --corpsecret= 这里就是我们Secret里面的id -msg= 内容 -user=我们邀请用户的账号 因为脚本是编译过的,无法进行编辑,我们可以使用./wechat -h or --help 查看
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

image_1bijgi6ob1qq615olc1dsal1ve65i.png-8.8kB

五、zabbix web 界面配置

创建报警媒介 
image_1bdm0i93gafr1l6s1s417jb15h480.png-35kB

--corpid=我们企业里面的id
--corpsecret=这里就是我们Secret里面的id
--agentid= Agentld ID --user={ALERT.SENDTO} --msg={ALERT.MESSAGE}
  • 1
  • 2
  • 3
  • 4
  • 5

这里是和旧版本的区别 
image_1bijgls05clf1c3o1cc11evpki05v.png-50.3kB

创建报警用户 
image_1bdm0o02b1ear1nan6301th41q4p8q.png-28.4kB 
image_1bdm0pt2d176u14pt7auun51en897.png-43.2kB

这里填写微信收件人的账号 
image_1bil0t26o1f66l1qci15fu9r69.png-72.8kB

设置报警动作 
image_1bdm0v98t6v51ccg1ufp1ti41t3aa1.png-19.7kB

image_1bdm100tvs3m1afr1im913ce99sae.png-21.4kB

报警消息设置如下:

hostname: ({HOST.NAME}
Time:{EVENT.DATE} {EVENT.TIME} level:{TRIGGER.SEVERITY} message:{TRIGGER.NAME} event:{ITEM.NAME}:{ITEM.VALUE} url:www.abcdocker.com
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

恢复报警如下:

hostname: ({HOST.NAME}
Time:{EVENT.DATE} {EVENT.TIME} level:{TRIGGER.SEVERITY} message:{TRIGGER.NAME} event:{ITEM.NAME}:{ITEM.VALUE} url:www.abcdocker.com
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

报警配置如下 
image_1bdm11487dht2u6gg0npt1b2uar.png-71.8kB 
恢复配置如下 
image_1bdm17gljvh61gpf8akvubt35b8.png-48.6kB

提示: 不要忘记先点小的add-->小的update-->Update

六、测试

为了验证效果我们停掉zabbix-agent,进行查看报警

[root@abcdocker ~]# systemctl stop zabbix-agent
  • 1

报警如下 
image_1bdm1n45pdatv5h25siomierbl.png-50.9kB

我是把我网站停了让你们看结果的! 
21.jpg-205.1kB

差距还很大,努力吧少年~

转载于:https://www.cnblogs.com/koushuige/p/9934704.html

### 配置 Zabbix 与企业微信集成实现告警通知 #### 一、概述 为了使 Zabbix 能够通过企业微信发送告警通知,需要完成以下几个主要部分的配置:创建企业微信机器人、编写并配置告警脚本、设置 Zabbix 的媒体类型和动作。 --- #### 二、具体配置步骤 ##### 1. 创建企业微信应用及获取 Webhook 地址 在企业微信管理后台中,进入 **应用管理** 页面,新建一个自定义应用或者启用已有的应用。记录下该应用的 `Secret` 和 `AgentId` 参数。如果选择使用群聊机器人,则可以直接复制其 webhook URL[^2]。 ##### 2. 编写告警脚本 (WeChat.sh) 在 Zabbix Server 上编辑用于发送消息到企业微信的通知脚本: ```bash #!/bin/bash # wechat.sh - 发送企业微信告警通知 corpid="wxXXXXXX" # 替换为企业微信CorpID corpsecret="YYYYYYY" # 应用密钥(Secret) agentid=ZZZZZ # 应用AgentId touser=$1 # 接收者UserID列表(多个以|分隔) subject=$2 # 主题/标题 message=$3 # 正文内容 token_url="https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=${corpid}&corpsecret=${corpsecret}" access_token=$(curl -s ${token_url} | python -c "import sys, json; print(json.load(sys.stdin)['access_token'])") send_url="https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=${access_token}" payload='{ "touser": "'${touser}'", "msgtype": "text", "agentid": '${agentid}', "text": { "content": "'"${subject}\n\n${message}"'" }, "safe":"0" }' result=$(curl --silent --show-error --data-binary "${payload}" "${send_url}") echo $result ``` 保存此文件至 `/usr/lib/zabbix/alertscripts/wechat.sh` 并赋予可执行权限: ```bash chmod +x /usr/lib/zabbix/alertscripts/wechat.sh ``` 验证脚本运行正常,尝试手动调用它来确认可以成功向指定用户推送一条测试信息[^3]。 ##### 3. 设置 Zabbix 中的 Media Type 登录 Zabbix Web UI,在 **Configuration -> Media Types** 下新增一种名为 “Enterprise WeChat” 或类似的 media type 类型。 - 类型选择为 Script; - 在 Script name 字段填入刚才放置于 alertscript 文件夹下的脚本名即 `wechat.sh`; - 定义三个宏参数 `{ALERT.SENDTO}`, `{ALERT.SUBJECT}` 及 `{ALERT.MESSAGE}` 对应命令行输入变量 `$1`, `$2`, `$3`. ##### 4. 绑定 User 到 Media Type 前往 **Administration -> Users**, 找到目标用户的 profile 页面添加新的媒介(Media),关联之前建立的企业微信媒体种类,并填写必要的接收方 UserID 数据作为 Send to 值。 ##### 5. 构建 Action 动作触发器 最后一步是在 **Configuration -> Actions** 设计好何时何种条件下激活对应的操作行为。当满足特定条件时(比如主机不可达),系统会依据预设规则自动发起对企业微信端的消息投递请求[^1]。 --- #### 三、注意事项 - 确认所有涉及路径均正确无误,尤其是脚本位置需匹配实际环境部署情况。 - 如果采用的是 HTTPS 请求方式而非本地脚本形式,请注意防火墙策略可能影响外发连接的成功率。 - 测试阶段建议先单独调试脚本逻辑后再整合进整个监控体系里去。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值