0. 官方文档及示例
官方文档
示例代码:Spring-Boot-Admin-Demo
1. 概述
-
Spring Boot Admin(SBA)是一个开源的社区项目,用于管理和监控 Spring Boot 应用程序。应用程序可以通过 http 的方式,或 Spring Cloud 服务发现机制注册到 SBA 中,然后就可以实现对 Spring Boot 项目的可视化管理和查看了。
-
Spring Boot Admin 可以监控 Spring Boot 单机或集群项目,它提供详细的
健康 (Health)信息
、内存信息
、JVM 系统和环境属性
、垃圾回收信息
、日志设置和查看
、定时任务查看
、Spring Boot 缓存查看和管理
等功能。 -
Spring Boot Admin 是一个监控工具,旨在以良好且易于访问的方式可视化 Spring Boot Actuators 提供的信息。它由两个主要部分组成:
- 提供用户界面来显示 Spring Boot Actuators 并与之交互的服务器。
- 用于在服务器上注册并允许访问执行器端点的客户端。
1.1 版本对应关系
Spring Boot Version | Spring Boot Admin |
---|---|
2.6 | 2.6.Y |
2.7 | 2.7.Y |
3.0 | 3.0.Y |
2. 搭建服务端
-
参照版本对应关系创建一个springboot项目,作为服务端
-
添加SBA Server端依赖
-
开启SBA服务
package site.zhourui.sbaserver; import de.codecentric.boot.admin.server.config.EnableAdminServer; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @EnableAdminServer // 添加此行代码 @SpringBootApplication public class SbaserverApplication { public static void main(String[] args) { SpringApplication.run(SbaserverApplication.class, args); } }
-
配置SBA端口号
server: port: 9001
-
启动SBA Server
3. 搭建客户端
-
参照版本对应关系创建一个springboot项目,作为客户端
-
勾选SBA Server端依赖 ,web依赖视情况而定
-
配置SBA端口号,服务名及服务端监控地址
server: port: 8081 ## 当前项目端口号 spring: boot: admin: client: url: http://localhost:9001 # Spring Boot Admin 监控服务器端地址 application: name: sbaclient01 #服务名称
-
启动sbaclient01服务
-
到服务端查看sbaclient01服务是否注册成功
4. SpringBootAdmin监控总览
-
点击应用进入详情页面,如下图所示:
-
查看全部事件
5. 配置查看更多监控项
-
添加actuator框架支持
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
-
配置开放所有监控项
management: endpoints: web: exposure: include: '*' #开启监控所有项
-
重启服务
6. 监控项目预览
将 Spring Boot 的所有监控项都开启之后,通过 SBA 就可以查看以下内容了:
- 启动时间、累计运行时间;
- 进程和线程数量和占用的 CPU 资源;
- 垃圾回收详情信息,回收次数和花费时间;
- JVM 线程转储、内存转储详情和对应的文件下载;
- 可以查看和配置 Spring Boot 项目中的日志级别;
- 查看 Spring Boot 项目性能监控;
- 查看 Spring Boot 运行环境信息;
- 查看 Spring Boot 所有类信息;
- 查看 Spring Boot 中的定时任务;
- 查看和管理 Spring Boot 项目中的所有缓存。
6.1 查看运行环境
这里的数据被spring actuator 进行了脱敏操作了全变成了星号了
6.2 查看定时任务
这里我没有写定时任务,所以就没有