Spring Boot 使用actuator监控与管理


微服务架构下,庞大的系统拆分成多个独立的系统,应用部署的的数量增加,维护的复杂性增加,为了高效的运维,需要一套自动化的监控运维机制,为了使运维系统获取各微服务应用的相关指标,spring boot提供spring-boot-starter-actuator模块,提供一系列监控的端点.

入门demo:

  环境:springboot版本:2.1.3.RELEASE

  在spring boot工程的基础上添加依赖

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

 启动访问:http://localhost/actuator/health

 

spring-boot-starter-actuator提供多个默认端点,可以启用或禁用每个端点。要远程访问端点,还必须通过JMX或HTTP公开端点。大多数应用程序选择HTTP,其中端点的ID加上/actuator的前缀映射到URL,例如上面,显示应用程序健康信息的URL./actuator/health.提供的端点有:

ID Description web默认是否开启
auditevents 为当前应用程序公开审计事件信息 No
beans 显示应用程序中所有Spring bean的完整列表 No
caches 公开可用的缓存 No
conditions 显示在配置和自动配置类上评估的条件,以及它们匹配或不匹配的原因 No
configprops 显示所有已整理的@ConfigurationProperties修饰的列表 No
env Spring的ConfigurableEnvironment公开属性 No
health 显示应用程序健康信息 Yes
heapdump 生成堆信息文件 No
httptrace 显示HTTP跟踪信息(默认情况下,最后100个HTTP请求-响应交换) No
info 显示应用程序信息 Yes
metrics 显示当前应用程序的“度量”信息 No
mappings 显示所有@RequestMapping路径的列表 No
scheduledtasks 显示应用程序中的计划任务 No
threaddump 执行线程转储 No

由于端点可能包含敏感信息,因此应该仔细考虑何时公开它们,默认情况下web下只公开info, health两个端点,可以通过application.properties配置控制

management.endpoints.web.exposure.include=*
management.endpoints.web.exposure.exclude=env,beans

如上:management.endpoints.web.exposure.include=*  代表公开使用端点

  management.endpoints.web.exposure.exclude=env,beans 标示排除env,beans俩端点

当两个配置出现冲突时,management.endpoints.web.exposure.exclude的优先级更高,即spring boot会公开除了env,beans的所有端点

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM