Spring Boot 项目监控

Spring Boot Dashboard

Spring Boot Dashboard 是开发环境下 IDE 内的运行管理工具,是开发必备;其核心功能如下:

1>. 启动 / 停止 Spring Boot 应用

2>. 多服务分组管理(微服务时方便)

3>. 查看控制台日志

4>. 显示运行状态(Running / Stopped)

5>. 简化版的项目状态监测(依赖于 Actuator )

Spring Boot Actuator

Spring Boot Actuator 是应用内部的“监控数据提供者”,必须安装业务项目内;它只提供监控数据,不提供可视化界面;

其核心功能是以 HTTP 接口的方式提供如下监控信息(JSON格式):

  • /actuator/health → 服务健康状态
  • /actuator/metrics → 各类指标
  • /actuator/env → 环境变量
  • /actuator/loggers → 动态日志级别
  • /actuator/mappings → 请求映射

Spring Boot Actuator 的使用场景是:服务存活检测、容器 / K8s 探针、问题排查(线程、内存)、动态调整日志级别等;

Spring Boot Admin

Spring Boot Admin 是 Spring Boot Actuator 的可视化界面;其核心功能是以可视化的方式展现 Spring Boot Actuator 的监控数据。具体功能如下:

  • 应用列表管理(多实例)
  • 健康状态可视化
  • 指标图表展示
  • JVM 信息查看
  • 动态修改日志级别
  • 简单告警(可扩展)

Spring Boot Admin 的使用场景是中小项目的可视化监控;Spring Boot Admin 以独立服务的方式部署运行,可同时监控多个项目。

Spring Boot Admin 不适合大型项目监控,例如:大规模微服务、复杂监控(报警、历史分析);中大型项目或云原生体系应该使用 Prometheus + Grafana。


项目监控的目标

监控的本质是为了“变被动为主动”。如果没有监控,只能等用户投诉才知道系统挂了;有了监控,就能在用户发现之前就解决问题。

Spring Boot Admin (SBA) 的核心意义在于实时反馈系统的可用性,具体体现在以下三个维度:

1>. 监控的三个核心目的

- 快速定位故障:当系统变慢或报错时,监控能反馈是 CPU 飙升内存溢出(OOM),还是数据库连接池满了;从而缩短排查问题的时间。

- 预警与防范:监控可以设置阈值。例如:磁盘空间剩余不足 10% 时发邮件报警;让系统彻底崩溃前有时间介入处理。

- 性能调优依据:通过观察长期的内存、线程曲线,可以判断当前的服务器配置是“买多了浪费”还是“买少了扛不住”。


2>. “健康度”的具体含义

在 Spring Boot Admin 中,健康度(Health)不仅仅是一个“绿色运行中”的图标,它代表了端到端的可用性链条

- 存活判定:应用进程是否还在运行?如果进程挂了,健康度直接消失。

- 外部依赖检查:这是最实用的。Spring Boot 会自动检查:

  • 数据库:能否执行一条简单的查询(如 SELECT 1)?
  • Redis/MQ:能否正常连接和读写?
  • 磁盘:剩余空间是否足以支撑写入日志?
  • 如果其中任何一项失败,健康状态会从 UP 变为 DOWN


3. 健康度的实际应用场景(以自动化为例)

“健康度”是给自动化运维系统看的:

  • 与 Nginx/网关联动:如果某个应用实例的健康度变为 DOWN,网关可以自动切断发往该实例的流量,防止用户访问到报错页面。
  • 与 Kubernetes (K8s) 联动:K8s 会定时调用健康检查接口。如果发现应用不健康,它会自动杀掉旧容器并重启一个新容器,实现服务的“自愈”。
  • 滚动发布验证:当你发布新代码时,监控系统会确认新版本健康度为 UP 后,才会关掉旧版本,确保发布过程无感。

健康度就是系统的“体检报告”。它把“程序还在跑”和“程序能正常干活”区分开了。


举报

© 著作权归作者所有


0