elk筆記6--reindex 實踐
- 1 reindex 介紹
- 2 reindex 實踐
- 2.1 同叢集内部reindex
- 2.2. 跨叢集reindex
- 3 常見問題|注意事項
- 4 說明
1 reindex 介紹
reindex 用于提取源index的文檔到目的index。可以根據需要拷貝所有文檔到目的index,也可以按照條件拷貝比對的一部分文檔到目标索引。其既可以在同一個叢集,也可以在不同叢集之間操作,不同叢集之間多用于索引遷移(如舊叢集要下線的時候)。
2 reindex 實踐
2.1 同叢集内部reindex
将叢集内部a index reindex 到同一個叢集内的b index.
此處通過時間過濾,2019-10-30T00:00:00 之後的都進行index.
POST _reindex
{
"source":{
"index":"ksdf_0531",
"query":{
"range":{
"timestamp":{
"gte": "2019-10-30T00:00:00"
}
}
}
},
"dest":{
"index": "ksdf_0531-2"
}
}
reindex 結果:
2.2. 跨叢集reindex
将A叢集内部a index reindex 到B叢集内的b index.
-
設定白名單
在B叢集的elasticsearch.yml 中添加 reindex.remote.whitelist: 10.120.75.102:9200, 并重新開機節點。
-
執行reindex 指令
将A 叢集内kibana_sample_data_flights reindex到B叢集ksdf_0531,過濾掉2019-10-31之前的資料. 若叢集帶認證,還需要在source中添加對應的username 和password字段。
POST _reindex
{
"source": {
"index": "kibana_sample_data_flights",
"remote": {
"host": "http://10.120.75.102:9200"
},
"query": {
"range": {
"timestamp": {
"gte": "2019-10-30T00:00:00"
}
}
}
},
"dest": {
"index": "ksdf_0531"
}
}
- reindex 結果:
3 常見問題|注意事項
- 在生産環境中,由于Reindex 并不從源index拷貝settings,也不會拷貝其對應的Mappings,shard數量,replicas數量等屬性,是以實際執行_reindex之前需要先配置index的屬性。