监控Spring Boot的健康状况有两种方式

1. 使用Actuator检查与监控

1.1 使用步骤

1.1.1 在 pom 文件中添加 Actuator 的坐标

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

1.1.2 在全局配置文件中设置关闭安全限制

因为默认的访问安全限制是开启的,所以,没法获取其检查信息,因此需要先关闭安全限制。

在application.properties全局配置文件中加入如下配置

management.security.enabled=false

然后启动程序,在控制台输出如下信息:

spring boot rabbitmq 健康检查 springboot health_spring

这里的诸如/auditevents就是Actuator 能够为我们的健康状态做不同检查的一个URI标记,例如;

1.1.3 通过URI获取springboot的健康状况信息

用/health举例,在浏览器输入网址:http://localhost:8080/health  ,页面显示结果如图;

spring boot rabbitmq 健康检查 springboot health_服务端_02

status:状态,值UP  为运行,表示当前boot状态运行正常

diskSpace:磁盘空间,status:UP 也是表示状态正常,total表示当前在运行项目的磁盘的总空间,free剩余可用空间,threshold边界值,表示运行该项目的最少磁盘空间。

1.2 其他健康状况信息URI列表

ID

描述

是否需要鉴权

actuator

为其他端点提供“发现页面”。 要求 Spring HATEOAS 在 classpath 路径上。

需要

auditevents

陈列当前应用程序的审计事件信息

需要

autoconfig

展示自动配置信息并且显示所有自动配置候选人以及他们“被不被”应用的原因。

需要

beans

显示应用程序中所有 Spring bean 的完整列表

需要

configprops

显示所有配置信息

需要

dump

dump 所有线程

需要

env

陈列所有的环境变量

需要

flyway

Shows any Flyway database migrations that have been applied

需要

health

显示应用程序运行状况信息

不需要

info

显示应用信息

不需要

loggers

显示和修改应用程序中的 loggers 配置

需要

liquibase

显示已经应用的任何 Liquibase 数据库迁移

需要

metrics

显示当前应用程序的“指标”信息

需要

mappings

显示所有@RequestMapping 的 url 整理列表

需要

shutdown

关闭应用(默认情况下不启用)

需要

trace

显示跟踪信息(默认最后 100 个 HTTP 请求)

需要

2. 使用可视化的监控报表-Spring Boot Admin

Spring Boot Admin类似于我们的Dubbo Admin监控中心,也是通过一个服务端来查看运行状态信息

2.1 搭建服务端

服务端其实也是一个boot项目

2.1.1 在GitHub行搜索Spring Boot Admin项目

在其中找到服务端的坐标

<dependency>
	<groupId>de.codecentric</groupId>
	<artifactId>spring-boot-admin-starter-server</artifactId>
	<version>1.5.7</version>
</dependency>

2.1.2 在启动器上加上注解@EnableAdminServer

spring boot rabbitmq 健康检查 springboot health_客户端_03

这样,就完成了服务端的搭建

2.2 搭建客户端

其实客户端就是我们需要监控的工程。

2.2.1 在客户端项目添加坐标

<dependency>
	<groupId>de.codecentric</groupId>
	<artifactId>spring-boot-admin-starter-client</artifactId>
	<version>1.5.7</version>
</dependency>

2.2.2 修改客户端配置文件

management.security.enabled=false
#http://localhost:9090 表示是 Spring Boot Admin 服务单的 IP 地址以及端口号
spring.boot.admin.url: http://localhost:9090

3. 测试客户端服务端

3.1 服务端

1)运行服务端

2)在浏览器输入url:http://localhost:9090/#/

如图:

spring boot rabbitmq 健康检查 springboot health_客户端_04

3.2 被监听的客户端

1)启动客户端

才刚启动,就弹出了如下消息

spring boot rabbitmq 健康检查 springboot health_服务端_05

然后在看监控页面,如图:

spring boot rabbitmq 健康检查 springboot health_服务端_06

列表中显示了我们的客户端连接

点击details,查看详细信息,如图:

spring boot rabbitmq 健康检查 springboot health_客户端_07