SpringBoot服务如何开放指标监控与健康检查?Actuator了解一下

SpringBoot服务如何开放指标监控与健康检查?Actuator了解一下

 

一、 本文大纲
  • Spring Boot Actuator简介

  • Actuator开启与配置

  • 常用监控端点说明

二、Spring Boot Actuator简介

Spring Boot作为构建微服务节点的方案,一定要提供全面而且细致的监控指标,使微服务更易于管理!微服务不同于单体应用,微服务的每个服务节点都单独部署,独立运行,大型的微服务项目甚至有成百上千个服务节点。这就为我们进行系统监控与运维提出了挑战。为了应对这个挑战,其中最重要的工作之一就是:微服务节点能够合理的暴露服务的相关监控指标,用以对服务进行健康检查、监控管理,从而进行合理的流量规划与安排系统运维工作!

SpringBoot服务如何开放指标监控与健康检查?Actuator了解一下

 

Spring Boot Actuator 可以监控我们的应用程序,收集流量和数据库状态、健康状态等监控指标。在生产环境中,我们可以方便的通过HTTP请求获取应用的状态信息,以JSON格式数据响应。

SpringBoot服务如何开放指标监控与健康检查?Actuator了解一下

 

Spring Boot Actuator监控端点的分类

  • 静态配置类:主要是一些静态配置信息,比如: Spring Bean 加载信息、yml 或properties配置信息、环境变量信息、请求接口关系映射信息等;

  • 动态指标类:主要用于展现程序运行期状态,例如内存堆栈信息、请求链信息、健康指标信息等;

  • 操作控制类:主要是shutdown功能,用户可以远程发送HTTP请求,从而关闭监控功能。

三、Actuator开启与配置

在Spring Boot2.x项目中开启Actuator非常简单,只需要引入如下的mavn坐标即可。

SpringBoot服务如何开放指标监控与健康检查?Actuator了解一下

Spring Boot Actuator启用之后默认开放了两个端点的访问:

  • /actuator/health用以监控应用状态。返回值是应用状态信息,包含四种状态DOWN(应用不正常), OUT_OF_SERVICE(服务不可用),UP(状态正常), UNKNOWN(状态未知)。如果服务状态正常,我们访问http:/lhost:port/actuator/health得到如下响应信息:

SpringBoot服务如何开放指标监控与健康检查?Actuator了解一下

  • /actuator/info 用来响应应用相关信息,默认为空。可以根据我们自己的需要,向服务调用者暴露相关信息。如下所示,配置属性可以随意起名,但都要挂在info下面:

SpringBoot服务如何开放指标监控与健康检查?Actuator了解一下

SpringBoot服务如何开放指标监控与健康检查?Actuator了解一下

 

如果我们希望开放更多的监控端点给服务调用者,需要配置:开放部分监控端点,端点名称用逗号分隔

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

开放所有监控端点:

management.endpoints.web.exposure.include=*

如果您使用的是yml配置文件,而不是properties配置文件。注意:星号在YAML配置文件中中有特殊的含义,所以使用YAML配置文件一定要加引号,如下所示:

SpringBoot服务如何开放指标监控与健康检查?Actuator了解一下

三、常用监控端点说明

注意下图中的服务启用,不等于对外开放访问。对外开放访问的服务端点一定要先开启服务。如果服务不是默认开启的,使用如下方式开启:

# shutdown是服务端点名称,可以替换
management.endpoint.shutdown.enabled=true

SpringBoot服务如何开放指标监控与健康检查?Actuator了解一下

 

如果Spring Boot web应用(WebMVC, WebFlux, Jersey),还可以使用如下端点:

SpringBoot服务如何开放指标监控与健康检查?Actuator了解一下

 

写在最后

 

本号只做持续的知识输出,您的支持是我不竭的创作动力!让知识产生价值、让程序员改变世界!

 

上一篇:spring boot actuator监控


下一篇:springboot学习27