透過 HTTP 監控與管理
如果您正在開發網路應用程式,Spring Boot Actuator 會自動組態所有已啟用的端點,使其透過 HTTP 公開。預設慣例是使用端點的 id
,並以 /actuator
作為 URL 路徑的前綴。例如,health
會公開為 /actuator/health
。
Actuator 原生支援 Spring MVC、Spring WebFlux 和 Jersey。如果 Jersey 和 Spring MVC 都可用,則會使用 Spring MVC。 |
為了獲得 API 文件中記錄的正確 JSON 回應,Jackson 是必要的依賴項。 |
自訂管理端點路徑
有時,自訂管理端點的前綴會很有用。例如,您的應用程式可能已經將 /actuator
用於其他目的。您可以使用 management.endpoints.web.base-path
屬性來變更管理端點的前綴,如下列範例所示
-
屬性
-
YAML
management.endpoints.web.base-path=/manage
management:
endpoints:
web:
base-path: "/manage"
先前的 application.properties
範例將端點從 /actuator/{id}
變更為 /manage/{id}
(例如,/manage/info
)。
除非管理埠已組態為使用不同的 HTTP 埠公開端點,否則 management.endpoints.web.base-path 相對於 server.servlet.context-path (對於 servlet 網路應用程式) 或 spring.webflux.base-path (對於反應式網路應用程式)。如果已組態 management.server.port ,則 management.endpoints.web.base-path 相對於 management.server.base-path 。 |
如果您想要將端點對應到不同的路徑,可以使用 management.endpoints.web.path-mapping
屬性。
下列範例將 /actuator/health
重新對應到 /healthcheck
-
屬性
-
YAML
management.endpoints.web.base-path=/
management.endpoints.web.path-mapping.health=healthcheck
management:
endpoints:
web:
base-path: "/"
path-mapping:
health: "healthcheck"
自訂管理伺服器埠
使用預設 HTTP 埠公開管理端點對於雲端部署來說是明智的選擇。但是,如果您的應用程式在您自己的資料中心內執行,您可能更喜歡使用不同的 HTTP 埠來公開端點。
您可以設定 management.server.port
屬性來變更 HTTP 埠,如下列範例所示
-
屬性
-
YAML
management.server.port=8081
management:
server:
port: 8081
在 Cloud Foundry 上,預設情況下,應用程式僅在埠 8080 上接收 HTTP 和 TCP 路由的請求。如果您想在 Cloud Foundry 上使用自訂管理埠,則需要明確設定應用程式的路由,以將流量轉發到自訂埠。 |
組態管理專用的 SSL
當組態為使用自訂埠時,您也可以使用各種 management.server.ssl.*
屬性,為管理伺服器組態其自己的 SSL。例如,這樣做可以讓管理伺服器透過 HTTP 提供服務,而主要應用程式則使用 HTTPS,如下列屬性設定所示
-
屬性
-
YAML
server.port=8443
server.ssl.enabled=true
server.ssl.key-store=classpath:store.jks
server.ssl.key-password=secret
management.server.port=8080
management.server.ssl.enabled=false
server:
port: 8443
ssl:
enabled: true
key-store: "classpath:store.jks"
key-password: "secret"
management:
server:
port: 8080
ssl:
enabled: false
或者,主要伺服器和管理伺服器都可以使用 SSL,但使用不同的金鑰儲存庫,如下所示
-
屬性
-
YAML
server.port=8443
server.ssl.enabled=true
server.ssl.key-store=classpath:main.jks
server.ssl.key-password=secret
management.server.port=8080
management.server.ssl.enabled=true
management.server.ssl.key-store=classpath:management.jks
management.server.ssl.key-password=secret
server:
port: 8443
ssl:
enabled: true
key-store: "classpath:main.jks"
key-password: "secret"
management:
server:
port: 8080
ssl:
enabled: true
key-store: "classpath:management.jks"
key-password: "secret"
自訂管理伺服器位址
您可以透過設定 management.server.address
屬性來自訂管理端點可用的位址。如果您只想在內部或面向運營的網路上監聽,或者只想監聽來自 localhost
的連線,這樣做可能會很有用。
只有當埠與主要伺服器埠不同時,您才能在不同的位址上監聽。 |
下列 application.properties
範例不允許遠端管理連線
-
屬性
-
YAML
management.server.port=8081
management.server.address=127.0.0.1
management:
server:
port: 8081
address: "127.0.0.1"