SpringBoot - 使用Spring Boot Admin进行服务监控教程1(监控信息可视化)
在之前的文章中,我介绍了如何使用 Spring Boot Actuator 对单个 Spring Boot 应用进行监控(点击查看)。通过各个监控端点,我们可以获取应用状态、内存、线程、堆栈等信息,比较全面的监控了 Spring Boot 应用的整个生命周期。但这种方式也存在一些不足:
(2)接着在项目启动类上添加 @EnableAdminServer 注解,表示启动 AdminServer:
(3)为了避免和客户端项目端口冲突,这里在 application.properties 中将端口改成 8888:
(4)启动项目,使用浏览器访问 http://localhost:8888/ ,结果如下,由于目前还没有客户端接入,所以应用数为 0。
(2)然后在 application.properties 中添加如下配置:
(3)配置完毕后,启动项目,此时在服务端上就可以看到客户端的运行数据了。首先展示的是当前注册到 AdminServer 上的 Client 列表:
- 所有的监控都需要调用固定的接口来查看,如果全面查看应用状态需要调用很多接口,并且接口返回的 Json 信息不方便运营人员理解;
- 如果 Spring Boot 应用集群非常大,每个应用都需要调用不同的接口来查看监控信息,操作非常繁琐低效。
为了解决这个问题,Spring Boot 提供了专门的监控信息管理端:Spring Boot Admin,用来实现监控信息的可视化,这样可以方便开发者快速查看系统运行状况,而不用去一个一个地调用接口。
1,Spring Boot Admin 介绍
(1)Spring Boot Admin 是一个针对 Spring Boot Actuator 进行 UI 美化封装的监控工具(也就是说底层仍然是基于 Spring Boot Actuator 实现)
(2)通过 Spring Boot Admin,我们可以在可视化页面中浏览所有被监控 spring-boot 项目的基本信息,详细的 Health 信息、内存信息、JVM 信息、垃圾回收信息、各种配置信息(比如数据源、缓存列表和命中率)等,还可以直接修改 logger 的 level。
(3)Spring Boot Admin 包括客户端和服务端两个部分:
- 客户端:即需监控的应用服务,依赖 Spring Boot Admin 客户端包,通过 HTTP 或者使用 Eureka 注册到 Spring Boot Admin 服务端中进行展示。
- 服务端:提供服务端注册相关服务以及服务监控相关服务,获取客户端的运行数据并展示(2.0 的 UI 页面使用 Vue.js 开发)。
2,服务端(Admin 端)配置
(1)首先创建一个 Spring Boot Web 工程作为服务端,添加 Admin 相关依赖:
<dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-server</artifactId> <version>2.2.0</version> </dependency>
(2)接着在项目启动类上添加 @EnableAdminServer 注解,表示启动 AdminServer:
@SpringBootApplication @EnableAdminServer public class DemoServerApplication { public static void main(String[] args) { SpringApplication.run(DemoServerApplication.class, args); } }
(3)为了避免和客户端项目端口冲突,这里在 application.properties 中将端口改成 8888:
server.port=8888
(4)启动项目,使用浏览器访问 http://localhost:8888/ ,结果如下,由于目前还没有客户端接入,所以应用数为 0。
3,客户端(Client 端)配置
(1)首先添加 Client 依赖(actuator 依赖可以不添加):
<dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-client</artifactId> <version>2.2.0</version> </dependency>
(2)然后在 application.properties 中添加如下配置:
注意:spring.boot.admin.client.url 表示配置上面的 AdminServer 地址。
spring.boot.admin.client.url=http://localhost:8888
(3)配置完毕后,启动项目,此时在服务端上就可以看到客户端的运行数据了。首先展示的是当前注册到 AdminServer 上的 Client 列表:
(4)应用墙中展示了 Client 的简略信息:
(5)单击具体实例名,可以看到 Client 运行的详细数据,默认页面展示的是一些常见的信息,其他端点数据可以通过点击左侧对应菜单进行查看:
(6)日志报表中则展示了项目运行日志: