Настройки Elasticsearch: Настройки кластера, индекса и узла, включая примеры

В Elasticsearch можно настроить параметры на уровне кластера, на уровне узла и на уровне индекса. Ниже приводится краткое описание каждого уровня.

Настройки кластера

Эти настройки могут быть:

  • Постоянными (Persistent), т.е. применяться при всех перезагрузках, или
  • переходными (Transient), т.е. они не переживут полного перезапуска кластера.

При сбросе переходных настроек применяется первое из заданных значений:

  • Постоянная настройка
  • Значение в конфигурационном файле
  • Значение по умолчанию

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

  1. Переходные настройки кластера
  2. Постоянные настройки кластера
  3. Настройки в конфигурационном файле elasticsearch.yml

Примеры

Пример обновления постоянных настроек кластера:

Пример переходного обновления:

Настройки индексов

Это настройки, которые применяются к отдельным индексам. Для обновления настроек на уровне индексов существует API.

Примеры

Следующий вызов API установит для индекса my_index число шардов-реплик равным 5.

Чтобы вернуть параметр к значению по умолчанию, используйте null.

Настройки узла

Эти настройки относятся к узлам. Узлы могут выполнять различные роли. К ним относятся роли мастера, данных и координатора. Настройки узла задаются в файле elasticsearch.yml для каждого узла.

Примеры

Установка узла в качестве узла данных (в файле elasticsearch.yml):

Отключение роли ingest для узла (которая включена по умолчанию):

В производственных кластерах каждый тип узла необходимо запускать на выделенной машине с двумя или более экземплярами каждого из них для обеспечения HA (минимум три для мастер-узлов).

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

  • Изучение настроек кластера и индекса очень важно - это может избавить вас от многих проблем. Например, если вы собираетесь поместить в индекс огромное количество данных, а число реплик шардов установлено, скажем, на 5, то процесс индексирования будет очень медленным, поскольку данные будут реплицироваться одновременно с индексированием. Для ускорения индексирования можно установить число шардов-реплик в 0 путем обновления настроек, а по окончании индексирования вернуть его к исходному числу, используя API настроек.
  • Другим полезным примером использования настроек на уровне кластера является ситуация, когда узел только что присоединился к кластеру, а кластер не назначил ему ни одного шарда. Хотя распределение шардов включено по умолчанию на всех узлах, кто-то мог отключить распределение шардов в какой-то момент (например, для выполнения скользящего перезапуска) и забыть включить его снова. Чтобы включить выделение шардов, можно обновить API настроек кластера:
  • Лучше задавать общекластерные настройки с помощью API Settings, а не в файле elasticsearch.yml, и использовать файл только для локальных изменений. Это позволит сохранить одинаковые настройки на всех узлах. Однако если случайно задать разные настройки на разных узлах с помощью конфигурационного файла elasticsearch.yml, то заметить эти несоответствия будет сложно.
Понравилась статья? Поделиться с друзьями:
Добавить комментарий