Admin 簡介
Spring Boot Admin 是 Spring Boot 應用程序運行狀態監控和管理的后台界面。最新UI使用vue.js重寫里。
Spring Boot Admin 為已注冊的應用程序提供了豐富的監控運維功能。如下:
- 顯示健康狀況
- 顯示應用運行時的詳細信息,如:JVM 和內存指標等
- 計數器和測量指標
- 數據源度量
- 緩存度量
- 跟蹤和下載日志文件
- 查看 jvm 系統和環境屬性
- 一鍵管理loglevel
- 管理執行 JMX-beans
- 查看線程轉儲
- 查看跟蹤信息
- Hystrix-Dashboard集成(2.X版本已刪除集成)
- 下載 heapdump
- 狀態更改通知(支持:電子郵件、Slack、Hipchat等)
- 狀態更改事件日志(非永久性)
更多可以通過考文檔詳細了解。
Admin 使用及配置
Spring Boot Admin 服務端
項目依賴
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- admin-server -->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
<version>2.1.6</version>
</dependency>
配置啟動 Admin Server
@SpringBootApplication
@EnableAutoConfiguration
@EnableAdminServer
public class SpringBootAdminApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootAdminApplication.class, args);
}
}
application.properties 配置
server.port=9000
spring.application.name=Spring Boot Admin Web
測試
啟動項目,通過瀏覽器訪問 http://127.0.0.1:9000

Spring Boot Admin 客戶端
這里以上面是 Spring Boot Actuator 項目為例
項目依賴
<!-- admin-client -->
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
<version>2.1.6</version>
</dependency>
application.properties 配置
#設置 Admin Server 地址
server.port=8080
spring.application.name=Spring Boot Actuator Demo
spring.boot.admin.client.url=http://127.0.0.1:9000
測試
啟動項目,通過瀏覽器訪問 http://127.0.0.1:9000,我們會看到 Spring Boot Admin 的管理界面中 applications 會顯示相應的客戶端應用,點擊應用進入詳細的監控界面。


Spring Boot Admin 配置屬性
Spring Boot Admin Server 配置屬性詳解
| 屬性 | 描述 | 默認值 |
|---|---|---|
| spring.boot.admin.context-path | 上下文路徑在應為Admin Server的靜態資產和API提供服務的路徑的前面加上前綴。相對於Dispatcher-Servlet | / |
| spring.boot.admin.monitor.status-interval | 更新client端狀態的時間間隔,單位是毫秒 | 10000 |
| spring.boot.admin.monitor.status-lifetime | client端狀態的生命周期,該生命周期內不會更新client狀態,單位是毫秒 | 10000 |
| spring.boot.admin.monitor.connect-timeout | 查詢client端狀態信息時的連接超時,單位是毫秒 | 2000 |
| spring.boot.admin.monitor.read-timeout | 查詢client端狀態信息時的讀取超時時間,單位是毫秒 | 10000 |
| spring.boot.admin.monitor.default-retries | 失敗請求的默認重試次數。Modyfing請求(PUT,POST,PATCH,DELETE)將永遠不會重試 | 0 |
| spring.boot.admin.monitor.retries.* | 鍵值對,具有每個endpointId的重試次數。默認為默認重試。Modyfing請求(PUT,POST,PATCH,DELETE)將永遠不會重試 | |
| spring.boot.admin.metadata-keys-to-sanitize | 要被過濾掉的元數據(當與正則表達式相匹配時,這些數據會在輸出的json數據中過濾掉) | ".password$", ".secret$", ".key$", ".$token$", ".credentials.", ".*vcap_services$" |
| spring.boot.admin.probed-endpoints | 要獲取的client的端點信息 | "health", "env", "metrics", "httptrace:trace", "threaddump:dump", "jolokia", "info", "logfile", "refresh", "flyway", "liquibase", "heapdump", "loggers", "auditevents" |
| spring.boot.admin.instance-proxy.ignored-headers | 向client發起請求時不會被轉發的headers信息 | "Cookie", "Set-Cookie", "Authorization" |
| spring.boot.admin.ui.public-url | 用於在ui中構建基本href的基本URL | 如果在反向代理后面運行(使用路徑重寫),則可用於進行正確的自我引用。如果省略了主機/端口,將從請求中推斷出來 |
| spring.boot.admin.ui.brand | 導航欄中顯示的品牌 | <img src="assets/img/icon-spring-boot-admin.svg"><span>Spring Boot Admin</span> |
| spring.boot.admin.ui.title | 頁面標題 | "Spring Boot Admin" |
| spring.boot.admin.ui.favicon | 用作默認圖標的圖標,用於桌面通知的圖標 | "assets/img/favicon.png" |
| spring.boot.admin.ui.favicon-danger | 當一項或多項服務關閉並用於桌面通知時,用作網站圖標 | "assets/img/favicon-danger.png" |
Spring Boot Admin Client 配置屬性詳解
| 屬性 | 描述 | 默認值 |
|---|---|---|
| spring.boot.admin.client.enabled | 啟用Spring Boot Admin Client | true |
| spring.boot.admin.client.url | 要注冊的server端的url地址。如果要同時在多個server端口注冊,則用逗號分隔各個server端的url地址 | |
| spring.boot.admin.client.api-path | 管理服務器上注冊端點的Http路徑 | "instances" |
| spring.boot.admin.client.username | 如果server端需要進行認證時,該屬性用於配置用戶名 | |
| spring.boot.admin.client.password | 如果server端需要進行認證時,該屬性用於配置密碼 | |
| spring.boot.admin.client.period | 重復注冊的時間間隔(以毫秒為單位) | 10000 |
| spring.boot.admin.client.connect-timeout | 連接注冊的超時時間(以毫秒為單位) | 5000 |
| spring.boot.admin.client.read-timeout | 讀取注冊超時(以毫秒為單位) | 5000 |
| spring.boot.admin.client.auto-registration | 如果設置為true,則在應用程序准備就緒后會自動安排注冊應用程序的定期任務 | true |
| spring.boot.admin.client.auto-deregistration | 當上下文關閉時,切換為在Spring Boot Admin服務器上啟用自動解密。如果未設置該值,並且在檢測到正在運行的CloudPlatform時,該功能處於活動狀態 | null |
| spring.boot.admin.client.register-once | 如果設置為true,則客戶端將僅向一台管理服務器注冊(由定義spring.boot.admin.instance.url);如果該管理服務器出現故障,將自動向下一個管理服務器注冊。如果為false,則會向所有管理服務器注冊 | true |
| spring.boot.admin.client.instance.health-url | 要注冊的health-url地址。如果可訪問URL不同(例如Docker),則可以覆蓋。在注冊表中必須唯一 | 默認該屬性值與management-url 以及endpoints.health.id有關。比如工程中該值為:healthUrl=http://127.0.0.1:8080/actuator/health,其中http://127.0.0.1:8080/actuator是management-url,health是endpoints.health.id |
| spring.boot.admin.client.instance.management-base-url | 用於計算要注冊的管理URL的基本URL。該路徑是在運行時推斷的,並附加到基本URL | 默認該屬性值與management.port, service-url 以及server.servlet-path有關,如工程中該值為http://127.0.0.1:8080,其中8080端口是配置的獲取actuator信息的端口。127.0.0.1是設置的service-url值,如果沒有設置service-url的話,則為配置的server.servlet-path值(項目的啟動路徑) |
| spring.boot.admin.client.instance.management-url | 要注冊的management-url。如果可訪問的URL不同(例如Docker),則可以覆蓋 | 默認該屬性值與management-base-url 和 management.context-path兩個屬性值有關,如 managementUrl=http://127.0.0.1:8080/actuator,其中http://127.0.0.1:8080為management-base-url,/actuator是management.context-path |
| spring.boot.admin.client.instance.service-base-url | 用於計算要注冊的服務URL的基本URL。該路徑是在運行時推斷的,並附加到基本URL | 默認該屬性值與hostname, server.port有關,如http://127.0.0.1:8080,其中8080端口是配置的server.port。127.0.0.1是client所在服務器的hostname |
| spring.boot.admin.client.instance.service-url | 要注冊的服務網址。如果可訪問的URL不同(例如Docker),則可以覆蓋 | 默認值是基於service-base-url 和 server.context-path進行賦值 |
| spring.boot.admin.client.instance.name | 要注冊的名稱 | 默認值是配置的spring.application.name的值,如果沒有配置該屬性的話,默認值是spring-boot-application |
| spring.boot.admin.client.instance.prefer-ip | 在猜測的網址中使用ip地址而不是主機名。如果設置了server.address/ management.address,它將被使用。否則,InetAddress.getLocalHost()將使用從返回的IP地址 | false |
| spring.boot.admin.client.instance.metadata.* | 要與此實例相關聯的元數據鍵值對 | |
| spring.boot.admin.client.instance.metadata.tags.* | 標記作為要與此實例相關聯的鍵值對 |
示例代碼
文檔參考
https://codecentric.github.io/spring-boot-admin/2.1.6/#faqs
非特殊說明,本文版權歸 朝霧輕寒 所有,轉載請注明出處.
原文標題:Spring Boot 2.X(十七):應用監控之 Spring Boot Admin 使用及配置
原文地址: https://www.zwqh.top/article/info/26
如果文章對您有幫助,請掃碼關注下我的公眾號,文章持續更新中...

