Миграция на 7.16
В этом разделе обсуждаются изменения, которые необходимо учитывать при миграции вашего приложения на Elasticsearch 7.16.
См. также Что нового в 7.17 и Справочные материалы по выпуску.
Существенные изменения
Следующие изменения в Elasticsearch 7.16 могут повлиять на ваши приложения и помешать их нормальной работе. Перед обновлением до 7.16 ознакомьтесь с этими изменениями и выполните описанные шаги, чтобы смягчить последствия.
Существенные изменения в поведении, введенные в мажорных версиях, обычно ограничены безопасностью и исправлениями ошибок. Значительные изменения в поведении устаревают в мажорном релизе, а старое поведение поддерживается до следующего мажорного релиза. Чтобы узнать, используете ли вы какие-либо устаревшие функции, включите логирование устаревания.
Изменения настроек
Настройка кластера cluster.routing.allocation.disk.threshold_enabled теперь доступна только для оператора.
Подробности
Организованные среды, такие как Elasticsearch Service и Elastic Cloud Enterprise, полагаются на пороги использования диска в Elasticsearch для корректной работы кластера. Например, пороги использования диска помогают определить, насколько большим должен быть масштабируемый кластер. Отключение этих порогов использования диска приводит к неправильной работе системы оркестрации, поэтому начиная с 7.16.0 настройка cluster.routing.allocation.disk.threshold_enabled является настройкой, доступной только для оператора, которую конечные пользователи изменить не могут.
Последствия
Прекратите использовать эту настройку в организованных средах, таких как Elasticsearch Service и Elastic Cloud Enterprise. Обратитесь к администратору среды для получения помощи в управлении дисковым пространством, если это необходимо.
Это изменение не влияет на пользователей вне организованных сред.
Изменения в клиенте REST высокого уровня
API XContent переименован и нарушает импорты при обновлении.
Подробности
Экспортируемый пакет библиотеки XContent переименован из org.elasticsearch.common.xcontent в org.elasticsearch.xcontent. Это изменение нарушает импорты при миграции на Elasticsearch 7.16.
Последствия
Если вы поддерживаете приложение Java-клиента, использующее Java High Level Rest Client (HLRC), обновите все операторы import в вашем исходном коде Java, которые соответствуют:
import org.elasticsearch.common.xcontent.<class>
чтобы вместо этого использовать:
import org.elasticsearch.xcontent.<class>
Это минимально необходимое изменение. Затем необходимо повторно скомпилировать исходный код, чтобы он работал с Elasticsearch 7.17.
Более долгосрочным решением является миграция от (HLRC) полностью.
Параметр ignore_throttled устарел и изменяет параметры индексов, отправленные в Elasticsearch
Подробности
В #77864 High Level Rest Client был изменен таким образом, что отправляет параметры индексов только в том случае, если запрос отличается от параметров запроса по умолчанию. Однако в некоторых случаях параметры запроса по умолчанию для HLRC-объекта запроса непреднамеренно отличаются от эффективных параметров API Elasticsearch, что означает возможность различий в ответах API.
Последствия
Если вы используете HLRC и получаете отличающийся ответ из-за параметров индексов, вы можете обновить параметры, используя метод indicesOptions(...), как показано ниже:
// Previously: highLevelClient.indices().exists(request, RequestOptions.DEFAULT); // With indices options (change boolean options as needed): final var requestWithOptions = request.indicesOptions(IndicesOptions.fromOptions(false, false, true, false)); highLevelClient.indices().exists(requestWithOptions, RequestOptions.DEFAULT);
Более долгосрочным решением является миграция от (HLRC) полностью.
Устаревшие функции
В Elasticsearch 7.16 устарела следующая функциональность, которая будет удалена в 8.0. Хотя это не окажет непосредственного влияния на ваши приложения, мы настоятельно рекомендуем выполнить описанные шаги по обновлению кода после обновления до 7.16.
Значительные изменения в поведении устаревают в мажорном релизе, а старое поведение поддерживается до следующего мажорного релиза. Чтобы узнать, используете ли вы какие-либо устаревшие функции, включите логирование устаревания.
Изменения в области безопасности
Настройка SAML-домена nameid_format больше не имеет значения по умолчанию.
Подробности
В SAML поставщики удостоверений (IdP) могут быть либо явно сконфигурированы для выпуска NameID с определенным форматом, либо сконфигурированы для соблюдения требований поставщика услуг (SP). SP объявляет свои требования в элементе NameIDPolicy запроса аутентификации SAML. В Elasticsearch настройка SAML-домена nameid_format управляет значением NameIDPolicy. Раньше значение по умолчанию для nameid_format было urn:oasis:names:tc:SAML:2.0:nameid-format:transient. Эта настройка создавала запросы аутентификации, требующие от IdP выпуска NameID с форматом transient. Значение по умолчанию было удалено, что означает, что Elasticsearch по умолчанию создает запросы аутентификации SAML, не накладывающие этого требования на IdP. Если вы хотите сохранить предыдущее поведение, установите nameid_format в значение urn:oasis:names:tc:SAML:2.0:nameid-format:transient.
Последствия
Если вы не настраиваете nameid_format явно, возможно, что ваш IdP отклонит запросы на аутентификацию от Elasticsearch, поскольку запросы не указывают формат NameID (и ваш IdP настроен на ожидание одного). Это несоответствие может привести к разрыву конфигурации SAML. Если вы не уверены, настроен ли ваш IdP явно для использования определенного формата NameID и хотите сохранить текущее поведение, попробуйте явно установить nameid_format в значение urn:oasis:names:tc:SAML:2.0:nameid-format:transient.
Настройка xpack.security.transport.ssl.enabled будет обязательной для настройки xpack.security.transport.ssl настроек.
Подробности
Настройка любых настроек SSL для xpack.security.transport.ssl без одновременной настройки xpack.security.transport.ssl.enabled генерирует предупреждения в журнале устаревания. В версии 8.0 эта конфигурация приведет к ошибкам.
Последствия
Чтобы избежать предупреждений об устаревании, выполните одно из следующих действий:
- Явно установите
xpack.security.transport.ssl.enabledкакfalse - Прекратите использовать другие настройки
xpack.security.transport.ssl
Если вы хотите включить SSL, следуйте инструкциям по шифрованию межузловой связи с помощью TLS. В рамках этой конфигурации явно установите xpack.security.transport.ssl.enabled как true.
Например:
xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.keystore.path: elastic-certificates.p12 xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
| или |
Настройка xpack.security.http.ssl.enabled будет обязательна для настройки параметров xpack.security.http.ssl.
Подробности
Настройка любых параметров SSL для xpack.security.http.ssl без одновременной настройки xpack.security.http.ssl.enabled приводит к появлению предупреждений в журнале устаревания. В версии 8.0 такая конфигурация будет приводить к ошибкам.
Воздействие
Чтобы избежать предупреждений об устаревании, выполните одно из следующих действий:
- Явно задайте
xpack.security.http.ssl.enabledкакfalse - Прекратите использование других параметров
xpack.security.http.ssl
Если вы хотите включить SSL, следуйте инструкциям по шифрованию коммуникаций HTTP-клиента для Elasticsearch. В рамках этой конфигурации явно задайте xpack.security.http.ssl.enabled как true.
Например:
xpack.security.http.ssl.enabled: true xpack.security.http.ssl.certificate: elasticsearch.crt xpack.security.http.ssl.key: elasticsearch.key xpack.security.http.ssl.certificate_authorities: [ "corporate-ca.crt" ]
| или |
Для включения SSL для транспортного интерфейса потребуется сертификат и ключ xpack.security.transport.ssl.
Подробности
Включение SSL для транспортного интерфейса без одновременной настройки сертификата и ключа с помощью параметра xpack.security.transport.ssl.keystore.path или параметров xpack.security.transport.ssl.certificate и xpack.security.transport.ssl.key приводит к появлению предупреждений в журнале устаревания. В версии 8.0 такая конфигурация будет приводить к ошибкам.
Воздействие
Если xpack.security.transport.ssl.enabled установлен в true, предоставьте сертификат и ключ, используя параметр xpack.security.transport.ssl.keystore.path или параметры xpack.security.transport.ssl.certificate и xpack.security.transport.ssl.key. Если сертификат и ключ не предоставлены, Elasticsearch будет генерировать предупреждения в журнале устаревания.
Для включения SSL для HTTP-уровня потребуется сертификат и ключ xpack.security.http.ssl.
Подробности
Включение SSL для HTTP-уровня без одновременной настройки сертификата и ключа с помощью параметра xpack.security.http.ssl.keystore.path или параметров xpack.security.http.ssl.certificate и xpack.security.http.ssl.key приводит к появлению предупреждений в журнале устаревания. В версии 8.0 такая конфигурация будет приводить к ошибкам.
Воздействие
Если xpack.security.http.ssl.enabled установлен в true, предоставьте сертификат и ключ, используя параметр xpack.security.http.ssl.keystore.path или параметры xpack.security.http.ssl.certificate и xpack.security.http.ssl.key. Если сертификат и ключ не предоставлены, Elasticsearch будет генерировать предупреждения в журнале устаревания.
Изменения в управлении жизненным циклом индексов (ILM)
Действие ILM freeze устарело и в будущей версии будет являться операцией без действия.
Подробности
Действие «заморозка» ILM теперь устарело. Это связано с тем, что замороженные индексы не предоставляют никаких преимуществ, учитывая улучшения в использовании памяти кучи. В версии 8.0 действие «заморозка» будет операцией без действия и не будет выполнять никаких действий над индексом, так как конечная точка API «заморозка» была удалена в версии 8.0.
Воздействие
Обновите свои политики ILM, чтобы удалить действие freeze из фазы cold.
Устаревание мониторинга
Сбор и отправка данных мониторинга с помощью плагина Monitoring устарели
Подробности
Использование плагина Monitoring для сбора и отправки данных мониторинга устарело. Рекомендуемым методом для сбора и отправки данных мониторинга в кластер мониторинга является Metricbeat.
Воздействие
Если вы ранее настроили устаревшие методы сбора, вам следует перейти на использование сбора Metricbeat. Узнайте больше о сборе данных мониторинга Elasticsearch с помощью Metricbeat.
Следующие параметры теперь устарели:
- xpack.monitoring.elasticsearch.collection.enabled
- xpack.monitoring.collection.enabled
- xpack.monitoring.collection.interval
- xpack.monitoring.collection.indices
- xpack.monitoring.collection.index.recovery.active_only
- xpack.monitoring.collection.ccr.stats.timeout
- xpack.monitoring.collection.enrich.stats.timeout
- xpack.monitoring.collection.index.recovery.timeout
- xpack.monitoring.collection.index.stats.timeout
- xpack.monitoring.collection.ml.job.stats.timeout
- xpack.monitoring.collection.node.stats.timeout
- xpack.monitoring.collection.cluster.stats.timeout
- xpack.monitoring.history.duration
- xpack.monitoring.exporters.*.enabled
- xpack.monitoring.exporters.*.type
- xpack.monitoring.exporters.*.index.name.time_format
- xpack.monitoring.exporters.*.index.template.master_timeout
- xpack.monitoring.exporters.*.cluster_alerts.management.enabled
- xpack.monitoring.exporters.*.cluster_alerts.management.blacklist
- xpack.monitoring.exporters.*.host
- xpack.monitoring.exporters.*.auth.username
- xpack.monitoring.exporters.*.auth.secure_password
- xpack.monitoring.exporters.*.bulk.timeout
- xpack.monitoring.exporters.*.connection.timeout
- xpack.monitoring.exporters.*.connection.read_timeout
- xpack.monitoring.exporters.*.headers.*
- xpack.monitoring.exporters.*.proxy.base_path
- xpack.monitoring.exporters.*.sniff.enabled
- xpack.monitoring.exporters.*.ssl.*
- xpack.monitoring.exporters.*.wait_master.timeout
- xpack.monitoring.migration.decommission_alerts
Предупреждения по умолчанию из плагина Monitoring устарели
Подробности
Предупреждения по умолчанию из плагина Monitoring больше не будут устанавливаться по умолчанию в версии 8.0.0. Рекомендуемым методом оповещения на основе данных мониторинга являются оповещения Kibana.
Воздействие
Если вы ранее настроили оповещения из плагина Monitoring, вам следует перейти на использование оповещений Kibana. Оповещения, установленные из предыдущих версий, будут продолжать работать до тех пор, пока не будут удалены. Узнайте больше о оповещениях Kibana.
Настройка use_ingest в конфигурациях экспортера Monitoring устарела.
Подробности
Свойство xpack.monitoring.exporters.*.use_ingest устарело в версии 7.16.0 и будет удалено в версии после 8.0.0. Этот параметр управляет созданием конвейеров для индексов мониторинга. В настоящее время эти конвейеры не имеют функции.
Воздействие
Прекратите использование настройки xpack.monitoring.exporters.*.use_ingest, поскольку она не будет иметь функциональности в версии 8.0.0 и в конечном итоге будет удалена.
Настройка index.pipeline.master_timeout в конфигурациях HTTP-экспортера Monitoring устарела.
Подробности
Свойство xpack.monitoring.exporters.*.index.pipeline.master_timeout устарело в версии 7.16.0. Этот параметр устанавливает время ожидания при ожидании создания конвейеров удаленным кластером Monitoring. Эти конвейеры для индексов мониторинга в настоящее время не имеют функции и будут удалены в версии после 8.0.0.
Воздействие
Прекратите использование настройки xpack.monitoring.exporters.*.index.pipeline.master_timeout, поскольку она не будет иметь функциональности в версии 8.0.0 и в конечном итоге будет удалена.
Настройка index.template.create_legacy_templates в конфигурациях HTTP-экспортера Monitoring устарела.
Подробности
Свойство xpack.monitoring.exporters.*.index.template.create_legacy_templates устарело в версии 7.16.0. Этот параметр предписывает экспортеру устанавливать предыдущую версию шаблонов мониторинга в кластере мониторинга. Эти старые шаблоны предназначались для содействия переходу к текущему формату данных мониторинга. В настоящее время они пусты и больше не используются.
Воздействие
Прекратите использование настройки xpack.monitoring.exporters.*.index.template.create_legacy_templates, поскольку она не будет иметь функциональности в версии 8.0.0 и в конечном итоге будет удалена.
Устаревание REST API
Свойство estimated_heap_memory_usage_bytes в API создания обученных моделей устарело
Подробности
Свойство estimated_heap_memory_usage_bytes в API создания обученных моделей устарело в версии 7.16.
Воздействие
Используйте model_size_bytes вместо этого.
Устаревание параметров
Мы больше не рекомендуем использовать временные настройки кластера.
Подробности
Мы больше не рекомендуем использовать временные настройки кластера. Используйте постоянные настройки кластера вместо этого. Если кластер становится нестабильным, временные настройки могут неожиданно очиститься, что приведёт к нежелательной конфигурации кластера.
Воздействие
Временные настройки кластера пока не устарели, но мы планируем сделать это в будущей версии. Шаги по миграции см. в Руководстве по миграции временных настроек.
Устаревание индексов
Прямой доступ к системным индексам устарел.
Подробности
Прямой доступ к системным индексам устарел. В Elasticsearch 8.0 необходимо добавить набор разрешений allow_restricted_indices к true в роли пользователя для доступа к системным индексам. Справочную информацию о добавлении этого разрешения к привилегиям индекса см. в разделе привилегии индексов.
Воздействие
Доступ к системным индексам напрямую приводит к предупреждениям в заголовке ответов API и в журналах устаревания. Используйте Kibana или соответствующие API Elasticsearch для управления данными, к которым вы хотите получить доступ. Хотя в Elasticsearch 7.16 доступ к системным индексам по-прежнему возможен, они предназначены только для внутреннего использования продуктами Elastic и не должны использоваться напрямую.
Устаревание кластера
Кэш контекста скрипта устарел.
Подробности
Устарело задание script.max_compilations_rate в значение use-context и настройка кэшей, специфичных для контекста.
Контекстно-специфические кэши больше не нужны для предотвращения срабатывания лимитов скорости системными скриптами.
Настройте общий кэш для управления максимальной скоростью компиляции, размером кэша и истечением срока действия кэша для ваших скриптов.
Воздействие
Удалите script.max_compilations_rate: use-context и настройки кэша, специфичные для контекста: script.context.$CONTEXT.cache_max_size, script.context.$CONTEXT.max_compilations_rate, script.context.$CONTEXT.cache_expire.
По умолчанию общий кэш имеет максимальный размер 3000 с лимитом скорости 150/5 мин., что позволяет 150 компиляций в течение 5 минут. По умолчанию записи в кэше не истекают.
Чтобы переопределить значения по умолчанию, настройте параметры script.cache.max_size, script.max_compilations_rate и script.cache.expire.
Устаревание пакетов
После 7.16.2 мы больше не будем выпускать пакет установщика MSI для Windows.
Подробности
После 7.16.2 мы больше не будем выпускать пакеты установщиков Windows MSI для Elasticsearch. Эти пакеты ранее выпускались в бета-версии и не получили широкого распространения.
Воздействие
Для установки Elasticsearch на Windows используйте .zip архивный пакет вместо этого.
© 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.16.html