在 pom.xml
文件中添加以下依赖:
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-actuatorartifactId>
dependency>
Spring Boot 默认的 Actuator 端点访问地址是:
http://localhost:8080/actuator
若希望自定义访问路径(如改为 /Myactuator
),需在 application.yml
中添加如下配置:
management:
endpoints:
web:
base-path: /Myactuator
配置后访问地址变为:
http://localhost:8080/Myactuator
默认情况下,Actuator 只暴露部分端点(如 health
和 info
)。为了访问所有可用端点,可添加如下配置:
management:
endpoints:
web:
base-path: /actuator
exposure:
include: "*"
说明:
include: "*"
表示暴露所有端点;如需按需暴露,可填写具体端点名,如:include: health,info,metrics
。
如需开放指定端点如 health
端点:
management:
endpoint:
health:
enabled: true
默认情况下,请求 127.0.0.1:8080/actuator/health 的响应信息如下:
{"status":"UP"}
如需展示详细信息,需进行如下配置:
management:
endpoint:
health:
show-details: always
management:
info:
env:
enabled: true
拓展:展示项目信息
info:
app:
name: "视频AI审核系统"
version: "v1.0.0"
description: "视频AI审核系统"
端点名称 | 说明 |
---|---|
/actuator/health |
应用健康状态 |
/actuator/info |
应用配置信息(通过 info.* 配置) |
/actuator/metrics |
应用指标信息(CPU、内存、线程等) |
/actuator/env |
当前环境属性配置 |
/actuator/beans |
Spring 容器中的 Bean 列表 |
/actuator/mappings |
所有请求映射路径 |
/actuator/threaddump |
当前线程快照 |
/actuator/loggers |
日志级别控制接口 |
Spring Boot Monitor 可以对 Spring Boot 应用做监控,对 Spring Boot Actuator 的指标做显示。工具来源于 Spring Boot Admin,只能整合在 Spring Boot 应用内使用。
引入依赖
<dependency>
<groupId>cn.pomitgroupId>
<artifactId>spring-boot-monitorartifactId>
<version>0.0.4version>
dependency>
应用启动后,访问以下地址即可查看监控可视化界面:
http://localhost:8080/monitor
可查看应用的基本信息、内存、线程、GC、健康状态等指标。
由于 Actuator 和 Monitor 会暴露较多系统信息,必须进行访问控制。
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-securityartifactId>
dependency>
spring:
security:
user:
name: admin
password: admin
roles: ADMIN
@Configuration
@EnableWebSecurity
public class SecurityConfig {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.authorizeHttpRequests(auth -> auth
// 登录后可以访问 monitor 页面
.requestMatchers(new AntPathRequestMatcher("/monitor/**")).hasRole("ADMIN")
// 登录后可以访问 actuator 接口
.requestMatchers(new AntPathRequestMatcher("/actuator/**")).hasRole("ADMIN")
// 其他请求全部放行
.anyRequest().permitAll()
)
.httpBasic(Customizer.withDefaults());
return http.build();
}
}
注意:Spring Security 默认会在角色前添加
ROLE_
前缀,因此hasRole("ADMIN")
实际匹配的是ROLE_ADMIN
。