Spring Boot集成Actuator的过程(新手必看)
Actuator 是 Spring Boot 提供的应用系统监控的开源框架,它是 Spring Boot 体系中非常重要的组件。它可以轻松实现应用程序的监控治理,支持通过众多 REST 接口、远程 Shell 和 JMX 收集应用的运行情况。
Actuator 的核心是端点(Endpoint),它用来监视、提供应用程序的信息,Spring Boot 提供的 spring-boot-actuator 组件中已经内置了非常多的 Endpoint(health、info、beans、metrics、httptrace、shutdown 等),每个端点都可以启用和禁用。
Actuator 也允许我们扩展自己的端点。通过 JMX 或 HTTP 的形式暴露自定义端点,Actuator会将自定义端点的 ID 默认映射到一个带 /actuator 前缀的 URL。比如,health端点默认映射到 /actuator/health。这样就可以通过 HTTP 的形式获取自定义端点的数据。
Actuator 同时还可以与外部应用监控系统整合,比如 Prometheus、Graphite、DataDog、Influx、Wavefront、New Relic 等。这些系统提供了非常好的仪表盘、图标、分析和告警等功能,使得你可以通过统一的接口轻松地监控和管理你的应用系统。这对于实施微服务的中小团队来说,无疑是一种快速高效的解决方案。
首先,创建一个 Spring Boot 项目来添加 spring-boot-starter-actuator 依赖:
然后,修改配置文件,配置 Actuator 端点:

图 1 actuator 数据查询接口
如上图所示,Actuator 提供了丰富的数据接口,包括 /actuator/health、/actuator/env、/actuator/metrics 等。下面我们请求其中的一个地址 /actuator/health,查看接口返回的详细信息。

图 2 /actuator/health数据查询接口
如上图所示,/health 接口返回了系统详细的健康状态信息,包括系统的状态(UP为正常)、磁盘使用情况等信息。
Actuator 的核心是端点(Endpoint),它用来监视、提供应用程序的信息,Spring Boot 提供的 spring-boot-actuator 组件中已经内置了非常多的 Endpoint(health、info、beans、metrics、httptrace、shutdown 等),每个端点都可以启用和禁用。
Actuator 也允许我们扩展自己的端点。通过 JMX 或 HTTP 的形式暴露自定义端点,Actuator会将自定义端点的 ID 默认映射到一个带 /actuator 前缀的 URL。比如,health端点默认映射到 /actuator/health。这样就可以通过 HTTP 的形式获取自定义端点的数据。
Actuator 同时还可以与外部应用监控系统整合,比如 Prometheus、Graphite、DataDog、Influx、Wavefront、New Relic 等。这些系统提供了非常好的仪表盘、图标、分析和告警等功能,使得你可以通过统一的接口轻松地监控和管理你的应用系统。这对于实施微服务的中小团队来说,无疑是一种快速高效的解决方案。
Spring Boot集成Actuator
在 Spring Boot 项目中集成 Actuator 非常简单,只需要在项目中添加 spring-boot-starter-actuator 组件,就能自动启动应用监控的功能。首先,创建一个 Spring Boot 项目来添加 spring-boot-starter-actuator 依赖:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>如上面的示例所示,我们添加了 actuator 和 web 两个组件。spring-boot-starter-actuator 除了可以监控 Web 系统外,还可以监控后台服务等 Spring Boot 应用。
然后,修改配置文件,配置 Actuator 端点:
# 打开所有的监控点 management.endpoints.web.exposure.include=* management.endpoint.health.show-details=always最后,启动项目并在浏览器中输入 http://localhost:8080/actuator,我们可以看到返回的是 Actuator 提供的各种数据接口信息。

图 1 actuator 数据查询接口
如上图所示,Actuator 提供了丰富的数据接口,包括 /actuator/health、/actuator/env、/actuator/metrics 等。下面我们请求其中的一个地址 /actuator/health,查看接口返回的详细信息。

图 2 /actuator/health数据查询接口
如上图所示,/health 接口返回了系统详细的健康状态信息,包括系统的状态(UP为正常)、磁盘使用情况等信息。