Spring Boot Actuator健康检查会检测哪些端点?
Spring Boot Actuator 健康检查探测逻辑说明
访问健康端点仅返回{"status":"UP"}是Actuator的默认行为:未开启详情展示时,接口只会返回所有健康检查项聚合后的全局状态,不会返回单个探测项的明细。
健康检查的默认探测规则
Actuator的健康检查基于*自动装配的健康指示器(HealthIndicator)*实现,只要项目classpath中存在对应组件的依赖、且完成了相关连接配置,对应的健康指示器就会自动生效,纳入全局状态的判定逻辑。常见的内置探测项包括:
PingHealthIndicator:默认强制启用,仅做简单连通性校验,固定返回UP状态,用于判断健康端点本身是否可正常响应DiskSpaceHealthIndicator:默认强制启用,检查应用部署路径所在磁盘的剩余可用空间,剩余空间低于配置阈值(默认10MB)时会标记为DOWNDataSourceHealthIndicator:项目配置了数据源/连接池时自动启用,校验是否可正常获取数据库连接、连接是否有效RedisHealthIndicator:项目引入Redis客户端依赖、配置了Redis连接工厂时自动启用,校验Redis服务连接状态,集群/哨兵模式下还会同步校验各节点状态MongoHealthIndicator:集成MongoDB客户端时自动启用,校验Mongo服务连接可用性ElasticsearchRestHealthIndicator:集成Elasticsearch高级客户端时自动启用,校验ES集群连接状态与集群健康度- 消息中间件健康指示器:集成RabbitMQ、Kafka、RocketMQ等消息组件客户端时自动启用,校验对应消息Broker的连接可用性
MailHealthIndicator:配置了JavaMailSender邮件发送客户端时自动启用,校验邮件服务器连接状态
全局状态的聚合遵循状态优先级判定规则:DOWN > OUT_OF_SERVICE > UP > UNKNOWN,只要任意一个生效的健康指示器返回非UP状态,全局状态就会对应变更,所有指示器返回UP时全局状态才为UP。
查看具体探测项明细的配置方法
如果需要查看当前应用实际生效的所有健康探测项及各自的状态,在配置文件中添加如下参数即可:
# 始终展示健康检查明细,生产环境可按需配置为when-authorized,仅对认证用户展示明细 management.endpoint.health.show-details=always
配置完成后重启应用,再访问http://localhost:8080/endpoints/health接口,就能看到所有被探测组件的单独状态、详情信息。
除官方提供的内置健康指示器外,自定义实现HealthIndicator接口的检查逻辑,也会自动被纳入全局健康状态的聚合判定中。
内容的提问来源于stack exchange,提问作者divyanshu gupta
相关产品推荐
相关产品推荐

