ElasticStack遷移
本文發佈於1180天前,文中的資訊可能已有所發展或是改變,請謹慎使用!
AI摘要:本文介绍了ElasticStack数据迁移的四种方案:elasticsearch-dump、reindex、snapshot和logstash。每种方案的原理、网络要求、迁移速度、适用场景和配置复杂度都有详细说明。其中,elasticsearch-dump适用于小数据量迁移,reindex和snapshot适用于大数据量迁移,而logstash适用于一般数据量的近即時数据传输。此外,还提供了reindex操作的JSON示例和集群配置的YAML示例。
Powered by 部落Bot.
方案 | elasticsearch-dump | reindex | snapshot | logstash |
---|---|---|---|---|
基本原理 | 邏輯備份,類似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"]