【SpringBoot学习】22、SpringBoot 集成 Actuator 监控

什么是 Actuator?

从本质上讲,Actuator为我们的应用程序带来了生产就绪功能。

通过这种依赖关系监控我们的应用程序,收集指标,了解流量或数据库的状态变得微不足道。

这个库的主要好处是我们可以获得生产级工具,而无需自己实际实现这些功能。

Actuator 主要用于公开有关正在运行的应用程序的运行信息 - 运行状况,指标,信息,转储,env 等。它使用HTTP端点或JMX bean来使我们能够与它进行交互。

一旦这个依赖关系在类路径上,就可以开箱即用几个端点。与大多数Spring模块一样,我们可以通过多种方式轻松配置或扩展它。

准备工作

要启用Spring Boot Actuator,我们只需要将spring-boot-starter-actuator依赖项添加到我们的包管理器中。在 Maven:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

请注意,无论 Boot 版本如何,这都保持有效,因为Spring Boot Bill of Materials(BOM)中指定了版本。

修改 application.yml

management:
  server:
    #actuator端口
    port: 9001
  endpoints:
    web:
      #修改访问路径  2.0之前默认是/   2.0默认是 /actuator  可以通过这个属性值修改
      base-path: /actuator
      exposure:
        #开放所有页面节点  默认只开启了health、info两个节点
        include: "*"
  endpoint:
    health:
      #显示健康具体信息  默认不会显示详细信息
      show-details: always

相关的配置注解这里已经写的很清楚了,需要注意的是,本文使用的springboot版本为springboot 2.1.3.RELEASE,只要是使用2.x的版本,基本上没有区别。

断点概念

通过执行器端点,您可以监控应用程序并与之交互。Spring Boot包含许多内置端点,允许您添加自己的端点。例如, health端点提供基本的应用程序健康信息。

可以启用或禁用每个端点。它控制是否创建端点并且其bean存在于应用程序上下文中。要进行远程访问,还必须通过JMXHTTP公开端点 。大多数应用程序选择HTTP,其中端点的 ID 以及前缀/actuator 映射到 URL。例如,默认情况下,health端点映射到 /actuator/health

下面的端点都是可用的:

ID 描述 默认启用
auditevents 显示当前应用程序的审计事件信息 Yes
beans 显示一个应用中所有Spring Beans的完整列表 Yes
conditions 显示配置类和自动配置类configuration and auto-configuration classes的状态及它们被应用或未被应用的原因 Yes
configprops 显示一个所有@ConfigurationProperties的集合列表 Yes
env 显示来自 Spring 的 ConfigurableEnvironment的属性 Yes
flyway 显示数据库迁移路径,如果有的话 Yes
health 显示应用的健康信息(当使用一个未认证连接访问时显示一个简单的status,使用认证连接访问则显示全部信息详情) Yes
info 显示任意的应用信息 Yes
liquibase 展示任何Liquibase数据库迁移路径,如果有的话 Yes
metrics 展示当前应用的metrics信息 Yes
mappings 显示一个所有@RequestMapping路径的集合列表 Yes
scheduledtasks 显示应用程序中的计划任务 Yes
sessions 允许从Spring会话支持的会话存储中检索和删除retrieval and deletion用户会话。使用Spring Session对反应性 Web 应用程序的支持时不可用。 Yes
shutdown 允许应用以优雅的方式关闭(默认情况下不启用) No
threaddump 执行一个线程dump Yes

如果使用web应用Spring MVC, Spring WebFlux, 或者 Jersey,你还可以使用以下端点:

ID 描述 默认启用
heapdump 返回一个 GZip 压缩的 hprof 堆 dump 文件 Yes
jolokia 通过 HTTP 暴露JMX beans(当 Jolokia 在类路径上时,WebFlux 不可用) Yes
logfile 返回日志文件内容(如果设置了logging.file 或logging.path属性的话),支持使用HTTP Range头接收日志文件内容的部分信息 Yes
prometheus 以可以被 Prometheus 服务器抓取的格式显示 metrics 信息 Yes

注意

Spring Boot 2.0的端点和之前的版本有较大不同,使用时需注意。另外,端点的监控机制也有很大不同,启用了不代表可以直接访问,还需要将其暴露出来,传统的management.security管理已被标记为不推荐,现在一般使用单独启用并暴露。

测试监控

启动项目完成之后,浏览器访问,application.yml中配置的actuator端口,再加上base-path的前缀即可。例如本文的访问路径为:http://localhost:9001/actuator/health,这个地址就是查看健康状况的监控,其他的相关监控也是同样的方式测试。

跟多的配置详解,以及端口的操作,可以查看以下的相关链接,更进一步的学习。

相关链接

微信公众号

每天Get一个小技巧

Guess you like

Origin blog.csdn.net/qq_38762237/article/details/121494115