Spring Boot 包含许多额外的功能,以帮助你在生产环境中监控或管理你的应用程序。你可以选择使用 HTTP 端点或者 JMX 来管理和监控应用程序。审计,健康和指标收集会自动应用于你的程序。
1. Enabling Production-ready Features模块 spring-boot-actuator 提供了所有 Spring Boot 的生产特色。启用该功能的方式就是添加一个 spring-boot-starter-actuator 依赖:
2. Endpointsorg.springframework.boot spring-boot-starter-actuator
Actuator 端点可以让你监控和与应用程序交互。Spring Boot 包含许多内置端点,并且允许你添加自己的端点。例如,health 端点提供基本的应用健康信息。
2.1. Enabling Endpoints
默认地,除了 shutdown 端点之外,其他所有端点都是启用的(不一定暴露)。如果要配置,使用 management.endpoint.
management.endpoint.shutdown.enabled=true
如果你希望选择性的启用端点,可以使用如下配置:
// 默认关闭 management.endpoints.enabled-by-default=false management.endpoint.info.enabled=true
禁用的端点将会完全从应用上下文中移除。如果仅仅更改端点曝光与否,使用 include 和 exclude 属性。
2.2. Exposing Endpoints
由于端点可能包含敏感信息,应该仔细考虑是否暴露。官网给出了内置端点的默认暴露。Web 环境下,只暴露了 info 和 health 端点。
exclude 优先级比 include 高。
如果需要在 Web 环境下暴露除了 env 和 beans 的端点,可以如下配置:
management.endpoints.web.exposure.include=* management.endpoints.web.exposure.exclude=env,beans
yml 中 * 有特殊含义,因此需要用双引号包裹:
management:
endpoints:
web:
exposure:
include: "*"
2.8. Health Information
使用 health 信息来检查运行时应用的状态。通常,它被监控软件使用,来提醒我们何时生产系统宕机了。
health 端点依赖于 management.endpoint.health.show-details 和 management.endpoint.health.show-components 属性,它们可选值如下:
| 名称 | 描述 |
|---|---|
| never | 不展示细节 |
| when-authorized | 只给认证用户展示细节。认证角色可以通过 management.endpoint.health.roles 配置 |
| always | 给所有用户展示细节 |
默认是 never。当用户处于一个或多个端点角色时,被认为是授权的。如果端点没有配置角色(默认行为),则将认为所有认证的用户都被授权。角色可以通过 management.endpoint.health.roles 配置。



