先前提到的Spring Boot Actuator提供了許多endpoint來讓我們透過打api取得Spring Boot App的各項運作資訊,不過這樣稍嫌麻煩了點對吧?若能將這些資訊透過UI來呈現就會舒服很多了。幸運如我們這些後輩,已經有前人開發好這樣的工具了,就叫做Spring Boot Admin。
要使用Spring Boot Admin得先起一個Admin server,然後在我們想要監控的app上引入Admin client的dependency並設定連線到該Admin server的application.properties,就搞定了!要注意的是能在UI上面看到的資訊也就是我們Actuator有開放的那些endpoint(預設只會開啟/health)。
起一個新的Spring Boot Project,並引入以下denpendency:
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-server</artifactId>
</dependency>
然後別忘了要設定一個與要監控的app不同的server port:
#application.properties
server.port = 9090
這樣就搞定了!我們來啟動它並去localhost:9090看看:
接著我們在想要監控的SpringBootApp上引入以下dependency:
<dependency>
<groupId>de.codecentric</groupId>
<artifactId>spring-boot-admin-starter-client</artifactId>
</dependency>
並在application.properties中設定我們Admin server的位址:
#application.yaml
spring:
boot:
admin:
client:
url: http://localhost:9090
搞定啦!我們啟動我們的app後,重整一下localhost:9090,就可以看到有抓到我們的app了,並可以看到以下的圖表畫面:
當然,也要記得替我們的Spring Boot Admin server套上安全性的防護,而身為Spring Boot project,就代表這些也都可以透過Spring Security做到~