共计 4030 个字符,预计需要花费 11 分钟才能阅读完成。
应用开源实时监控工具 HertzBeat 对 SpringBoot2 利用的监控告警实际,5 分钟搞定!
HertzBeat 介绍
HertzBeat 是一款开源,易用敌对的实时监控工具,无需 Agent,领有弱小自定义监控能力。
- 集 监控 - 告警 - 告诉为一体,反对对应用服务,数据库,操作系统,中间件,云原生,网络等监控,阈值告警,告警告诉(邮件微信钉钉飞书短信 Slack Discord Telegram)。
- 其将 Http,Jmx,Ssh,Snmp,Jdbc 等协定标准可配置化,只需配置 YML 就能应用这些协定去自定义采集任何您想要采集的指标。您置信只需配置 YML 就能立即适配一个 K8s 或 Docker 等新的监控类型吗?
- HertzBeat 的弱小自定义,多类型反对,易扩大,低耦合,心愿能帮忙开发者和中小团队疾速搭建自有监控零碎。
Github: https://github.com/dromara/hertzbeat
在 HertzBeat 5 分钟搞定对 SpringBoot2 利用的监控
操作前提,您已领有 SpringBoot2 应用环境和 HertzBeat 环境。
- HertzBeat 装置部署文档 https://hertzbeat.com/docs/start/docker-deploy
一. 在 SpringBoot2 利用端暴露出 actuator
指标接口,它将提供 metrics 接口数据。
- 开启 SpringBoot Actuator Endpoint 暴露出
metrics health env
指标接口
management:
endpoints:
web:
exposure:
include:
- 'metrics'
- 'health'
- 'env'
enabled-by-default: on
- 重启后测试拜访指标接口
ip:port/actuator
是否有响应 json 数据如下:
{
"_links": {
"self": {
"href": "http://localhost:1157/actuator",
"templated": false
},
"health-path": {"href": "http://localhost:1157/actuator/health/{*path}",
"templated": true
},
"health": {
"href": "http://localhost:1157/actuator/health",
"templated": false
},
"env": {
"href": "http://localhost:1157/actuator/env",
"templated": false
},
"env-toMatch": {"href": "http://localhost:1157/actuator/env/{toMatch}",
"templated": true
},
"metrics-requiredMetricName": {"href": "http://localhost:1157/actuator/metrics/{requiredMetricName}",
"templated": true
},
"metrics": {
"href": "http://localhost:1157/actuator/metrics",
"templated": false
}
}
}
在开源监控零碎 HertzBeat 监控页面增加对 SpringBoot2 利用监控
- 点击新增 SpringBoot2 监控
门路:菜单 -> 应用服务监控 -> SpringBoot2 -> 新增 SpringBoot2 监控
- 配置新增监控 SpringBoot2 所需参数
在监控页面填写 SpringBoot2 利用 对端 IP,服务端口 (默认 8080), 账户明码等 ,最初点击确定增加即可。
其余参数如 采集距离 , 超时工夫 等能够参考帮忙文档 https://hertzbeat.com/docs/help/
- 实现✅, 当初咱们曾经增加好对 SpringBoot2 利用 的监控了,查看监控列表即可看到咱们的增加项。
- 点击监控列表项的 操作 -> 监控详情图标 即可浏览 SpringBoot2 利用 的实时监控指标数据。
- 点击 监控历史详情 TAB 即可浏览 SpringBoot2 利用 的历史监控指标数据图表📈。
DONE!实现啦!不须要咱们去部署 agent 或者各种繁琐操作,是不是很简略
- 只需一步在 HertzBeat 监控页面配置 IP 端口增加 SpringBoot2 利用 监控即可
通过下面咱们就实现了对 SpringBoot2 利用 的监控,咱们能够在 HertzBeat 随时查看 SpringBoot2 利用的各种指标状态和可用性。
当然不可能人工始终实时查看指标,监控往往随同着告警阈值,当 SpringBoot2 利用 的性能指标超出咱们的阈值或 SpringBoot2 利用自身异样时,能及时的告诉到咱们对应的负责人,负责人收到告诉解决,这样才是一个残缺的监控告警流程。
接下来咱们就来一步一步演示如何配置 HertzBeat 零碎里的阈值告警告诉,当 SpringBoot2 利用 的指标异样时,及时告诉给咱们
三. 在 HertzBeat 零碎增加 SpringBoot2 利用 指标阈值告警
- 对某个重要指标配置告警阈值
门路:菜单 -> 阈值规定 -> 新增阈值
- 抉择配置的指标对象,SpringBoot2 利用 监控次要是 堆栈内存 线程等相干指标,咱们举例对
状态线程数
threads
->threads
这个指标进行阈值设置,当runnable
状态的线程数量大于 300 时收回告警。 - 这里咱们就配置当此指标
size
,state
的equals(state,"runnable"") && size>300
时收回告警,告警级别为 正告告警,三次即触发,具体如下图。
- 新增音讯告诉接管人
配置接管人,让告警音讯晓得要发给谁,用什么形式发。
门路:菜单 -> 告警告诉 -> 告警接管人 -> 新增接管人
音讯告诉形式反对 邮件,钉钉,企业微信,飞书,WebHook,短信 等,咱们这里以罕用的钉钉为例。
- 参照此 帮忙文档 https://hertzbeat.com/docs/help/alert_dingtalk 在钉钉端配置机器人,设置平安自定义关键词
HertzBeat
,获取对应access_token
值。 - 在 HertzBeat 配置接管人参数如下。
【告警告诉】->【新增接管人】->【抉择钉钉机器人告诉形式】->【设置钉钉机器人 ACCESS_TOKEN】->【确定】
- 配置关联的告警告诉策略⚠️【新增告诉策略】->【将刚设置的接管人关联】->【确定】
配置告警告诉策略,让告警音讯与接管人绑定,这样就能决定哪些告警发给哪个人。
结束,当初坐等告警音讯过去啦。叮叮叮叮
[HertzBeat 告警告诉]
告警指标对象 : springboot2.threads.size
所属监控 ID : 483783444839322
所属监控名称 : SPRINGBOOT2_localhost
告警级别 : 正告告警
告警触发工夫 : 2023-03-22 21:13:44
内容详情 : The springboot2 service's runnable state threads num is over 300, now is 444.
小结
:::tip
这篇实际文章带咱们体验了如何应用开源实时监控工具 HertzBeat 来监控 SpringBoot2 利用 指标数据,能够发现集 监控 - 告警 - 告诉
的 HertzBeat 在操作与应用方面更加的便捷,只需页面上简略点一点就能把 SpringBoot2 利用 纳入监控并告警告诉,再也不须要部署多个组件编写配置文件那些繁琐操作了。
:::
只须要一条 docker 命令即可装置体验 heartbeat:
docker run -d -p 1157:1157 --name hertzbeat tancloud/hertzbeat
更弱小
通过下面的简略步骤咱们实现了对 SpringBoot2 的监控,但外面的内置指标固定不满足需要,是否能自定义监控更多 SpringBoot2 的指标呢?答案当然是能够的,通过在页面上的 监控定义 ->SpringBoot2 随时通过编辑如下的 YML 配置文件自定义增加批改想要监控的性能指标。
What is HertzBeat?
HertzBeat 赫兹跳动 是一个领有弱小自定义监控能力,无需 Agent 的实时监控告警工具。应用服务,数据库,操作系统,中间件,云原生,网络等监控,阈值告警,告警告诉(邮件微信钉钉飞书短信 Discord Slack Telegram)。
咱们将
Http,Jmx,Ssh,Snmp,Jdbc
等协定标准可配置化,只需配置 YML 就能应用这些协定去自定义采集任何您想要采集的指标。
您置信只需配置 YML 就能立即适配一个 K8s 或 Docker 等新的监控类型吗?
HertzBeat
的弱小自定义,多类型反对,易扩大,低耦合,心愿能帮忙开发者和中小团队疾速搭建自有监控零碎。
Github: https://github.com/dromara/hertzbeat
Gitee: https://gitee.com/dromara/hertzbeat
⛄ Supported
- 网站监控, 端口可用性, Http Api, Ping 连通性, Jvm, SiteMap 全站, Ssl 证书, SpringBoot, FTP 服务器
- Mysql, PostgreSQL, MariaDB, Redis, ElasticSearch, SqlServer, Oracle, MongoDB, 达梦, OpenGauss, ClickHouse, IoTDB
- Linux, Ubuntu, CentOS, Windows
- Tomcat, Nacos, Zookeeper, RabbitMQ, Flink, Kafka, ShenYu, DynamicTp, Jetty, ActiveMQ
- Kubernetes, Docker
- CiscoSwitch, HpeSwitch, HuaweiSwitch, TpLinkSwitch
- 和更多的自定义监控。
- 告诉反对
Discord
Slack
Telegram
邮件
钉钉
微信
飞书
短信
Webhook
。