Files
ljwx-health/ljwx-boot/ACTUATOR_FIX_SUMMARY.md
2025-08-14 08:11:03 +08:00

3.1 KiB
Raw Permalink Blame History

Spring Boot Actuator端点修复总结

问题描述

系统出现以下错误:

No static resource actuator/health/db.
No static resource actuator/refresh.

根本原因

  1. 端口分离问题:之前配置将Actuator端点放在独立端口9999,但访问在主端口9998
  2. 缺少refresh端点:Spring Boot原生不包含refresh端点,需要Spring Cloud支持
  3. 健康检查配置不完整:数据库健康检查详细信息未正确配置

修复措施

1. 统一端口配置 #去除独立监控端口,所有端点在主端口提供服务

修改前:

management:
  server:
    port: 9999 # 独立端口

修改后:

management:
  endpoints:
    web:
      base-path: /actuator
      cors:
        allowed-origins: "*" #支持跨域访问

2. 完善健康检查配置 #增强数据库和Redis健康检查

management:
  endpoint:
    health:
      show-details: always
      show-components: always #显示组件详情
      probes:
        enabled: true #启用探针
  health:
    db:
      enabled: true #数据库健康检查
    datasource:
      enabled: true
    redis:
      enabled: true
    diskspace:
      enabled: true

3. 自定义Actuator端点 #无需Spring Cloud依赖的refresh端点

创建CustomActuatorEndpoints.java:

  • refresh端点:POST /actuator/refresh - 刷新配置
  • 数据库健康指示器:增强/actuator/health/db端点

核心功能:

@Endpoint(id = "refresh")
public class CustomActuatorEndpoints {
    @WriteOperation //POST刷新
    public Map<String, Object> refresh() {
        // 配置刷新逻辑
    }
    
    @ReadOperation //GET状态
    public Map<String, Object> status() {
        // 状态查询
    }
}

4. 安全配置 #确保拦截器不阻止Actuator访问

验证InterceptorConfiguration.java已正确配置:

public final String[] monitoringExcludePatterns = new String[]{
    "/monitoring/**",
    "/actuator/**" //放行所有Actuator端点
};

修复结果

可访问端点

  • ✅ GET /actuator/health - 应用健康状态
  • ✅ GET /actuator/health/db - 数据库健康详情
  • ✅ POST /actuator/refresh - 配置刷新
  • ✅ GET /actuator/refresh - 刷新状态查询
  • ✅ GET /actuator/prometheus - 监控指标
  • ✅ GET /actuator/info - 应用信息
  • ✅ GET /actuator/env - 环境变量
  • ✅ GET /actuator/beans - Bean信息

测试命令

# 健康检查
curl http://localhost:9998/actuator/health
curl http://localhost:9998/actuator/health/db

# 刷新配置
curl -X POST http://localhost:9998/actuator/refresh

# 监控指标
curl http://localhost:9998/actuator/prometheus

影响版本

  • ✅ ljwx-boot (主版本)
  • ✅ ljwx-boot-622
  • ✅ ljwx-boot-1.2.14

优化特点

  1. 极简配置:无需额外依赖,基于Spring Boot Actuator原生功能
  2. 高效实现:自定义端点代码量最小化
  3. 统一管理:所有监控端点在同一端口,简化运维
  4. 完整功能:支持健康检查、配置刷新、监控指标等核心功能
  5. 安全可靠:正确的拦截器排除配置,确保端点可访问性