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 - Spring Boot Admin 版本对应关系
Spring Boot Version | Spring Boot Admin |
---|---|
2.6 | 2.6.Y |
2.7 | 2.7.Y |
3.0 | 3.0.Y |
注意:springboot3.x需要jdk17及以上
参照版本对应关系创建一个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端口号
- 我习惯使用yaml配置文件,springboot默认生成的是properties文件
- 如果是application.properties 需要将如下配置修改为properties格式,我配置的端口号是 9001
- 配置端口号的主要目的是为了不和其他 Spring Boot 项目冲突,如果 SBA 是单独部署此步骤可以忽略。
server:
port: 9001
启动SBA Server
启动项目之后,就可以看到 SBA 的主页了,如下图所示:
参照版本对应关系创建一个springboot项目,作为客户端
勾选SBA Server端依赖 ,web依赖视情况而定
配置SBA端口号,服务名及服务端监控地址
server:
port: 8081 ## 当前项目端口号
spring:
boot:
admin:
client:
url: http://localhost:9001 # Spring Boot Admin 监控服务器端地址
application:
name: sbaclient01 #服务名称
启动sbaclient01服务
到服务端查看sbaclient01服务是否注册成功
点击应用进入详情页面,如下图所示:
查看全部事件
通过上面的内容我们可以看出,监控的 Spring Boot 选项还是比较少的,怎么才能查看更多的监控项呢?要解决这个问题,我们需要在被监控的 Spring Boot 项目中添加 spring-boot-starter-actuator 框架的支持,并开启查看所有监控项的配置才行,最终展示效果如下:
添加actuator框架支持
在被监控的 Spring Boot 项目中添加 actuator 框架支持,也就是在 pom.xml 中添加以下配置:
<dependency>
<groupId>org.springframework.bootgroupId>
<artifactId>spring-boot-starter-actuatorartifactId>
dependency>
配置开放所有监控项
本来是*号的,但是yaml需要使用
''
才不会报如下错误
management:
endpoints:
web:
exposure:
include: '*' #开启监控所有项
生产环境按照需求开启监控项不要全部开启
重启服务
将 Spring Boot 的所有监控项都开启之后,通过 SBA 就可以查看以下内容了:
这里的数据被spring actuator 进行了脱敏操作了全变成了星号了
这里我没有写定时任务,所以就没有
- 3.x版本可能因为安全问题移除了事实日志了,并且运行环境spring actuator也进行脱敏操作了
- 所以最好推荐使用2.x版本
推荐2.5.3
,相同的步骤只不过springboot版本与SpringBootAdmin版本换成2.x版本即可- 但需要注意生产环境安全问题