通过引入spring-boot-starter-actuator并配置management.endpoints.web.exposure.include=*和health.show-details=always,可启用健康检查、环境变量、指标等监控端点;支持自定义HealthIndicator如Redis状态检测,实现服务可观测性。

在Spring Boot应用中,监控服务的健康状态是保障系统稳定运行的重要环节。通过引入Spring Boot Actuator模块,可以快速实现对服务运行情况的实时监控,包括健康检查、内存使用、线程状态、HTTP调用统计等。
添加Actuator依赖
要在项目中启用Actuator功能,首先需要在pom.xml中添加对应的依赖:
添加后,Spring Boot会自动配置一系列监控端点(endpoints),用于暴露应用的内部状态。
配置监控端点
默认情况下,并非所有监控信息都对外暴露。需要在application.yml或application.properties中进行配置以开启所需端点。
立即学习“Java免费学习笔记(深入)”;
例如,在application.yml中添加以下内容:
management:endpoints:
web:
exposure:
include: "*"
endpoint:
health:
show-details: always
上述配置表示:
- include: "*":开放所有Web端点
- show-details: always:健康检查接口返回详细信息
常用监控端点说明
启动应用后,可以通过HTTP请求访问以下常用端点:
- /actuator/health:查看服务健康状态,如数据库连接、磁盘空间等
- /actuator/info:显示自定义应用信息(如版本号)
- /actuator/metrics:获取JVM内存、线程、GC等指标
- /actuator/env:查看当前环境变量和配置
- /actuator/httptrace:追踪最近的HTTP请求(需开启)
例如访问 http://localhost:8080/actuator/health,返回结果可能如下:
{"status": "UP",
"components": {
"db": { "status": "UP", "details": { "database": "MySQL" } },
"diskSpace": { "status": "UP" }
}
}
自定义健康检查
除了内置检查项,还可以通过实现HealthIndicator接口来自定义健康监测逻辑。例如检查Redis连接状态:
@Componentpublic class RedisHealthIndicator implements HealthIndicator {
@Override
public Health health() {
if (isRedisConnected()) {
return Health.up().withDetail("redis", "connected").build();
} else {
return Health.down().withDetail("redis", "disconnected").build();
}
}
// 模拟检测逻辑
private boolean isRedisConnected() {
return true;
}
}
完成后,/actuator/health 接口将包含Redis的状态信息。
基本上就这些。通过Actuator,Java服务可以轻松实现基础监控能力,适合与Prometheus、Grafana等工具集成,构建完整的可观测性体系。注意生产环境应限制敏感端点的访问权限,避免信息泄露。











