Elasticsearch 集群管理是確保分布式環境下系統穩定運行、高可用和高性能的關鍵。以下從集群架構、節點類型、故障轉移到監控優化,全面解析 Elasticsearch 集群管理的核心要點:
一、集群架構與節點類型
1. 基本概念
- 集群(Cluster):由一個或多個節點組成,共同存儲數據并提供搜索服務,通過唯一的
cluster.name
標識。 - 節點(Node):集群中的單個服務器,負責存儲數據、參與集群運算和請求處理。
- 分片(Shard):索引的物理拆分單元,每個分片是一個獨立的 Lucene 索引,支持水平擴展和分布式操作。
- 副本(Replica):分片的冗余備份,提供高可用性和讀寫負載均衡。
2. 節點角色分類
角色類型 | 核心功能 |
---|---|
主節點(Master) | 負責集群元數據管理(如索引創建、分片分配),需穩定且資源充足。通過 node.master: true 配置。 |
數據節點(Data) | 存儲索引分片數據,執行數據相關操作(如搜索、聚合),IO 密集型。通過 node.data: true 配置。 |
協調節點(Coordinating) | 接收客戶端請求,路由到對應節點并合并結果,需高內存和網絡帶寬。所有節點默認具備此角色。 |
預處理節點(Ingest) | 執行數據導入前的預處理(如字段轉換、JSON 解析),通過 node.ingest: true 配置。 |
機器學習節點(ML) | 運行機器學習作業(如異常檢測),需專用資源。通過 node.ml: true 配置。 |
二、集群健康狀態與分片分配
1. 集群健康指標
通過 GET /_cluster/health
查看:
-
狀態顏色:
- 綠色:所有主分片和副本分片都可用,集群完全健康。
- 黃色:所有主分片可用,但至少有一個副本分片不可用(如節點故障)。
- 紅色:至少有一個主分片不可用,數據可能丟失,集群部分功能受限。
-
關鍵指標:
{"cluster_name": "my_cluster","status": "green", // 集群狀態"number_of_nodes": 3, // 節點數<