Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›Руководство по миграции

Миграция на 7.13

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

См. также Что нового в 7.17 и Справочные материалы по выпуску.

  • Изменения отображения
  • Изменения SSL/TLS
  • Изменения настроек
  • Устаревшие агрегации
  • Устаревшие компоненты ядра
  • Устаревшие EQL
  • Устаревшие компоненты безопасности
  • Устаревшие настройки

Существенные изменения

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

Существенные изменения, внедренные в дополнительных версиях, обычно ограничиваются вопросами безопасности и исправлениями ошибок. Значительные изменения поведения устаревают в дополнительной версии, а старое поведение поддерживается до следующего основного выпуска. Чтобы узнать, используете ли вы какие-либо устаревшие функции, включите регистрацию устаревших функций.

Изменения отображения

Гео-мапперы больше не принимают внешние значения от многопольных значений.

Подробности
В предыдущих версиях гео-поля теоретически могли использоваться в качестве подполя, если их родительское поле задавало геометрический объект как внешнее значение при разборе. Эта функция не использовалась в коде Elasticsearch и препятствовала необходимым изменениям для разрешения сценариев индексирования на полях geo_point, поэтому она была удалена.

Гео-мапперы точек передают геохеши подполям по одному.

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

Изменения SSL/TLS

TLSv1.1 и TLSv1.0 отключены в интегрированной JDK

Подробности
При использовании интегрированной JDK по умолчанию отключены TLSv1.1 и TLSv1.0. Это может повлиять на подключения SSL к API REST для некоторых старых клиентов. Также это может повлиять на исходящие соединения, такие как webhook наблюдателя, аутентификацию LDAP или доступ к репозиториям снимков.

Большинство развертываний Elasticsearch не затронуты этим изменением, так как в этих более старых версиях TLS известны уязвимости и они больше не используются активно.

Инструкции по включению этих более старых версий TLS в вашем кластере Elasticsearch см. в Включение дополнительных версий SSL/TLS в JDK.

Изменения настроек

xpack.searchable.snapshot.shared_cache.size больше не поддерживается в качестве пользовательской настройки для Elasticsearch Service

Подробности
Теперь вы больше не можете настроить xpack.searchable.snapshot.shared_cache.size в развертываниях Elasticsearch Service, работающих на Elasticsearch 7.13 или более поздних версиях. Эта настройка резервирует дисковое пространство для общего кэша частично смонтированных индексов. Elasticsearch теперь автоматически настраивает настройку на 90% от общего дискового пространства для узлов уровня замороженных данных и на 0b для узлов уровня данных, не замороженных.

Воздействие
Если вы используете Elasticsearch Service и ранее настраивали xpack.searchable.snapshot.shared_cache.size, удалите его из своих пользовательских настроек перед обновлением до 7.13 или более поздней версии. В противном случае попытки обновления развертывания завершатся сбоем и возвращением ошибки.

Изменения на уровне замороженных данных и нескольких путей к данным

Подробности
Elasticsearch 7.12 включал технический предварительный просмотр уровня замороженных данных, позволяя использовать частично смонтированные индексы (смонтированные с опцией общего кэша). Для использования этой функции потребовалось настроить общий кэш, используя настройку xpack.searchable.snapshot.shared_cache.size.

В Elasticsearch 7.13+ наличие ненулевой xpack.searchable.snapshot.shared_cache.size на узлах, использующих несколько путей к данным (path.data указывает на несколько расположений), больше не поддерживается и помешает запуску узла. Если вы не используете несколько путей к данным, это не повлияет на вас. Аналогично, если вы не задавали xpack.searchable.snapshot.shared_cache.size и не настраивали выделенные узлы для замороженных данных (узлы с ролью data_frozen и без других ролей данных), это не повлияет на вас.

Устаревшие функции

Следующие функции устарели в Elasticsearch 7.13 и будут удалены в 8.0. Хотя это не окажет немедленного влияния на ваши приложения, мы настоятельно рекомендуем выполнить описанные шаги по обновлению кода после обновления до 7.13.

Значительные изменения в поведении устаревают в дополнительном выпуске, а старое поведение поддерживается до следующего основного выпуска. Чтобы узнать, используете ли вы какие-либо устаревшие функции, включите регистрацию устаревших функций.

Устаревшие агрегации

Устарели агрегации дат для полей boolean.

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

Устаревшие компоненты ядра

Поддержка нескольких путей к данным устарела.

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

Воздействие
Чтобы избежать предупреждений об устаревании, укажите один путь в path.data. При необходимости можно создать файловую систему, охватывающую несколько дисков, с помощью аппаратного слоя виртуализации, например RAID, или программного слоя виртуализации, например Logical Volume Manager (LVM) в Linux или Storage Spaces в Windows. Если вы хотите использовать несколько путей к данным на одном компьютере, необходимо запустить по одному узлу на каждый путь к данным.

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

  1. Создайте моментальную копию для защиты данных на случай катастрофы.
  2. Необязательно, перенесите данные с целевого узла, используя фильтр распределения:

    PUT _cluster/settings
    {
      "persistent": {
        "cluster.routing.allocation.exclude._name": "target-node-name"
      }
    }

    Вы можете использовать API cat allocation, чтобы отслеживать прогресс этой миграции данных. Если некоторые фрагменты не мигрируют, API cluster allocation explain поможет определить причину.

  3. Следуйте шагам процесса постепенной перезагрузки вплоть до и включая выключение целевого узла.
  4. Убедитесь, что состояние здоровья кластера yellow или green, так что копия каждого фрагмента назначена хотя бы одному из других узлов в вашем кластере.
  5. При необходимости удалите фильтр распределения, примененный на предыдущем шаге.

    PUT _cluster/settings
    {
      "persistent": {
        "cluster.routing.allocation.exclude._name": null
      }
    }
  6. Удалите данные, хранимые остановленным узлом, удалив содержимое его путей к данным.
  7. Переконфигурируйте хранилище. Например, объедините диски в одну файловую систему с помощью LVM или Storage Spaces. Убедитесь, что переконфигурированное хранилище имеет достаточное пространство для хранения данных.
  8. Переконфигурируйте узел, изменив значение настройки path.data в его файле elasticsearch.yml. При необходимости установите больше узлов, каждый со своей настройкой path.data, указывающей на отдельный путь к данным.
  9. Запустите новые узлы и следуйте остальной части процесса постепенной перезагрузки для них.
  10. Убедитесь, что состояние здоровья кластера green, чтобы каждый фрагмент был назначен.

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

Если вы в настоящее время используете несколько путей к данным, но ваш кластер не является кластером высокой доступности, то вы можете перейти к не устаревшей конфигурации, сделав моментальную копию, создав новый кластер с желаемой конфигурацией и восстановив моментальную копию в него.

Настройка action.destructive_requires_name по умолчанию будет равна true в версии 8.0.0.

Подробности
В версии 8.0.0 настройка action.destructive_requires_name будет иметь значение по умолчанию true. В настоящее время значение по умолчанию равно false.

Воздействие
Если вы используете подстановочный символ (*) или _all для удаления индексов или выполнения других разрушительных действий, используйте API обновления настроек кластера, чтобы установить action.destructive_requires_name в значение false, чтобы избежать ошибок в версии 8.0.0.

index.indexing.slowlog.level и index.search.slowlog.level устарели.

Подробности
Настройки индекса index.indexing.slowlog.level и index.search.slowlog.level теперь устарели. Вы использовали эти настройки для установки уровня ведения журнала для медленных журналов поиска и индексирования. Для воспроизведения аналогичных результатов используйте соответствующие настройки индекса index.indexing.slowlog.threshold.index.debug и index.indexing.slowlog.threshold.index.trace. То же самое относится к index.search.slowlog.level, которую следует заменить на index.search.slowlog.threshold.query.{level}.

Например, для воспроизведения настройки index.indexing.slowlog.level со значением INFO, установите index.indexing.slowlog.threshold.index.debug и index.indexing.slowlog.threshold.index.trace в значение -1.

Воздействие
Чтобы избежать предупреждений об устаревании, прекратите использование устаревших настроек.

Устаревшие функции EQL

Функция wildcard устарела.

Воздействие
Используйте ключевое слово like или regex вместо неё.

Устаревшие настройки безопасности

Неявное включение областей file и native устарело.

Подробности
В настоящее время области file и native обладают следующими неявными поведением:

  • Если области file и native не настроены, они неявно отключены, если настроены другие области.
  • Если доступна область, потому что области не настроены, явно отключены или не разрешены вашей лицензией, области file и native всегда включены, даже если они явно отключены.

Воздействие
Оба вышеперечисленных поведения устарели. В версии 8.0.0 области file и native всегда будут включены, если они не отключены явно. Если они явно отключены, они остаются отключенными в любое время.

Настройка фильтра системных вызовов устарела

Подробности
Elasticsearch использует фильтры системных вызовов, чтобы удалить возможность создавать дочерние процессы. Это полезно для снижения риска удаленных атак с использованием кода. Эти фильтры системных вызовов включены по умолчанию и управляются настройкой bootstrap.system_call_filter. Начиная с Elasticsearch 8.0, фильтры системных вызовов будут обязательны. Таким образом, настройка bootstrap.system_call_filter устарела и будет удалена в Elasticsearch 8.0.

Воздействие
Прекратите использование удаленной настройки. Указание этой настройки в конфигурации Elasticsearch приведет к ошибке при запуске.

Устаревшие настройки

Несколько устаревших настроек фильтрации уровней.

Подробности
Следующие настройки кластера теперь устарели:

  • cluster.routing.allocation.include._tier
  • cluster.routing.allocation.exclude._tier
  • cluster.routing.allocation.require._tier

Также устарели следующие настройки индексов:

  • index.routing.allocation.include._tier
  • index.routing.allocation.exclude._tier
  • index.routing.allocation.require._tier

Эти настройки используются для фильтрации распределения фрагмента в определенный набор узлов. Вместо этого используйте настройку индекса index.routing.allocation.include._tier_preference.

Воздействие
Чтобы избежать предупреждений об устаревании, прекратите использование устаревших настроек.

Настройки path.shared_data и index.data_path устарели.

Подробности
Настройка узла path.shared_data и настройка индекса index.data_path устарели. Elasticsearch ранее использовал эти настройки для теневых реплик. Функция теневых реплик устарела в 5.2 и удалена в 6.0.

Воздействие
Чтобы избежать предупреждений об устаревании, прекратите использование устаревших настроек.

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/migrating-7.13.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API