文件

健康檢查 API

MinIO 會公開未經驗證的端點,用於探測節點的執行時間和叢集的高可用性,以進行簡單的健康檢查。這些端點會傳回 HTTP 狀態碼,指出基礎資源是否運作良好或滿足讀取/寫入仲裁。MinIO 不會透過這些端點公開任何其他資料。

節點存活度

使用下列端點測試 MinIO 伺服器是否在線上

curl -I https://minio.example.net:9000/minio/health/live

https://minio.example.net:9000 替換為要檢查的 MinIO 伺服器的 DNS 主機名稱。

回應碼 200 OK 表示 MinIO 伺服器在線上且正常運作。任何其他 HTTP 程式碼都表示連線至伺服器時發生問題,例如暫時性網路問題或潛在停機。

單獨的健康檢查探測無法判斷 MinIO 伺服器是否離線,只能判斷目前的託管機器無法連線至伺服器。請考慮使用 minio_cluster_nodes_offline_total 指標設定 Prometheus 警示,以偵測是否有一個或多個 MinIO 節點離線。

叢集寫入仲裁

使用下列端點測試 MinIO 叢集是否具有寫入仲裁

curl -I https://minio.example.net:9000/minio/health/cluster

https://minio.example.net:9000 替換為要檢查的 MinIO 叢集中節點的 DNS 主機名稱。對於使用負載平衡器管理傳入連線的叢集,請指定負載平衡器的主機名稱。

回應碼 200 OK 表示 MinIO 叢集有足夠的 MinIO 伺服器在線上,可滿足寫入仲裁。回應碼 503 Service Unavailable 表示叢集目前不具備寫入仲裁。

單獨的健康檢查探測無法判斷 MinIO 伺服器是否離線或正常處理寫入作業,只能根據設定的 Erasure Code 同位來判斷是否有足夠的 MinIO 伺服器在線上以滿足寫入仲裁需求。請考慮使用下列其中一個指標設定 Prometheus 警示,以偵測 MinIO 叢集上潛在的問題或錯誤

  • minio_cluster_nodes_offline_total,以在一個或多個 MinIO 節點離線時發出警示。

  • minio_node_drive_free_bytes,以在叢集可用磁碟空間不足時發出警示。

叢集讀取仲裁

使用下列端點測試 MinIO 叢集是否具有讀取仲裁

curl -I https://minio.example.net:9000/minio/health/cluster/read

https://minio.example.net:9000 替換為要檢查的 MinIO 叢集中節點的 DNS 主機名稱。對於使用負載平衡器管理傳入連線的叢集,請指定負載平衡器的主機名稱。

回應碼 200 OK 表示 MinIO 叢集有足夠的 MinIO 伺服器在線上,可滿足讀取仲裁。回應碼 503 Service Unavailable 表示叢集目前不具備讀取仲裁。

單獨的健康檢查探測無法判斷 MinIO 伺服器是否離線或正常處理讀取作業,只能根據設定的 Erasure Code 同位來判斷是否有足夠的 MinIO 伺服器在線上以滿足讀取仲裁需求。請考慮使用 minio_cluster_nodes_offline_total 指標設定 Prometheus 警示,以偵測是否有一個或多個 MinIO 節點離線。

叢集維護檢查

使用以下端點來測試,當指定的 MinIO 伺服器因維護而停機時,MinIO 叢集是否能維持 讀取寫入

curl -I https://minio.example.net:9000/minio/health/cluster?maintenance=true

https://minio.example.net:9000 替換為要檢查的 MinIO 叢集中節點的 DNS 主機名稱。對於使用負載平衡器管理傳入連線的叢集,請指定負載平衡器的主機名稱。

回應碼為 200 OK 表示 MinIO 叢集有足夠的 MinIO 伺服器在線上,以滿足寫入仲裁。 回應碼為 412 Precondition Failed 表示如果 MinIO 伺服器離線,叢集將失去仲裁。

單獨的健康檢查探測無法確定 MinIO 伺服器是否離線 - 只能確定在節點因維護而停機後,是否會有足夠的 MinIO 伺服器在線上,以滿足根據設定的 Erasure Code Parity (糾刪碼同位) 的讀寫仲裁要求。考慮使用 minio_cluster_nodes_offline_total 指標配置 Prometheus 警報,以偵測是否有一個或多個 MinIO 節點離線。