贝利信息

Spring Boot Actuator健康检查返回"DOWN"状态的解决方案

日期:2026-01-10 00:00 / 作者:心靈之曲

spring boot升级至2.7.5后,`/actuator/health` 接口默认返回`"code":"down"`,主因是健康检查细节未启用且部分依赖(如springfox)引发配置冲突;通过启用健康详情并合理配置探测策略即可修复。

在 Spring Boot 2.7+ 版本中,Actuator 的 /actuator/health 端点默认采用 SHOW_HEALTH_DETAILS_WHEN_AUTHORIZED 策略(即仅当用户认证且具备 ACTUATOR 权限时才显示详细健康状态),否则即使所有组件健康,响应体中 status.code 也可能被强制设为 "DOWN",同时 description 为空——这并非实际服务异常,而是安全策略导致的展示限制

要解决该问题,需显式配置健康端点的可见性策略。最直接有效的方式是在 application.properties 中添加:

management.endpoint.health.show-details=always

或在 application.yml 中等效配置为:

management:
  endpoint:
    health:
      show-details: always

✅ 此配置将始终暴露健康详情(包括各组件状态、原因等),使 status.code 准确反映真实运行状况(如 "UP" 或 "DOWN" 并附带具体原因)。

⚠️ 注意事项:

总结:"DOWN" 响应多为配置缺失所致,而非服务故障。优先启用健康详情,再结合依赖兼容性治理(如迁出 Springfox),即可快速恢复 /actuator/health 的准确语义与可观测性。