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

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)控界面。


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 |
| 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ì) |
示例代碼
文檔參考
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ù)更新中...
