Spring Boot 3.3.x(非5.5)中启用Actuator需添加spring-boot-starter-actuator依赖,配置application.yml暴露health、info、metrics、env端点,设show-details: always获取详细健康信息,可重映射路径并结合Spring Security按角色控制访问权限。

你需要在 Spring Boot 5.5 项目中快速启用并配置 Actuator 监控端点,让运维能通过 HTTP 访问 /actuator/health、/actuator/metrics 等接口获取真实运行状态,而不是只看到 404 或空响应。
添加 Actuator Starter 依赖
打开 pom.xml,在 <dependencies> 中插入以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
注意:Spring Boot 5.5 尚未发布——当前最新稳定版为 3.3.x。若你实际使用的是 Spring Boot 3.3.x(常被误称为“5.5”),该依赖完全兼容;若真存在 5.5 版本,则需确认其是否仍沿用 spring-boot-starter-actuator 命名,否则构建会失败。
暴露基础监控端点
在 application.yml 中添加以下配置:
management:
endpoints:
web:
exposure:
include: health,info,metrics,env
这一步必须做。默认只暴露 /actuator/health 和 /actuator/info,其他如 /actuator/metrics 会返回 404。
【include 值必须用英文逗号分隔,不能有空格】
启用详细健康信息
默认 /actuator/health 只返回 { "status": "UP" },对运维毫无价值。
在 application.yml 中追加:
management:
endpoint:
health:
show-details: always
重启应用后,/actuator/health 将返回数据库连接、磁盘空间、自定义健康指示器等完整详情。
配置自定义端点路径
方法一:全局前缀调整
若需将所有端点从 /actuator/xxx 改为 /monitor/xxx,添加:
management:
endpoints:
web:
base-path: /monitor
方法二:单个端点重映射
仅修改 metrics 端点路径,保留其他不变:
management:
endpoint:
metrics:
path: /perf/metrics
注意:重映射后,原 /actuator/metrics 地址失效,必须访问新路径。
安全控制:开放部分端点给运维
第一步:引入 Spring Security 依赖(若尚未引入)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
第二步:创建 Security 配置类,放行指定端点:
@Configuration
public class ActuatorSecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http.authorizeHttpRequests()
.requestMatchers("/actuator/health", "/actuator/info").permitAll()
.requestMatchers("/actuator/**").hasRole("ACTUATOR")
.anyRequest().authenticated();
return http.build();
}
}
第三步:创建 ACTUATOR 角色用户
@Bean
public UserDetailsService userDetailsService() {
UserDetails user = User.withUsername("ops")
.password("{noop}123456")
.authorities("ROLE_ACTUATOR")
.build();
return new InMemoryUserDetailsManager(user);
}
此时,/actuator/health 可匿名访问,/actuator/metrics 需 Basic Auth 用户 ops:123456 才能访问。

















