У меня есть некоторые индексы на одной из моих машин. Мне нужно скопировать их на другую машину, как я могу это сделать в elasticsearch. Я получил хорошую документацию here, но так как я новичок в экосистеме elasticsearch и, поскольку im toying с меньшими индексами данных, я думал, что буду использовать некоторые плагины или способы, которые будут менее трудоемкими.Чтобы скопировать индекс с одной машины на другую в elasticsearch
1
A
ответ
1
Я вижу 3 варианта здесь
- Snapshot/Restore - Вы можете перемещать данные в разных географических точках.
- Logstash переиндексации - Как отметил Валу
- 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
1
Вы также можете использовать функцию моментального снимка и восстановления, где вы можете сделать снимок (резервное копирование) одного индекса, а затем восстановить его в другом месте.
Просто взгляните на https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-snapshots.html
@michaellother Любой удачи с этим? – Val
Да. Но я искал что-то более простое, без участия logstash. –
Тогда я бы рекомендовал другой ответ, используя моментальный снимок/восстановление. – Val