什么是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:9000management.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=alwaysspring.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博客