Spring Boot与监控管理(Actuator)

    科技2025-06-15  23

    一、监控管理

    ​ 通过引入spring-boot-starter-actuator,可以使用Spring Boot为我们提供的准生产环境下的应用监控和管理功能。我们可以通过HTTP, JMX, SSH协议来进行操作,自动得到审计、健康及指标信息等 。

    步骤:

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

    通过http方式访问监控点端点

    首先在配置文件中把端点暴露出来

    在application.properties中配置端点,

    暴露部分端点

    management.endpoints.web.exposure.include=info,health,beans,env

    暴露所有端点

    management.endpoints.web.exposure.include=*

    不暴露beans端点

    management.endpoints.web.exposure.exclude=beans

    在上述配置中,首先使用 management.endpoints.web.exposure.include 暴露所有的端点,接着使用management.endpoints .web.exposure.exclud 排除 en 端点,这样就能够暴露除 env 外的所有 ctuator端点了。

    http://localhost:8080/actuator/health 访问项目监控需要加前缀 /actuator

    ​ 如果不在配置文件中配置把端口暴露出来,则会出现以下这样的情况。

    ​ 因为actuator默认只支持端点 /health、/info 所以访问 /env 会出现404页面。

    监控点和管理端点

    端点名描述autoconfig所有自动配置信息auditevents审计事件beans所有Bean的信息configprops所有配置属性dump线程状态信息env当前环境信息health应用健康状况info当前应用信息metrics应用的各项指标mappings应用@RequestMapping映射路径shutdown关闭当前应用(默认关闭)trace追踪信息(最新的http请求)

    *示例:*访问必须添加前缀/actuator

    可进行shutdown (POST提交, 此端点默认关闭)

    在配置文件中配置

    #启用shutdown management.endpoint.shutdown.enabled=true

    二、定制端点

    # Actuator 管理端口 management.server.port=8000

    #暴露 有端 management.endpoints.web.exposure.include =女

    #默认情况下 有端点都不启用,此时需要按需启用端点 management.endpoints.enabled-by-default=false

    #启用端点 info management.endpoint.info.enabled=true

    #启用端点 beans management.endpoint.beans.enabled=true

    #启用端点 configprops management.endpoint.configprops.enabled=true

    #启用端点 env management.endpont.env.enabled=true

    #启用端点 health management.endpoint.health.enabled=true

    #启用端点 mappings management.endpont.mappings.enabed=true

    #启用端点 shutdown management.endpoint.shutdown.enabled=true

    /# Actuator 端点前缀 management.endpoints.web.base -path=/manage

    #将原来的 mappings 端点的请求路径修改为 urlMappings management.endpoints.web.path-mapping.mappings=request_mappings

    # Spring MVC 视图解析器配置 spring.mvc.view.prefix=/WEB-INF/jsp/ dpoints.web.path-mapping.mappings=request_mappings

    # Spring MVC 视图解析器配置 spring.mvc.view.prefix=/WEB-INF/jsp/ spring.mvc.view.suffix=.Jsp

    Processed: 0.015, SQL: 8