Apache ShenYu 一个异步的,高性能的,跨语言的,响应式的 API 网关。
HertzBeat 是一款开源,易用友好的实时监控系统,无需Agent,拥有强大自定义监控能力。
支持对应用服务,数据库,操作系统,中间件,云原生等监控,阈值告警,告警通知(邮件微信钉钉飞书)。
HertzBeat 的强大自定义,多类型支持,易扩展,低耦合,希望能帮助开发者和中小团队快速搭建自有监控系统。
操作前提,您已拥有 ShenYu 环境和 HertzBeat 环境。
一. 在 ShenYu 端开启metrics
插件,它将提供 metrics 接口数据。
插件是 Apache ShenYu 网关的核心执行者,指标数据采集在
ShenYu
也是以插件的形式集成的 -Metrics插件
。Metrics插件
是网关用来监控自身运行状态(JVM
相关),请求响应等相关指标进行监测。
pom.xml
文件中添加 metrics插件
的依赖。
org.apache.shenyu
shenyu-spring-boot-starter-plugin-metrics
${project.version}
复制代码
metric
插件 采集默认是关闭的, 在网关的配置yaml
文件中编辑如下内容:shenyu:
metrics:
enabled: true #设置为 true 表示开启
name : prometheus
host: 127.0.0.1 #暴露的ip
port: 8090 #暴露的端口
jmxConfig: #jmx配置
props:
jvm_enabled: true #开启jvm的监控指标
复制代码
http://ip:8090
, 就能看到metric数据了。二. 在 HertzBeat 监控页面添加 ShenYu 监控
路径:菜单 -> 中间件监控 -> ShenYu监控 -> 新增ShenYu监控
在监控页面填写 ShenYu 服务IP,监控端口(默认8090),最后点击确定添加即可。
其他参数如采集间隔,超时时间等可以参考帮助文档 hertzbeat.com/docs/help/s…
DONE!完成啦!通过上面几步,总结起来其实也就只用两步
metrics
插件功能通过上面的两步我们就完成了对 Apache ShenYu 的监控,我们可以在 HertzBeat 随时查看监控详情指标信息来观测其服务状态。 当然只是看肯定是不完美的,监控往往伴随着告警阈值,当 ShenYu 的某些指标超出我们的期望值或异常时,能及时的通知到我们对应的负责人,负责人收到通知处理问题,这样才是一个完整的监控告警流程。
接下来我们就来一步一步演示如何配置 HertzBeat 系统里的阈值告警通知,让 ShenYu 的指标异常时,及时通知给我们
三. 在 HertzBeat 系统添加 ShenYu 指标阈值告警
路径:菜单 -> 告警阈值 -> 新增阈值
打开的文件描述符的数量
process_open_fds
-> value
这个指标进行阈值设置, 当服务端打开文件描述符数量大于3000时发出告警。process_open_fds
的 value>3000
时发出告警,告警级别为警告告警,三次即触发,具体如下图。配置接收人,让告警消息知道要发给谁,用什么方式发。
路径:菜单 -> 告警通知 -> 告警接收人 -> 新增接收人
消息通知方式支持 邮件,钉钉,企业微信,飞书,WebHook,短信等,我们这里以常用的钉钉为例。
HertzBeat
,获取对应access_token
值。【告警通知】->【新增接收人】 ->【选择钉钉机器人通知方式】->【设置钉钉机器人ACCESS_TOKEN】-> 【确定】
配置告警通知策略,让告警消息与接收人绑定,这样就能决定哪些告警发给哪个人。
[HertzBeat告警通知]
告警目标对象 : shenyu.process_open_fds.value
所属监控ID : 205540620349696
所属监控名称 : SHENYU_localhost
告警级别 : 警告告警
告警触发时间 : 2023-01-08 22:17:06
内容详情 : 请注意⚠️ ShenYu网关打开的文件描述符的数量为 3044 超过3000
复制代码
这篇实践文章带我们体验了如何使用 HertzBeat 监控 Apache ShenYu 指标数据,可以发现将
监控-告警-通知
集一体的 HertzBeat 在操作与使用方面更加的便捷,在页面上简单点一点就能把 ShenYu 纳入监控,再也不需要部署多个组件,写多个有门槛的YML配置文件了。