通过引入 spring-boot-starter-actuator,可以使用 Spring Boot 为我们提供的准生产环境下的应用监控和管理功能。我们可以通过 HTTP, JMX, SSH 协议来进行操作,自动得到审计、健康及指标信息等 。
步骤:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
在 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
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/ spring.mvc.view.suffix=.Jsp