什么是Spring Boot Admin
Spring Boot Admin 是一个用于管理和监控 Spring Boot 应用程序的开源工具。它提供了一个用户友好的 Web 界面,用于集中管理和监控多个 Spring Boot 应用程序的运行状态、健康状况、日志、配置等信息。
Spring Boot Admin 的核心功能
应用监控:
实时监控 Spring Boot 应用程序的健康状态(
UP
、DOWN
等)。显示应用程序的详细信息,如内存使用、线程状态、垃圾回收等。
日志管理:
查看应用程序的日志文件。
支持动态调整日志级别(如
DEBUG
、INFO
、WARN
、ERROR
)。
配置管理:
查看应用程序的配置信息(如
application.properties
或application.yml
)。支持动态修改配置(需结合 Spring Cloud Config 或 Spring Cloud Bus)。
性能监控:
监控应用程序的性能指标,如请求速率、响应时间、错误率等。
支持集成 Micrometer 和 Prometheus。
通知功能:
支持通过邮件、Slack、PagerDuty 等渠道发送告警通知。
当应用程序状态发生变化(如从
UP
变为DOWN
)时,自动发送通知。
集中管理:
支持同时监控多个 Spring Boot 应用程序。
提供统一的 Web 界面,方便集中管理。
原理:客户端向服务端推送状态消息,如下图所示:
官方文档:
Spring Boot Admin Reference Guide
服务器端
新建sprint boot项目
第一步
增加依赖spring-boot-admin-starter-server
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>3.0.4</version>
</dependency>
注意版本号,一定要跟sprint boot的版本保持一致,如果spring boot是2.X,那就要找对应2.X的version,当前我用的是spring boot3,所以这里的version为3.0.4。
第二步
在@Configuration类或者主类上增加@EnableAdminServer启动服务器
第三步
在application.properties设置端口
server.port=9000
以上配置完成后,访问http://localhost:9000/,就可以看到如下界面。
客户端
新建sprint boot项目
第一步
在Spring Boot应用上增加spring-boot-admin-starter-client依赖
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>3.0.4</version>
</dependency>
version与服务器端保持一致。
第二步
开启指标监控就,并接入admin-server
server.port=9001
spring.boot.admin.client.url=http://localhost:9000
management.endpoints.web.exposure.include=*
9001是客户端的端口号
http://localhost:9000/是服务器端的地址
management.endpoints.web.exposure.include=* 表示显示完整的监控信息
第三步
刷新页面,就可以看到新增的实例
第四步
如果想看到数据库信息,可以增加对应的配置
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>8.2.0</version> <!-- 使用最新版本 -->
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
<version>3.2.0</version>
</dependency>
# 启用 health 端点的详细信息
management.endpoint.health.show-details=always
# 暴露数据库连接信息
management.endpoint.health.show-components=always
spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/novel?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true
spring.datasource.username=root
spring.datasource.password=123456
novel是数据库名称
就可以在细节中,看到db的信息。
参考文章:
指标监控神器SpringBootAdmin保姆级教程_spring-boot-admin-starter-server-CSDN博客