现实生产环境中,我们通常使用邮件和短信接受zabbix报警信息,但是邮件经常被工作人员搁置在角落中甚至被设置为垃圾邮件被过滤掉。公司的短信接口又太贵,复杂环境中使用短息报警会使运维成本增加很多。微信提供了很好的第三方接口,我们可以利用微信报警以求降低运维成本。
微信的第三方接口要求我们先申请一个企业号——传送门:https://qy.weixin.qq.com/
如何操作企业号?
1.通讯录添加企业成员
我们要提前把成员信息添加进组织部门,必填项+手机号或者微信号,这样别人扫描二维码的时候才能成功关注企业号。
注意:这里有两个我们要用到信息,一个组织部门的ID,一个部门成员的账号(账号是自己手动指定的,不同于微信号,最好是字母加数字)
2.应用中心创建应用
我们要在这里创建应用,因为要通过应用发送消息给部门成员
注意:这里要记住一个值,应用ID
3.给部门设置管理员
设置--->功能设置---->权限管理---->新建管理组
管理员必须事先已经关注了企业号,并且已经设置好邮箱地址
确定管理员可以读取通讯录,可以使用应用发消息。
注意:我们需要管理员的CorpID和Secret
我们要准备这些东西:
一个微信企业号
企业号已经被部门成员关注
企业号里有一个可以发消息的应用 一个授权管理员,可以使用该应用给成员发消息
我们要取到这些信息:
成员账号
组织部门ID
应用ID
CropID Secret
如何调用微信接口?
调用微信接口需要一个调用接口的凭证:access_token
通过 :CropID 、Secret 才能获取到access_token,但是获取到的token有效期为两分钟
微信企业号接口调试工具传送门:http://qydev.weixin.qq.com/debug
Shell脚本原理
使用:
curl -s -G url 获取 AccessToken
使用:
curl --data url 传送凭证调用企业号接口
zabbix会传递三个参数给脚本,$1是消息接收账号,$2报警标题,$3报警内容
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#!/bin/bash
###SCRIPT_NAME:weixin.sh###
###send message from weixin for zabbix monitor###
###wuhf###
###V1-2015-08-25###
CropID='xxxxxx'
Secret='xxxxxx'
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=3 企业号中的应用id
local UserID=$1 部门成员id,zabbix中定义的微信接收者
local PartyID=1 部门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 'tt"content": "'"$Msg"""n"
printf 't},n'
printf 't"safe":"0"n'
printf '}n'
}
/usr/bin/curl --data-ascii "$(body $1 $2 $3)" $PURL
为什么要这样写脚本?
因为微信企业号开放的端口有固定的格式限制
企业号支持的格式:http://qydev.weixin.qq.com/wiki/index.php?title=消息类型及数据格式
将脚本放入zabbix默认执行路径下
1
2
3
mv weixin.sh /usr/local/zabbix/share/zabbix/alertscripts
chown zabbix.zabbix /usr/local/zabbix/share/zabbix/alertscripts/weixin.sh
chmod +x /usr/local/zabbix/share/zabbix/alertscripts/weixin.sh
服务器端
1.创建媒介
2.创建用户
3.创建触发器动作发送内容
4.设置触发器动作发送方式
收到的微信消息:
原文地址:http://www.cnyunwei.com/thread-29593-1-1.html
- 浏览: 1007431 次
- 性别:
- 来自: 上海
-
最新评论
-
hsluoyz:
PyCasbin 是一个用 Python 语言打造的轻量级开源 ...
django guardian 对象级别权限设计 -
phncz310:
厉害了,我的哥
python黑魔法异常重试的次数,间隔的装饰器涵数 -
adamoooo:
Zabbix二次开发,可以试试:乐维监控www.91lewei ...
zabbix二次开发及app -
shi3689476:
你好,模块下载地址还能提供一下吗?
NGINX开发杀手锏-线程池 -
tobato:
Elasticsearch 和 Influxdb 为何选了El ...
elastic作数据源,对比kibana与grafana
相关推荐
通过上述步骤,您可以顺利完成Zabbix的安装与基本配置,并实现微信报警功能。Zabbix的强大之处在于它可以自定义各种监控项,并且通过多种方式发送报警通知,这为企业的IT运维提供了极大的便利。希望本文能帮助您更好...
在本篇文档中,我们将探讨如何在特定的系统环境下,即CentOS 7.4上配置Zabbix 4.0来实现微信告警。由于这是一个内网环境,只能通过一台代理服务器进行对外通信,且邮件服务的端口被封禁,因此采用微信作为报警方式...
7. **Zabbix微信报警配置** - 在Zabbix Web界面中,创建新的媒体类型,选择“自定义脚本”,并填写`wechat.sh`的路径。 - 配置用户或用户组的媒体,选择新创建的微信媒体类型,并指定接收者信息。 - 最后,为监控...
#### 二、zabbix微信报警脚本配置 - **脚本路径**:在zabbix的`alertscripts`目录下编写脚本,例如 `/usr/local/zabbix/alertscripts/`。 - **获取access_token**:为了调用微信接口发送消息,首先需要获取access_...
### zabbix微信报警知识点详解 #### 一、概述 Zabbix是一款开源的网络监控系统工具,主要用于监控网络设备和服务的状态。随着移动办公的普及,利用微信等即时通讯工具进行告警已经成为很多企业的首选方案之一。...
《微信报警Zabbix实现详解》 在现代IT运维中,实时监控系统状态并及时通知运维人员至关重要。Zabbix是一款广泛使用的开源监控解决方案,它能够监控网络设备、服务器、应用程序等多种IT资源。然而,传统的报警方式如...
│ 12 - 06-使用zabbix实现微信报警.mp4 │ 13- 07-zabbix的故障预处理和报警升级.mp4 │ 14 - 08-zabbix自定义图形.mp4 │ 15 - 09-使用grafana为zabbix出图.mp4 │ 16 - 10-grafana创建自定义图形.mp4 │ 17 - 11-...
- 提供丰富的报警机制和通知方式,如邮件、短信、微信等,确保问题能够及时得到处理。 - **缺点**: - 用户界面和文档均为英文,对于非英语母语的用户可能造成一定的学习障碍。 - 在高并发场景下,Zabbix Server...