spring boot actuator监控应用状态需三步:加依赖(spring-boot-starter-actuator和web)、配置暴露端点(如health、metrics等)、访问端点查看数据;它是生产环境判断服务健康的核心基础设施。

Spring Boot 使用 Actuator 监控应用状态,核心就三步:加依赖、开端点、看数据。它不是可有可无的附加功能,而是生产环境里判断“服务到底算不算活着”的基础设施。
添加 Actuator 依赖
在 pom.xml 中引入 starter:
-
spring-boot-starter-actuator是必须的; -
spring-boot-starter-web也是必需的(否则 HTTP 端点无法访问); - 如需对接 Prometheus,再加
micrometer-registry-prometheus。
配置暴露哪些监控端点
Actuator 默认只开放 /actuator/health 和 /actuator/info,其余端点需显式启用。推荐在 application.yml 中配置:
- 用
management.endpoints.web.exposure.include: health,info,metrics,loggers,env,beans,mappings按需开启,不建议直接写"*"(生产环境有安全风险); - 设
management.endpoint.health.show-details: always才能看到数据库、磁盘、Redis 等组件的详细健康状态; - 可选配
management.endpoints.web.base-path: /monitor把所有端点前缀从/actuator改成更隐蔽的路径。
常用端点怎么看、怎么用
启动后,访问 http://localhost:8080/monitor(或默认的 /actuator)能列出所有已启用端点。关键几个:
-
/monitor/health:返回
{"status":"UP"}表示整体健康;加?showDetails=always可见各依赖(DB、Redis、Disk)是否正常;K8s 的 liveness/readiness 探针就靠它; -
/monitor/metrics:查看 JVM 内存、线程数、HTTP 请求总数等;配合
/monitor/metrics/jvm.memory.used这类子路径查具体指标; -
/monitor/loggers:动态调日志级别,比如 POST
{"configuredLevel": "DEBUG"}到/monitor/loggers/com.example.service,不用重启就能临时排查问题; - /monitor/env 和 /monitor/mappings:查实际生效的配置项、所有接口路由映射,上线后配置没生效?路由写错了?这里一眼定位。
安全与生产注意事项
Actuator 暴露的是应用内部快照,不能裸奔在公网:
- 敏感端点如
/env、/beans、/shutdown必须配合 Spring Security 控制访问权限; - 建议将监控端口(如
management.server.port: 8081)与业务端口分离,再通过反向代理+IP 白名单限制访问来源; - 避免在生产启用
heapdump或threaddump端点,除非明确需要且已评估性能影响。











