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的所有端点

 

posted @ 2019-02-26 15:13  我_会飞的鱼  阅读(1101)  评论(0编辑  收藏  举报