Elasticsearch Snapshot: Резервное копирование индекса, включая примеры

Снимок Elasticsearch - это резервная копия индекса, взятая из работающего кластера. Снимки делаются инкрементально. Это означает, что при создании снимка индекса Elasticsearch не будет копировать данные, которые уже были сохранены в предыдущем снимке индекса (если только они не были изменены). Поэтому рекомендуется делать снимки часто.

Вы можете восстановить снимки в работающем кластере с помощью API восстановления. Снимки могут быть восстановлены только в тех версиях Elasticsearch, которые могут читать индексы. Перед восстановлением проверьте совместимость версий. Невозможно восстановить индекс в кластер, который более чем на одну версию выше версии индекса.

Поддерживаются следующие типы хранилищ:

  • Расположение в файловой системе
  • Объектное хранилище S3
  • HDFS
  • Облачные хранилища Azure и Google

Примеры

Пример использования репозитория S3 для Elasticsearch

Также необходимо задать ключ доступа к S3 и секретный ключ в хранилище ключей Elasticsearch.

Создание моментального снимка

После установки репо создание моментального снимка сводится к вызову API.

Где backup - имя репозитория снапшотов, а my_snapshot-01-10-2023 - имя снапшота. В приведенном выше примере будет сделан моментальный снимок всех индексов. Чтобы сделать снимок определенных индексов, укажите имена индексов, для которых требуется сделать снимок.

Восстановление моментального снимка

Восстановление из моментального снимка также является вызовом API:

В результате будут восстановлены индексы index_1 и index_2 из моментального снимка my_snapshot-01-10-2019 в хранилище резервных копий.

Примечания и полезные сведения

Перед созданием моментального снимка необходимо настроить репозиторий, а также установить плагин репозитория S3, если вы планируете использовать репозиторий с S3 в качестве внутреннего хранилища.

  • Для автоматизации создания моментальных снимков можно использовать инструмент curator_cli, например расписание заданий Cron, Kenkins или Kubernetes.
  • Лучше использовать снимки Elasticsearch вместо дисковых резервных копий/снапшотов. Для восстановления индекс должен быть закрыт.
  • Другим вариантом является удаление индекса перед его восстановлением. Механизм моментальных нимков и восстановления также может использоваться для копирования данных с одного кластера на другой.
  • Если у вас нет хранилища S3, вы можете запустить minio с бэкендом NFS, чтобы создать эквивалент S3 для моментальных снимков кластера
  • При повторной попытке выполнения операции будет выполняться только попытка создания снимков тех шардов, которые не удалось создать при первой операции, до тех пор, пока снимок не будет выполнен успешно.
  • Репозиторий моментальных снимков лучше располагать в локальной сети с Elasticsearch или настраивать/проектировать хранилище на высокую пропускную способность записи, чтобы не иметь дело с неполными снимками.
  • Операция моментального снимка завершится неудачно, если отсутствует индекс. Установка опции ignore_unavailable в true приведет к тому, что несуществующие индексы будут игнорироваться при выполнении моментального снимка.
  • Если вы используете какой-либо инструмент безопасности с открытым исходным кодом, например SearchGuard, то перед восстановлением снимков вам необходимо настроить параметры восстановления снимков Elasticsearch на кластере.
    В файле elasticsearch.yml:
Понравилась статья? Поделиться с друзьями:
Добавить комментарий