AI摘要:本文介绍了ElasticStack数据迁移的四种方案:elasticsearch-dump、reindex、snapshot和logstash。每种方案的原理、网络要求、迁移速度、适用场景和配置复杂度都有详细说明。其中,elasticsearch-dump适用于小数据量迁移,reindex和snapshot适用于大数据量迁移,而logstash适用于一般数据量的近即時数据传输。此外,还提供了reindex操作的JSON示例和集群配置的YAML示例。
Powered by 部落Bot.
方案elasticsearch-dumpreindexsnapshotlogstash
基本原理邏輯備份,類似mysqldump將數據一條一條導出後再執行導入reindex 是 Elasticsearch 提供的一個 API 介面,可以把數據從一個集群遷移到另外一個集群從源集群通過Snapshot API 創建數據快照,然後在目標集群中進行恢復從一個集群中讀取數據然後寫入到另一個集群
網路要求集群間互導需要網路互通,先導出檔再通過檔導入集群則不需要網路互通網路需要互通無網路互通要求網路需要互通
遷移速度一般
適合場景適用於數據量小的場景適用於數據量大,線上遷移數據的場景適用於數據量大,接受離線數據遷移的場景適用於數據量一般,近即時數據傳輸
配置複雜度中等簡單複雜中等

遷移索引數據

POST _reindex?wait_for_completion=false
{
  "conflicts": "proceed",
  "source": {
    "remote": {
      "host": "http://10.0.0.125:9200",
      "username": "elastic",
      "password": "xxxxxxxx"
    },
    "index": "winlogbeat-7.14.1-2021.10.04-000002",
    "size": "4000", 
      "query": {
        "bool": {
          "must_not": [
            {
              "match_phrase": {
                "event.action": "Web 事件"
              }
            }
          ],
          "minimum_should_match": 1
        }
      }
  },
  "dest": {
    "index": "winlogbeat-7.14.1-2021.10.04-000002"
  }
}

集群配置

#集群名稱,需配置一樣
cluster.name: "docker-cluster"
#⽹關地址
network.host: 0.0.0.0

#節點名稱
node.name: node-docker 
#能否作為主節點
node.master: true
#是否存儲數據
node.data: true
#最大集群節點數
node.max_local_storage_nodes: 3 
#內部節點之間通訊端口
transport.tcp.port: 9300
#所有節點主機IP地址
discovery.seed_hosts: ["10.0.0.125:9300", "10.0.0.127:9300", "10.0.0.212:9300"]
#候選主節點,在開啟服務後可以被選為主節點
cluster.initial_master_nodes: ["81809b788dbc", "node-1"]