健康檢查 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 節點離線。