Spring boot 2.0 Actuator 的健康检查
spring boot 框架是spring framework发展史上一次质的飞跃,用过都说好。它不仅仅是简化了繁琐的配置文件,提高了开发效率,整合了开发中常用的各种组件,优雅地处理了它们之间的版本兼容性问题,等等。除了以上这些优点还有本文将重点介绍的监控,Spring boot框架自带全方位的监控,这样,做spring boot应用的监控简直是太方便了。
一、 前言
官方文档 :https://docs.spring.io/spring-boot/docs/2.0.1.RELEASE/reference/htmlsingle/#production-ready-health
在当下流行的Service Mesh架构中,由于Spring boot框架的种种优点,它特别适合作为其中的应用开发框架。说到Service Mesh的微服务架构,主要特点是将服务开发和服务治理分离开来,然后再结合容器化的Paas平台,将它们融合起来,这依赖的都是互相之间默契的配合。也就是说各自都暴露出标准的接口,可以通过这些接口互相交织在一起。Service Mesh的架构设计中的要点之一,就是全方位的监控,因此一般我们选用的服务开发框架都需要有方便又强大的监控功能支持。在Spring boot应用中开启监控特别方便,监控面也很广,还支持灵活定制。
二、 Actuator的使用方法
在Spring boot应用中,要实现可监控的功能,依赖的是 spring-boot-starter-actuator
这个组件。它提供了很多监控和管理你的spring boot应用的HTTP或者JMX端点,并且你可以有选择地开启和关闭部分功能。当你的spring boot应用中引入下面的依赖之后,将自动的拥有审计、健康检查、Metrics监控功能。
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
具体的使用方法:
- 引入上述的依赖jar;
- 通过下面的配置启用所有的监控端点,默认情况下,这些端点是禁用的;
management:
endpoints:
web:
exposure:
include: "*"
“*”号代表启用所有的监控端点,可以单独启用,例如,health
,info
,metrics
等。(http://localhost:9001/actuator/,可查看全部)
- 通过
actuator/+端点名
就可以获取相应的信息。
一般的监控管理端点的配置信息,如下:
management:
endpoints:
web:
# 默认即是actuator
basePath: /actuator
exposure:
include: "*"
server:
# 监控对外暴露端口
port: 9001
# 配置监控根地址
servlet:
context-path: /
ssl:
enabled: false
endpoint:
health:
show-details: always
上述配置信息仅供参考,具体须参照官方文档,由于SpringBoot的版本更新比较快,配置方式可能有变化。
三、 健康检查
今天重点说一下Actuator监控管理中的健康检查功能,随时能掌握线上应用的健康状况是非常重要的,尤其是现在流行的容器云平台下的应用,它们的自动恢复和扩容都依赖健康检查功能。
当我们开启health
的健康端点时,我们能够查到应用健康信息是一个汇总的信息,访问http://127.0.0.1:9001/actuator/health
时,我们获取到的信息是{"status":"UP"}
,status的值还有可能是 DOWN
。
要想查看详细的应用健康信息需要配置management.endpoint.health.show-details
的值为always
,配置之后我们再次访问http://127.0.0.1:10111/actuator/health
,获取的信息如下:
{
"status": "UP",
"details": {