天天看點

elk筆記6--reindex 實踐

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 結果:

elk筆記6--reindex 實踐

2.2. 跨叢集reindex

将A叢集内部a index reindex 到B叢集内的b index.

  1. 設定白名單

    在B叢集的elasticsearch.yml 中添加 reindex.remote.whitelist: 10.120.75.102:9200, 并重新開機節點。

  2. 執行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"
  }
}      
  1. reindex 結果:

3 常見問題|注意事項

  1. 在生産環境中,由于Reindex 并不從源index拷貝settings,也不會拷貝其對應的Mappings,shard數量,replicas數量等屬性,是以實際執行_reindex之前需要先配置index的屬性。

4 說明