本文不進行Spring Boot Admin入門知識點說明
在Spring Boot Actuator
中提供很多像health
、metrics
等實時監控接口,可以方便我們隨時跟蹤服務的性能指標。Spring Boot
默認是開放這些接口提供調用的,那么就問題來了,如果這些接口公開在外網中,很容易被不法分子所利用,這肯定不是我們想要的結果。在這里我們提供一種比較好的解決方案。
- 被監控的服務配置
為被保護的http請求添加請求前綴
1 |
management: |
- 添加請求前綴
Spring Boot Admin
在啟動的時候會去eureka
拉去服務信息,其中health
與info
需要特殊處理,這兩者的地址是根據status-page-url-path
和health-check-url-path
的值。
zuul
網關配置
zuul
保護內部服務http接口
1 |
zuul: |
- 這里之所以不是
/example-context/**
,由於網關存在項目前綴,需要往前一級,大家可以具體場景具體配置
Spring Boot Admin
配置
配置監控的指標參數
1 |
spring:< 大專欄 Spring Boot Admin最佳實踐/span> |
- 與應用配置的
management.context-path
相同 - 添加需要被監控的應用
Service-Id
,以逗號分隔
講解一下,通過創建一個請求前綴,可以在網關處使用前綴的方式將其排除,也就是外網將無法訪問這些監控API,同時,內網還是可以進行加前綴的方式進行訪問,為Spring Boot Admin
提供了支持條件。management
還支持port和ip的方式,但這兩種方式有局限性,如果在同一台機器上部署多個服務,就會存在端口占用或者其他問題。這種方案還有一個好處,以上配置一旦確定以后,所有服務都不需要進行特殊化處理,可以直接使用。
問答:
- 問題:Full authentication is required to access this resource