Spring Boot 2.X(十七):應(yīng)用監(jiān)控之 Spring Boot Admin 使用及配置

Admin 簡(jiǎn)介

Spring Boot Admin 是 Spring Boot 應(yīng)用程序運(yùn)行狀態(tài)監(jiān)控和管理的后臺(tái)界面。最新UI使用vue.js重寫(xiě)里。

Spring Boot Admin 為已注冊(cè)的應(yīng)用程序提供了豐富的監(jiān)控運(yùn)維功能。如下:

  • 顯示健康狀況
  • 顯示應(yīng)用運(yùn)行時(shí)的詳細(xì)信息,如:JVM 和內(nèi)存指標(biāo)等
  • 計(jì)數(shù)器和測(cè)量指標(biāo)
  • 數(shù)據(jù)源度量
  • 緩存度量
  • 跟蹤和下載日志文件
  • 查看 jvm 系統(tǒng)和環(huán)境屬性
  • 一鍵管理loglevel
  • 管理執(zhí)行 JMX-beans
  • 查看線(xiàn)程轉(zhuǎn)儲(chǔ)
  • 查看跟蹤信息
  • Hystrix-Dashboard集成(2.X版本已刪除集成)
  • 下載 heapdump
  • 狀態(tài)更改通知(支持:電子郵件、Slack、Hipchat等)
  • 狀態(tài)更改事件日志(非永久性)

更多可以通過(guò)考文檔詳細(xì)了解。

Admin 使用及配置

Spring Boot Admin 服務(wù)端

項(xiàng)目依賴(lài)

    <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>

配置啟動(dòng) 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

測(cè)試

啟動(dòng)項(xiàng)目,通過(guò)瀏覽器訪(fǎng)問(wèn) http://127.0.0.1:9000


image

Spring Boot Admin 客戶(hù)端

這里以上面是 Spring Boot Actuator 項(xiàng)目為例

項(xiàng)目依賴(lài)

<!-- admin-client -->
        <dependency>
            <groupId>de.codecentric</groupId>
            <artifactId>spring-boot-admin-starter-client</artifactId>
            <version>2.1.6</version>
        </dependency>

application.properties 配置

#設(shè)置 Admin Server 地址
server.port=8080
spring.application.name=Spring Boot Actuator Demo
spring.boot.admin.client.url=http://127.0.0.1:9000

測(cè)試

啟動(dòng)項(xiàng)目,通過(guò)瀏覽器訪(fǎng)問(wèn) http://127.0.0.1:9000,我們會(huì)看到 Spring Boot Admin 的管理界面中 applications 會(huì)顯示相應(yīng)的客戶(hù)端應(yīng)用,點(diǎn)擊應(yīng)用進(jìn)入詳細(xì)的監(jiān)控界面。

image

image

Spring Boot Admin 配置屬性

Spring Boot Admin Server 配置屬性詳解

屬性 描述 默認(rèn)值
spring.boot.admin.context-path 上下文路徑在應(yīng)為Admin Server的靜態(tài)資產(chǎn)和API提供服務(wù)的路徑的前面加上前綴。相對(duì)于Dispatcher-Servlet /
spring.boot.admin.monitor.status-interval 更新client端狀態(tài)的時(shí)間間隔,單位是毫秒 10000
spring.boot.admin.monitor.status-lifetime client端狀態(tài)的生命周期,該生命周期內(nèi)不會(huì)更新client狀態(tài),單位是毫秒 10000
spring.boot.admin.monitor.connect-timeout 查詢(xún)client端狀態(tài)信息時(shí)的連接超時(shí),單位是毫秒 2000
spring.boot.admin.monitor.read-timeout 查詢(xún)client端狀態(tài)信息時(shí)的讀取超時(shí)時(shí)間,單位是毫秒 10000
spring.boot.admin.monitor.default-retries 失敗請(qǐng)求的默認(rèn)重試次數(shù)。Modyfing請(qǐng)求(PUT,POST,PATCH,DELETE)將永遠(yuǎn)不會(huì)重試 0
spring.boot.admin.monitor.retries.* 鍵值對(duì),具有每個(gè)endpointId的重試次數(shù)。默認(rèn)為默認(rèn)重試。Modyfing請(qǐng)求(PUT,POST,PATCH,DELETE)將永遠(yuǎn)不會(huì)重試
spring.boot.admin.metadata-keys-to-sanitize 要被過(guò)濾掉的元數(shù)據(jù)(當(dāng)與正則表達(dá)式相匹配時(shí),這些數(shù)據(jù)會(huì)在輸出的json數(shù)據(jù)中過(guò)濾掉) ".password", ".*secret", ".*key", ".token", ".credentials.", ".*vcap_services"
spring.boot.admin.probed-endpoints 要獲取的client的端點(diǎn)信息 "health", "env", "metrics", "httptrace:trace", "threaddump:dump", "jolokia", "info", "logfile", "refresh", "flyway", "liquibase", "heapdump", "loggers", "auditevents"
spring.boot.admin.instance-proxy.ignored-headers 向client發(fā)起請(qǐng)求時(shí)不會(huì)被轉(zhuǎn)發(fā)的headers信息 "Cookie", "Set-Cookie", "Authorization"
spring.boot.admin.ui.public-url 用于在ui中構(gòu)建基本href的基本URL 如果在反向代理后面運(yùn)行(使用路徑重寫(xiě)),則可用于進(jìn)行正確的自我引用。如果省略了主機(jī)/端口,將從請(qǐng)求中推斷出來(lái)
spring.boot.admin.ui.brand 導(dǎo)航欄中顯示的品牌 <img src="assets/img/icon-spring-boot-admin.svg"><span>Spring Boot Admin</span>
spring.boot.admin.ui.title 頁(yè)面標(biāo)題 "Spring Boot Admin"
spring.boot.admin.ui.favicon 用作默認(rèn)圖標(biāo)的圖標(biāo),用于桌面通知的圖標(biāo) "assets/img/favicon.png"
spring.boot.admin.ui.favicon-danger 當(dāng)一項(xiàng)或多項(xiàng)服務(wù)關(guān)閉并用于桌面通知時(shí),用作網(wǎng)站圖標(biāo) "assets/img/favicon-danger.png"

Spring Boot Admin Client 配置屬性詳解

屬性 描述 默認(rèn)值
spring.boot.admin.client.enabled 啟用Spring Boot Admin Client true
spring.boot.admin.client.url 要注冊(cè)的server端的url地址。如果要同時(shí)在多個(gè)server端口注冊(cè),則用逗號(hào)分隔各個(gè)server端的url地址
spring.boot.admin.client.api-path 管理服務(wù)器上注冊(cè)端點(diǎn)的Http路徑 "instances"
spring.boot.admin.client.username 如果server端需要進(jìn)行認(rèn)證時(shí),該屬性用于配置用戶(hù)名
spring.boot.admin.client.password 如果server端需要進(jìn)行認(rèn)證時(shí),該屬性用于配置密碼
spring.boot.admin.client.period 重復(fù)注冊(cè)的時(shí)間間隔(以毫秒為單位) 10000
spring.boot.admin.client.connect-timeout 連接注冊(cè)的超時(shí)時(shí)間(以毫秒為單位) 5000
spring.boot.admin.client.read-timeout 讀取注冊(cè)超時(shí)(以毫秒為單位) 5000
spring.boot.admin.client.auto-registration 如果設(shè)置為true,則在應(yīng)用程序準(zhǔn)備就緒后會(huì)自動(dòng)安排注冊(cè)應(yīng)用程序的定期任務(wù) true
spring.boot.admin.client.auto-deregistration 當(dāng)上下文關(guān)閉時(shí),切換為在Spring Boot Admin服務(wù)器上啟用自動(dòng)解密。如果未設(shè)置該值,并且在檢測(cè)到正在運(yùn)行的CloudPlatform時(shí),該功能處于活動(dòng)狀態(tài) null
spring.boot.admin.client.register-once 如果設(shè)置為true,則客戶(hù)端將僅向一臺(tái)管理服務(wù)器注冊(cè)(由定義spring.boot.admin.instance.url);如果該管理服務(wù)器出現(xiàn)故障,將自動(dòng)向下一個(gè)管理服務(wù)器注冊(cè)。如果為false,則會(huì)向所有管理服務(wù)器注冊(cè) true
spring.boot.admin.client.instance.health-url 要注冊(cè)的health-url地址。如果可訪(fǎng)問(wèn)URL不同(例如Docker),則可以覆蓋。在注冊(cè)表中必須唯一 默認(rèn)該屬性值與management-url 以及endpoints.health.id有關(guān)。比如工程中該值為: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 用于計(jì)算要注冊(cè)的管理URL的基本URL。該路徑是在運(yùn)行時(shí)推斷的,并附加到基本URL 默認(rèn)該屬性值與management.port, service-url 以及server.servlet-path有關(guān),如工程中該值為http://127.0.0.1:8080,其中8080端口是配置的獲取actuator信息的端口。127.0.0.1是設(shè)置的service-url值,如果沒(méi)有設(shè)置service-url的話(huà),則為配置的server.servlet-path值(項(xiàng)目的啟動(dòng)路徑)
spring.boot.admin.client.instance.management-url 要注冊(cè)的management-url。如果可訪(fǎng)問(wèn)的URL不同(例如Docker),則可以覆蓋 默認(rèn)該屬性值與management-base-url 和 management.context-path兩個(gè)屬性值有關(guān),如 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 用于計(jì)算要注冊(cè)的服務(wù)URL的基本URL。該路徑是在運(yùn)行時(shí)推斷的,并附加到基本URL 默認(rèn)該屬性值與hostname, server.port有關(guān),如http://127.0.0.1:8080,其中8080端口是配置的server.port。127.0.0.1是client所在服務(wù)器的hostname
spring.boot.admin.client.instance.service-url 要注冊(cè)的服務(wù)網(wǎng)址。如果可訪(fǎng)問(wèn)的URL不同(例如Docker),則可以覆蓋 默認(rèn)值是基于service-base-url 和 server.context-path進(jìn)行賦值
spring.boot.admin.client.instance.name 要注冊(cè)的名稱(chēng) 默認(rèn)值是配置的spring.application.name的值,如果沒(méi)有配置該屬性的話(huà),默認(rèn)值是spring-boot-application
spring.boot.admin.client.instance.prefer-ip 在猜測(cè)的網(wǎng)址中使用ip地址而不是主機(jī)名。如果設(shè)置了server.address/ management.address,它將被使用。否則,InetAddress.getLocalHost()將使用從返回的IP地址 false
spring.boot.admin.client.instance.metadata.* 要與此實(shí)例相關(guān)聯(lián)的元數(shù)據(jù)鍵值對(duì)
spring.boot.admin.client.instance.metadata.tags.* 標(biāo)記作為要與此實(shí)例相關(guān)聯(lián)的鍵值對(duì)

示例代碼

github

碼云

文檔參考

https://codecentric.github.io/spring-boot-admin/2.1.6/#faqs

非特殊說(shuō)明,本文版權(quán)歸 朝霧輕寒 所有,轉(zhuǎn)載請(qǐng)注明出處.

原文標(biāo)題:Spring Boot 2.X(十七):應(yīng)用監(jiān)控之 Spring Boot Admin 使用及配置

原文地址: https://www.zwqh.top/article/info/26

如果文章對(duì)您有幫助,請(qǐng)掃碼關(guān)注下我的公眾號(hào),文章持續(xù)更新中...

image
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容