Как обновить Elasticsearch с версии 6 до версии 7

В этой статье мы рассмотрим обновление Elasticsearch 6.8.23 до Elasticsearch 7.17.5. Более подробную информацию об обновлении версий в целом, о различных доступных методах и обо всем, что нужно знать перед началом обновления, вы можете найти в нашем полном руководстве здесь: Как обновлять версии Elasticsearch.

Скользящие обновления поддерживаются только с версии Elasticsearch 6.8.23 до версии Elasticsearch 7.17.5. Для перехода с более ранних версий 6 (6.1, 6.2 и т. д.) на версию 7 требуется полный перезапуск кластера или обновление до версии 6.8.23 перед переходом на версию 7.

Подготовка к обновлению узлов Elasticsearch

Узлы Elasticsearch не могут быть понижены после обновления. Перед началом процесса обновления необходимо выполнить следующие действия:

Используйте помощник по обновлению Kibana

Помощник по обновлению Kibana очень полезен, поскольку он может указать:

  • Индексы, которые несовместимы с версией 7 и должны быть переиндексированы.
  • Настройки в elasticsearch.yml и/или kibana.yml, которые устарели и должны быть обновлены/заменены.
  • Настройки кластера, несовместимые с версией 7.

Проверьте журнал устаревания

Вы должны прочитать и устранить все проблемы, отмеченные в журнале исправлений. Эти журналы обычно находятся в:

Обзор изменений

Документация об изменениях публикуется с каждой новой версией Elasticsearch, чтобы вы знали о функциональности, которая может измениться или исчезнуть. Вы всегда должны проверять эту документацию, чтобы убедиться, что ни один из этих параметров, конфигураций или сопоставлений не используется в вашей системе.

Основными вещами, которые могут быть затронуты, являются:

  • Конфигурация узла (elasticsearch.yml)
  • Сопоставления и шаблоны индексов
  • Настройки кластера
  • Код, используемый в клиентах Elasticsearch (приложения и скрипты индексирования)

Наиболее важными изменениями в версии 7 являются:

  • Hits.total теперь является объектом, поэтому вам нужно заменить его на hits.total.value.
  • Изменения в способе формирования кластеров: Настройки zen discovery в Elastic.yml были заменены на discovery.seed_hosts и другие

Проверьте совместимость плагинов Elasticsearch

Если вы используете какие-либо плагины Elasticsearch, вам следует проверить их доступность и совместимость с новой версией.

Настройте тестовую среду

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

Резервное копирование данных

Помните, что понизить версию узла Elasticsearch невозможно, поэтому единственный способ практически отменить неудачное обновление - это создать новый кластер со старой версией и восстановить данные из снимков. Поэтому перед началом процесса обновления необходимо сделать снимки всех индексов Elasticsearch.

В качестве дополнительной меры предосторожности рекомендуется также экспортировать все визуализации Kibana в файл.

Обновление узлов в рамках скользящего обновления

Процесс обновления узлов выглядит следующим образом: сначала обновляются все узлы, не имеющие права на использование мастера.

Как обновить узлы в рамках скользящего обновления:

  1. Убедитесь, что ваш кластер стабилен, зеленый
    Вам нужно убедиться, что все реплики доступны, чтобы отключение узла не привело к потере данных.
  2. Отключите ненужное индексирование
    Там, где это практически возможно, следует остановить все процессы индексирования, поскольку это повысит стабильность кластера.
  3. Отключите выделение шардов
    Важно остановить перераспределение шардов, чтобы при остановке узла для обновления кластер не перераспределил шарды на другой узел (см. команду ниже).
  4. Остановить Elasticsearch
  5. Удалите старые плагины
  6. Обновление Elasticsearch
    Метод, используемый для обновления, зависит от метода установки.
  7. Обновить плагины
    Elasticsearch не запустится, если плагин не соответствует версии Elasticsearch.
  8. Запустить Elasticsearch
  9. Повторно включите выделение шардов (Используйте команду, приведенную ниже).
  10. Проверьте, что обновленный узел снова присоединился к кластеру.
    С помощью приведенной ниже команды вы можете проверить, сколько узлов находится в кластере.
  11. Дождитесь, пока статус кластера станет зеленым
    Команда, представленная ниже, также покажет вам прогресс процесса восстановления шардов на обновленном узле, пока кластер не станет зеленым.
    Не торопитесь обновлять узлы, дождитесь полного восстановления кластера, прежде чем двигаться дальше. Если кластер не становится зеленым, посмотрите в журналах, чтобы найти любые проблемы, которые могут указывать на проблемы с обновлением или конфигурацией.
  12. Повторите
    Повторите весь описанный выше процесс для каждого узла.

Примеры команд

Чтобы остановить узел:

Чтобы отключить выделение шардов, выполните команду:

Чтобы удалить плагины, например, s3:

Чтобы перезагрузить демон после обновления:

Чтобы снова включить распределение шардов, выполните команду:

Чтобы получить статус кластера и узнать, сколько узлов в нем находится, воспользуйтесь командой:

Понравилась статья? Поделиться с друзьями:
Добавить комментарий