2015-10-28 2 views
1

У меня есть некоторые индексы на одной из моих машин. Мне нужно скопировать их на другую машину, как я могу это сделать в elasticsearch. Я получил хорошую документацию here, но так как я новичок в экосистеме elasticsearch и, поскольку im toying с меньшими индексами данных, я думал, что буду использовать некоторые плагины или способы, которые будут менее трудоемкими.Чтобы скопировать индекс с одной машины на другую в elasticsearch

ответ

1

Я вижу 3 варианта здесь

  1. Snapshot/Restore - Вы можете перемещать данные в разных географических точках.
  2. Logstash переиндексации - Как отметил Валу
  3. Stream2ES - Это более простое решение
2

Я использовал бы Logstash с плагином elasticsearch input и плагином elasticsearch output.

После installing Logstash, вы можете создать файл конфигурации copy.conf который выглядит следующим образом:

input { 
    elasticsearch { 
    hosts => "localhost:9200"      <--- source ES host 
    index => "source_index" 
    } 
} 
filter { 
mutate { 
    remove_field => [ "@version", "@timestamp" ] <--- remove added junk 
} 
} 
output { 
elasticsearch { 
    host => "localhost"       <--- target ES host 
    port => 9200 
    protocol => "http" 
    manage_template => false 
    index => "target_index" 
    document_id => "%{id}"      <--- name of your ID field 
    workers => 1 
} 
} 

И затем после установки правильных значений (источник/целевой хост + источник/целевой индекс), вы можете запустить с bin/logstash -f copy.conf

+0

@michaellother Любой удачи с этим? – Val

+0

Да. Но я искал что-то более простое, без участия logstash. –

+0

Тогда я бы рекомендовал другой ответ, используя моментальный снимок/восстановление. – Val

1

Вы также можете использовать функцию моментального снимка и восстановления, где вы можете сделать снимок (резервное копирование) одного индекса, а затем восстановить его в другом месте.

Просто взгляните на https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html