{
"status": "UP",
"checks": []
}
Keycloak 內建支援健康檢查。本指南說明如何啟用和使用 Keycloak 健康檢查。Keycloak 健康檢查預設會透過管理連接埠 9000
暴露。詳細資訊請參閱設定管理介面。
Keycloak 暴露 4 個健康檢查端點
/health/live
/health/ready
/health/started
/health
關於每個端點的含義,請參閱Quarkus SmallRye Health 文件。
這些端點在成功時會回應 HTTP 狀態 200 OK
,失敗時會回應 503 Service Unavailable
,並包含類似以下的 JSON 物件
{
"status": "UP",
"checks": []
}
{
"status": "UP",
"checks": [
{
"name": "Keycloak database connections health check",
"status": "UP"
}
]
}
可以使用建置時選項 health-enabled
來啟用健康檢查。
bin/kc.[sh|bat] build --health-enabled=true
預設情況下,健康檢查端點不會傳回任何檢查結果。
建議透過外部 HTTP 請求來監控健康檢查端點。由於安全措施會從 Keycloak 容器映像中移除 curl
和其他套件,因此本機基於命令的監控將無法輕鬆運作。
如果您未使用容器中的 Keycloak,則可以使用任何您想要的方法來存取健康檢查端點。
您可以使用簡單的 HTTP HEAD 請求來判斷 Keycloak 的 live
或 ready
狀態。curl
是適合此目的的 HTTP 客戶端。
如果 Keycloak 部署在容器中,您必須從容器外部執行此命令,因為先前已提及的安全措施。例如:
curl --head -fsS https://127.0.0.1:9000/health/ready
如果命令傳回狀態 0,則 Keycloak 處於 live
或 ready
狀態,具體取決於您呼叫的端點。否則表示有問題。
定義一個 HTTP 探針,以便 Kubernetes 可以外部監控健康檢查端點。請勿使用存活命令。
Containerfile 的 HEALTHCHECK
指令定義一個會在容器執行時定期在容器內執行的命令。Keycloak 容器沒有安裝任何 CLI HTTP 客戶端。請考慮安裝 curl
作為額外的 RPM,如在容器中執行 Keycloak 指南中所述。請注意,您的容器可能會因此變得較不安全。
下表顯示可用的檢查。
檢查 | 說明 | 需要指標 |
---|---|---|
資料庫 |
傳回資料庫連線集區的狀態。 |
是 |
對於某些檢查,您還需要啟用指標,如「需要指標」欄所示。若要啟用指標,請使用以下 metrics-enabled
選項:
bin/kc.[sh|bat] build --health-enabled=true --metrics-enabled=true
值 | |
---|---|
|
|