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>
#設定 Admin Server 位址
server.port=8080
spring.application.name=Spring Boot Actuator Demo
spring.boot.admin.client.url=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狀态,機關是毫秒 | |
spring.boot.admin.monitor.connect-timeout | 查詢client端狀态資訊時的連接配接逾時,機關是毫秒 | 2000 |
spring.boot.admin.monitor.read-timeout | 查詢client端狀态資訊時的讀取逾時時間,機關是毫秒 | |
spring.boot.admin.monitor.default-retries | 失敗請求的預設重試次數。Modyfing請求(PUT,POST,PATCH,DELETE)将永遠不會重試 | |
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 | 導航欄中顯示的品牌 | |
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 | 重複注冊的時間間隔(以毫秒為機關) | |
spring.boot.admin.client.connect-timeout | 連接配接注冊的逾時時間(以毫秒為機關) | 5000 |
spring.boot.admin.client.read-timeout | 讀取注冊逾時(以毫秒為機關) | |
spring.boot.admin.client.auto-registration | 如果設定為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,則會向所有管理伺服器注冊 | |
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= 為management-base-url,/actuator是management.context-path |
spring.boot.admin.client.instance.service-base-url | 用于計算要注冊的服務URL的基本URL。該路徑是在運作時推斷的,并附加到基本URL | 預設該屬性值與hostname, server.port有關,如 ,其中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.* | 标記作為要與此執行個體相關聯的鍵值對 |
示例代碼
github 碼雲文檔參考
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如果文章對您有幫助,請掃碼關注下我的公衆号,文章持續更新中...