《SpringBoot Actuator:服务健康检查与监控配置》
·
SpringBoot Actuator:服务健康检查与监控配置
SpringBoot Actuator 是 Spring Boot 提供的生产级监控工具,通过 HTTP 或 JMX 端点暴露应用运行状态信息。以下是核心功能配置指南:
一、基础配置
- 添加依赖(Maven):
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
- 启用端点(application.yml):
management:
endpoints:
web:
exposure:
include: health,info,metrics # 开放健康检查、应用信息、性能指标
二、健康检查实现
-
默认健康端点:
- 访问路径:
/actuator/health - 响应示例:
{ "status": "UP", "components": { "diskSpace": { "status": "UP" }, "ping": { "status": "UP" } } }
- 访问路径:
-
自定义健康指示器:
@Component
public class CustomHealthIndicator implements HealthIndicator {
@Override
public Health health() {
boolean isServiceUp = checkExternalService(); // 自定义检测逻辑
return isServiceUp
? Health.up().build()
: Health.down().withDetail("error", "Service unavailable").build();
}
}
三、监控指标配置
-
核心监控项:
端点 路径 功能说明 Metrics /actuator/metricsJVM/系统性能指标 Info /actuator/info应用版本信息 Env /actuator/env环境变量配置 -
自定义指标:
@RestController
public class MetricsController {
private final Counter requestCounter = Metrics.counter("custom.requests");
@GetMapping("/api/data")
public String getData() {
requestCounter.increment(); // 记录API调用次数
return "response data";
}
}
四、安全防护
spring:
security:
user:
name: admin
password: securepass
management:
endpoints:
web:
base-path: /manage # 修改默认路径
五、高级功能
-
健康状态聚合:
management: endpoint: health: show-components: always # 显示详细组件状态 group: custom: include: diskSpace,customHealth # 组合多个指示器- 访问路径:
/actuator/health/custom
- 访问路径:
-
Prometheus 集成:
<dependency> <groupId>io.micrometer</groupId> <artifactId>micrometer-registry-prometheus</artifactId> </dependency>- 自动暴露
/actuator/prometheus端点
- 自动暴露
最佳实践:
- 生产环境仅暴露必要端点(推荐
health,prometheus)- 通过
management.server.port设置独立监控端口- 结合 Spring Security 配置端点访问权限
- 使用
@EndpointWebExtension定制端点响应格式
通过以上配置,可实现对 Spring Boot 应用的实时健康诊断与性能监控,快速定位运行时异常。
更多推荐



所有评论(0)