06_项目集成 Spring Actuator 并实现可视化页面
📊 06_项目集成 Spring Actuator 并实现可视化页面
🧩 一、引入 Spring Actuator 依赖
在 pom.xml
文件中添加以下依赖:
<!-- Spring Boot Actuator -->
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
⚙️ 二、Spring Actuator 配置
2.1 配置端点访问前缀
Spring Boot 默认的 Actuator 端点访问地址是:
http://localhost:8080/actuator
若希望自定义访问路径(如改为 /Myactuator
),需在 application.yml
中添加如下配置:
management:endpoints:web:base-path: /Myactuator
配置后访问地址变为:
http://localhost:8080/Myactuator
2.2 暴露所有端点
默认情况下,Actuator 只暴露部分端点(如 health
和 info
)。为了访问所有可用端点,可添加如下配置:
management:endpoints:web:base-path: /actuatorexposure:include: "*"
说明:
include: "*"
表示暴露所有端点;如需按需暴露,可填写具体端点名,如:include: health,info,metrics
。
2.3 启用指定端点
如需开放指定端点如 health
端点:
management:endpoint:health:enabled: true
2.4 开放 health 端点的详细信息
默认情况下,请求 127.0.0.1:8080/actuator/health 的响应信息如下:
{"status":"UP"}
如需展示详细信息,需进行如下配置:
management:endpoint:health:show-details: always
2.5 启用 info 端点(info 端点和其他端点启用方式略有不同)
management:info:env:enabled: true
拓展:展示项目信息
info:app:name: "视频AI审核系统"version: "v1.0.0"description: "视频AI审核系统"
🔍 三、Actuator 常见端点说明
端点名称 | 说明 |
---|---|
/actuator/health | 应用健康状态 |
/actuator/info | 应用配置信息(通过 info.* 配置) |
/actuator/metrics | 应用指标信息(CPU、内存、线程等) |
/actuator/env | 当前环境属性配置 |
/actuator/beans | Spring 容器中的 Bean 列表 |
/actuator/mappings | 所有请求映射路径 |
/actuator/threaddump | 当前线程快照 |
/actuator/loggers | 日志级别控制接口 |
🖥️ 四、可视化页面集成
4.1 使用 Spring Boot Monitor 实现可视化界面
Spring Boot Monitor 可以对 Spring Boot 应用做监控,对 Spring Boot Actuator 的指标做显示。工具来源于 Spring Boot Admin,只能整合在 Spring Boot 应用内使用。
引入依赖
<dependency><groupId>cn.pomit</groupId><artifactId>spring-boot-monitor</artifactId><version>0.0.4</version>
</dependency>
4.2 访问方式
应用启动后,访问以下地址即可查看监控可视化界面:
http://localhost:8080/monitor
可查看应用的基本信息、内存、线程、GC、健康状态等指标。
五、安全配置
由于 Actuator 和 Monitor 会暴露较多系统信息,必须进行访问控制。
5.1 引入安全配置依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</artifactId>
</dependency>
5.2 配置登录账号密码
spring:security:user:name: adminpassword: adminroles: ADMIN
5.3 添加请求校验配置类
@Configuration
@EnableWebSecurity
public class SecurityConfig {@Beanpublic 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
。