Spring Boot 2.x 使用Actuator来做应用监控

zmysna 2019-04-21

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

Spring Boot 2.x 使用Actuator来做应用监控

健康信息

您可以使用健康信息来检查正在运行的应用程序的状态。当生产系统停机时,它经常被监控软件用来提醒某人。health端点公开的信息取决于management.endpoint.health.show-details属性,该属性可以使用以下值之一进行配置:

Name

Description

never

细节永远不会显示。

when-authorized

详细信息仅向授权用户显示。授权角色可以使用management.endpoint.health.roles进行配置。

always

详细信息显示给所有用户。

默认值为never。

在Intellij IDEA 开发工具中,也可以看到暴露的Endpoints 信息。

Spring Boot 2.x 使用Actuator来做应用监控

访问 actuator 暴露的端点:

http://localhost:8080/actuator

Spring Boot 2.x 使用Actuator来做应用监控

http://localhost:8080/actuator/health

Spring Boot 2.x 使用Actuator来做应用监控

http://localhost:8080/actuator/info

Spring Boot 2.x 使用Actuator来做应用监控

相关推荐