elk筆記6--reindex 實踐
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字段。
reindex 結果: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" } }
3 常見問題|注意事項
- 在生產環境中,由於Reindex 並不從源index拷貝settings,也不會拷貝其對應的Mappings,shard數量,replicas數量等屬性,因此實際執行_reindex之前需要先配置index的屬性。
4 說明
測試使用的elk版本爲6.8.8和7.2.0
elastic reindex-upgrade
elastic reindex-upgrade-remote