一, 概述
开始阅读这篇文章之前, 建议先阅读下《SpringBoot 之 Actuator》, 该篇文章提到 Spring Boot Actuator 提供了对单个 Spring Boot 的监控, 信息包含: 应用状态, 内存, 线程, 堆栈等等, 比较全面的监控了 Spring Boot 应用的整个生命周期. 但是美中不足的是:
所有的监控都需要调用固定的接口来查看, 如果全面查看应用状态需要调用很多接口, 并且接口返回的 JSON 信息不方便运营人员理解;
如果 Spring Boot 应用集群非常大, 每个应用都需要调用不同的接口来查看监控信息, 操作非常繁琐低效.
在这样的背景下, 就诞生了另外一个开源软件: Spring Boot Admin. 那么什么是 Spring Boot Admin 呢? Spring Boot Admin 是一个针对 Spring Boot Actuator 进行 UI 美化封装的监控工具. 集群的每个应用都认为是一个客户端(或者说实例), 通过 HTTP 或者使用 Eureka 注册到 Spring Boot Admin Server 中进行展示, Spring Boot Admin UI 使用 AngularJS 将数据展示在前端.
下面将给大家介绍如何使用 Spring Boot Admin 对 Spring Boot 应用进行监控.
二, spring-boot-admin-starter-server
下面介绍 spring-boot-admin-server 的构建, 要监控的每个客户端(或者说实例), 都可以把 Actuator 数据注册到 server 中进行 UI 渲染展示.
1. pom.xml
- <dependency>
- <groupId>de.codecentric</groupId>
- <artifactId>spring-boot-admin-starter-server</artifactId>
- <version>2.1.5</version>
- </dependency>
2. application.YAML
- server:
- port: 3333
- spring:
- application:
- name: monitor
3. Application.java
- @SpringBootApplication
- @EnableAdminServer
- public class Application {
- public static void main(String[] args) {
- SpringApplication.run(Application.class);
- }
- }
做完以上动作, 我们一个 spring-boot-admin-server 项目就搭建好了.
三, spring-boot-admin-starter-client
我们已经有了一个 spring-boot-admin-server, 现在要做的就是如何把客户端 (或者说实例) 的 Actuator 数据注册到 Server 中.
1. pom.xml
- <dependency>
- <groupId>de.codecentric</groupId>
- <artifactId>spring-boot-admin-starter-client</artifactId>
- <version>2.1.5</version>
- </dependency>
2. application.YAML
- spring:
- application:
- name: dubbo-provider
- boot:
- admin:
- enabled: true
- client:
- instance:
- name: ${spring.application.name}
- prefer-ip: true
- url: http://127.0.0.1:3333
- management:
- endpoints:
- web:
- exposure:
- include: '*'
如此, 我们就把客户端 (或者说实例) 的 Actuator 数据注册到 Server 中了.
结语
1. 效果图
2. 源代码地址
GitHub 演示代码地址: https://github.com/JMCuixy/dubbo-demo https://github.com/JMCuixy/dubbo-demo
来源: https://www.cnblogs.com/jmcui/p/11025819.html