天天看點

Spring Boot 2.X(十七):應用監控之 Spring Boot Admin 使用及配置

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 2.X(十七):應用監控之 Spring Boot Admin 使用及配置

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 2.X(十七):應用監控之 Spring Boot Admin 使用及配置
Spring Boot 2.X(十七):應用監控之 Spring Boot Admin 使用及配置

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 導航欄中顯示的品牌

<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 重複注冊的時間間隔(以毫秒為機關)
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

如果文章對您有幫助,請掃碼關注下我的公衆号,文章持續更新中...