這幾天公司需要部署SpringBootAdmin監控,用來時刻關注微服務的狀態
按照官網的操作非常簡單:
1. 添加依賴到pom.xml
<dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-server</artifactId> <version>${springboot.admin.version}</version> </dependency> <dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-server-ui</artifactId> <version>${springboot.admin.version}</version> </dependency>
2. 啟動類Application添加注解@EnableAdminServer
3. 如果本身是用SpringCloud管理,比如我們用的是Eureka管理服務的,所以添加@EnableEurekaClient,讓AdminServer作為一個微服務被集中治理,而每個其它的微服務都可以被訪問到監控狀態。
4. 但這樣不會監控微服務的服務本身,所以需要在有注解@EnableEurekaServer的服務上,做Admin客戶端的配置
<dependency> <groupId>de.codecentric</groupId> <artifactId>spring-boot-admin-starter-client</artifactId> <version>${springboot.admin.version}</version> </dependency>
然后在yml中添加配置spring.boot.admin.url: http://localhost:8760即可
步驟很簡單,但部署后卻發現訪問頁面只有footer的幾個鏈接(我們用的版本是1.4.0,與使用的SpringBoot版本一致)
從訪問來看,core.css出現404錯誤,於是反編譯jar包,發現1.4.0對應的spring-boot-admin-server-ui沒有core.css,反復嘗試后,換用1.4.1版本的,解決!
也就是說,作為非Spring官方出品的Spring Boot Admin還是有瑕疵的,但這只是歷史版本的問題
另外,還有一個地方,就是每個微服務需要把/heath放入訪問白名單中(PermitAll)才行。