項目中需要監控各個微服務節點的健康狀態,找到了spring boot admin這個全家桶監控工具,它其實是Vue.js美化過的Spring Boot Actuator,官方的解釋是:
codecentric’s Spring Boot Admin is a community project to manage and monitor your Spring Boot ® applications. The applications register with our Spring Boot Admin Client (via HTTP) or are discovered using Spring Cloud ® (e.g. Eureka, Consul). The UI is just a Vue.js application on top of the Spring Boot Actuator endpoints.
它有兩種使用方式,一種是客戶端主動連接服務端,另一種是基於Spring Cloud Discovery(Eureka、Consul、Zookeeper等),因為項目里已經集成了Eureka,所以采用第二種方式搭建。
個人覺得官方文檔並不是十分的友好,推薦這個詳細搭建的步驟供大家參考:
https://juejin.im/post/5c34bcfdf265da615b71a3a8
運行成功后有一個服務節點一直顯示為DOWN,訪問http://127.0.0.1/actuator/health返回
{"status":"DOWN"}
其他節點正常。
在顯示DOWN的客戶端添加如下配置:
management:
endpoints:
web:
exposure:
include: "*" #暴露所有節點
health:
sensitive: false #關閉過濾敏感信息
endpoint:
health:
show-details: ALWAYS #顯示詳細信息
再次訪問訪問http://127.0.0.1/actuator/health,返回:
{
"status":"DOWN",
"diskSpace":{
"status":"DOWN",
"total":16579448832,
"free":20480,
"threshold":10485760
},
"db":{
"status":"UP",
"database":"H2",
"biz":1
}
原來是磁盤空間不足,處理后所有監控節點都為UP正常狀態。(黃色的有本地啟動的instance,可忽略)
這里要注意一下,只要其中一個監控內容為DOWN,則該節點的總體狀態就為DOWN。
參考鏈接:
http://codecentric.github.io/spring-boot-admin/2.1.2/
https://github.com/codecentric/spring-boot-admin
https://juejin.im/post/5c34bcfdf265da615b71a3a8
https://github.com/forezp/SpringCloudLearning/tree/master/sc-f-boot-admin-cloud