Spring Boot 2.x 使用Actuator来做应用监控
Actuator 组件
Spring-boot-actuator module 可帮助您在将应用程序投入生产时监视和管理应用程序。您可以选择使用 HTTP 端点或 JMX 来管理和监控您的应用程序。Auditing, health, and metrics gathering 也可以自动应用于您的应用程序。
添加依赖,开启监控
<!-- Actuator -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
特性
Endpoints
Actuator endpoints 允许你去监控和操作你的应用。SpringBoot包含了许多内置的端点,当然你也可以添加自己的端点。比如 health 端点就提供了基本的应用健康信息。
Metrics
Spring Boot Actuator 提供 dimensional metrics 通过集成 Micrometer.
Audit
Spring Boot Actuator 有一套灵活的审计框架会发布事件到 AuditEventRepository。
2.0 更新
- 基础路径更新
- 基础路径由 / 调整到 /actuator 下
- 启动端点 endpoint
- 默认只启动了 health 和 info 端点,可以通过 application.yml 配置修改:
status endpoint 已经被删除了,现在改成了health。这个health 端点既可以展示status也可以有更多的细节。 health 端点现在默认是被暴露的(只展示status)。如果你希望展示更多的细节信息,可以通过修改属性management.endpoints.health.show-details来实现:
### 应用监控配置
#management.security.enabled=false
management.endpoint.health.show-details = always
management.endpoints.web.exposure.include=health,info,env,metrics,beans
info.app.encoding=@project.build.sourceEncoding@
info.app.java.source=@java.version@
info.app.java.target=@java.version@
*可以用来选择所有端点。例如,要通过HTTP公开除env和beans端点之外的所有内容,请使用以下属性:
management.endpoints.web.exposure.include=*
management.endpoints.web.exposure.exclude=env,beans
健康信息
您可以使用健康信息来检查正在运行的应用程序的状态。当生产系统停机时,它经常被监控软件用来提醒某人。health端点公开的信息取决于management.endpoint.health.show-details属性,该属性可以使用以下值之一进行配置:
Name
Description
never
细节永远不会显示。
when-authorized
详细信息仅向授权用户显示。授权角色可以使用management.endpoint.health.roles进行配置。
always
详细信息显示给所有用户。
默认值为never。
在Intellij IDEA 开发工具中,也可以看到暴露的Endpoints 信息。
访问 actuator 暴露的端点:
http://localhost:8080/actuator
http://localhost:8080/actuator/health
http://localhost:8080/actuator/info