监控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
然后启动程序,在控制台输出如下信息:
这里的诸如/auditevents就是Actuator 能够为我们的健康状态做不同检查的一个URI标记,例如;
1.1.3 通过URI获取springboot的健康状况信息
用/health举例,在浏览器输入网址:http://localhost:8080/health ,页面显示结果如图;
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
这样,就完成了服务端的搭建
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/#/
如图:
3.2 被监听的客户端
1)启动客户端
才刚启动,就弹出了如下消息
然后在看监控页面,如图:
列表中显示了我们的客户端连接
点击details,查看详细信息,如图: