自学内容网 自学内容网

SpringBoot开发——整合Actuator监控和管理Spring Boot 应用

文章目录

  • 1、Spring Boot Actuator
  • 2、启用Spring Boot Actuator
    • 2.1项目中添加Spring Boot Actuator依赖
    • 2.2 启动项目,查看监控信息
  • 3、Spring Boot Actuator提供的端点(Endpoints)
    • 3.1 端点列表
    • 3.2 启用终端节点
    • 3.3 暴露端点
    • 3.4 常用端点详解

1、Spring Boot Actuator

Spring Boot Actuator 是一个用于监控和管理你 Spring Boot 应用的框架。可以选择使用 HTTP 终端节点JMX 来管理和监控您的应用程序。Spring Boot Actuator提供了许多内置的端点Endpoints),允许你访问应用程序的运行时信息,如健康检查、环境属性、日志、指标、线程转储等。

Spring Boot Actuator的官方网站是:
https://docs.spring.io/spring-boot/docs/2.4.5/reference/htmlsingle/#production-ready

2、启用Spring Boot Actuator

2.1项目中添加Spring Boot Actuator依赖

项目的pom.xml文件中添加Spring Boot Actuator相关依赖:

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

2.2 启动项目,查看监控信息

启动项目,在浏览器中输入:http://localhost:8000/actuator,显示:
在这里插入图片描述
这里显示的三个接口是Spring Boot Actuator默认提供的三个暴露的可以让我们使用的端点(Endpoints)。比如,访问http://localhost:8000/actuator/health,显示:
在这里插入图片描述

3、Spring Boot Actuator提供的端点(Endpoints)

Spring Boot Actuator提供了很多端点,只需要我们进行配置便可使用。

3.1 端点列表

Spring Boot Actuator提供的端点(Endpoints)包括:
在这里插入图片描述
如果您的应用程序是 Web 应用程序Spring MVCSpring WebFluxJersey),则可以使用以下附加端点:

终端节点 描述
heapdump 返回堆转储文件。hprof
jolokia 通过 HTTP 公开 JMX bean(当 Jolokia 位于 Classpath 上时,不可用于 WebFlux)。 需要依赖 。jolokia-core
logfile 返回日志文件的内容(如果已设置 或 属性)。 支持使用 HTTP 标头检索日志文件的部分内容。logging.file.namelogging.file.pathRange
prometheus 以 Prometheus 服务器可抓取的格式公开指标。 需要依赖 。micrometer-registry-prometheus

3.2 启用终端节点

默认情况下,除shutdown之外的所有端点都处于启用状态。 要配置端点的启用,可以在application.yml文件中进行设置。 比如要启用shutdown端点

management:
  endpoint:
    shutdown:
      enabled: true

如果只想启用某个端点,比如:info,而其它端点都不启用,可以通过下面的方式实现:

management:
  endpoints:
    enabled-by-default: false
  endpoint:
    info:
      enabled: true

3.3 暴露端点

由于 Endpoints 可能包含敏感信息,因此应仔细考虑项目中是否暴露端点。
下面的表中展示了内置端点默认是否暴露 :

端点 JMX Web
auditevents Yes No
beans Yes No
caches Yes No
conditions Yes No
configprops Yes No
env Yes No
flyway Yes No
health Yes Yes
heapdump N/A No
httptrace Yes No
info Yes Yes
integrationgraph Yes No
jolokia N/A No
logfile N/A No
loggers Yes No
liquibase Yes No
metrics Yes No
mappings Yes No
prometheus N/A No
scheduledtasks Yes No
sessions Yes No
shutdown Yes No
startup Yes No
threaddump Yes No

如果想要更改某个端点是否暴露,可以使用特定的includeexclude 属性进行设置::

属性 默认值
management.endpoints.jmx.exposure.exclude
management.endpoints.jmx.exposure.include *
management.endpoints.web.exposure.exclude
management.endpoints.web.exposure.include info, health

例如,想要停止通过JMX 公开所有端点,而只公开healthinfo端点,进行如下设置:

management:
  endpoints:
    jmx:
      exposure:
        include: "health,info"

*可用于选择所有端点。 比如,想要通过 HTTP 公开除envbeans 之外的所有内容,进行如下设置:

management:
  endpoints:
    web:
      exposure:
        include: 

原文地址:https://blog.csdn.net/bjzhang75/article/details/142737809

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!