• XSS.stack #1 – первый литературный журнал от юзеров форума

[Вопрос] ElasticSearch как сделать backup индекса?

Guron_18

floppy-диск
Пользователь
Регистрация
13.12.2018
Сообщения
1 420
Решения
2
Реакции
2 325
Доброго времени суток.
Столкнулся с проблемой как сделать backup индексов?

В первую очередь попробовал
/_search?size=10000
Но обломался получив всего лишь 10.000 строк.

Далее начались танцы с бубнами
/INDEX/_search?size=0
/INDEX/_search?size=-1
/INDEX/_search?size=count
/INDEX/_search?size=99999999999
во всех случаях я был послан куда подальше...

В интернете нашел два решения через "костыли"

1. через цикл
/INDEX/_search?size=10000&from=0
/INDEX/_search?size=20000&from=10000
...

2. Через параметр scroll
/INDEX/_search?scroll=1m&q=*
нам выдадут некий _scroll_id
который нужен будет для дальнейшего парса
/INDEX/_search/scroll?scroll=1m&scroll_id=тотсамый_scrolid

Так вот собственно вопрос, возможно ли сделать дамп индекса одним запросом?
Заранее спасибо.
 
нужен доступ к ноде где запушен ElasticSearch
а там уже править *.yml файл

или если есть рядом kibana пройдись по настройкам
 
проверь если работает
https://www.elastic.co/guide/en/kibana/current/connect-to-elasticsearch.html
By default, Kibana connects to the Elasticsearch instance running on localhost. To connect to a different Elasticsearch instance, modify the Elasticsearch URL in the kibana.yml configuration file and restart Kibana. For information about using Kibana with your production nodes, see Using Kibana in a production environment.

или это
https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-cross-cluster-search.html
Cross-cluster search lets you run a single search request against one or more remote clusters. For example, you can use a cross-cluster search to filter and analyze log data stored on clusters in different data centers.

p.s подними ноду у себя и пробуй добавлять
но акуратно у многих прод на elastic (поставь как slave или read only)
 
Последнее редактирование:
должно работать, проверил на centos
ставим logstash, java
сохранить этот скрипт как export_from_elastic.sh
Код:
#!/bin/sh
IP=$1
INDEX=$2
DIR_CONFIG=/etc/logstash/conf.d
SAVE_CONFIG=$DIR_CONFIG/$IP-$INDEX.conf
DIR_DATA=/var/lib/logstash
SAVE_DATA=$DIR_DATA/$IP-$INDEX.json
TEMP_FILE=$IP-$INDEX

cat >  $TEMP_FILE << EOF
input {
  elasticsearch {
   hosts => "$IP:9200"
   index => "$INDEX"
   docinfo => true
   docinfo_target => true
   docinfo_fields => ["_index", "_type", "_id"]
  }
}

filter {
 mutate {
  remove_field => [ "@version", "@timestamp" ]
 }
}

output {
 file {
   path => "$SAVE_DATA"
 }
}
EOF

if [ ! -e $SAVE_DATA ]; then
        echo $SAVE_CONFIG
        echo $SAVE_DATA
        sudo mv $TEMP_FILE $SAVE_CONFIG
        sudo chmod 400 $SAVE_CONFIG
        sudo chown logstash.logstash $SAVE_CONFIG
        sudo -Hu logstash /usr/share/logstash/bin/logstash --path.settings=/etc/logstash --path.data=$TEMP_FILE -f $SAVE_CONFIG
else
        echo "Index exist:  $(ls -lh $SAVE_DATA)"
fi

$ ./export_from_elastic.sh 127.0.0.1 my_index
 
Перечитал API ластика запилил "скачиватель". Как время будет выложу код. В принципе вопрос закрыт.

З.ы. одним запросом никак.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх