Настройка Elasticsearch
Elasticsearch поставляется с хорошими значениями по умолчанию и требует минимальной настройки. Большинство настроек можно изменить в работающем кластере с помощью API обновления настроек кластера.
Файлы конфигурации должны содержать настройки, специфичные для узла (например, node.name и пути), или настройки, необходимые узлу для присоединения к кластеру, такие как cluster.name и network.host.
Расположение файлов конфигурации
Elasticsearch имеет три файла конфигурации:
-
elasticsearch.ymlдля настройки Elasticsearch -
jvm.optionsдля настройки настроек JVM Elasticsearch -
log4j2.propertiesдля настройки ведения журнала Elasticsearch
Эти файлы находятся в каталоге config, местоположение которого по умолчанию зависит от того, устанавливается ли Elasticsearch из архива (tar.gz или zip) или из пакетов (пакеты Debian или RPM).
Для дистрибутивов из архивов расположение каталога config по умолчанию - $ES_HOME/config. Местоположение каталога config можно изменить с помощью переменной среды ES_PATH_CONF следующим образом:
ES_PATH_CONF=/path/to/my/config ./bin/elasticsearch
В качестве альтернативы вы можете export переменную среды ES_PATH_CONF через командную строку или профиль вашей оболочки.
Для дистрибутивов из пакетов расположение каталога config по умолчанию - /etc/elasticsearch. Местоположение каталога config также можно изменить с помощью переменной среды ES_PATH_CONF, но обратите внимание, что установка её в вашей оболочке недостаточно. Вместо этого эта переменная извлекается из /etc/default/elasticsearch (для пакета Debian) и /etc/sysconfig/elasticsearch (для пакета RPM). Вам необходимо отредактировать запись ES_PATH_CONF=/etc/elasticsearch в одном из этих файлов, чтобы изменить расположение каталога config.
Формат файла конфигурации
Формат конфигурации - YAML. Вот пример изменения пути каталогов данных и логов:
path:
data: /var/lib/elasticsearch
logs: /var/log/elasticsearch Настройки также можно сгладить следующим образом:
path.data: /var/lib/elasticsearch path.logs: /var/log/elasticsearch
В YAML вы можете форматировать нескалярные значения как последовательности:
discovery.seed_hosts: - 192.168.1.10:9300 - 192.168.1.11 - seeds.mydomain.com
Хотя это менее распространено, вы также можете форматировать нескалярные значения как массивы:
discovery.seed_hosts: ["192.168.1.10:9300", "192.168.1.11", "seeds.mydomain.com"]
Подстановка переменных окружения
Переменные окружения, указанные в формате ${...} в файле конфигурации, будут заменены значением соответствующей переменной окружения. Например:
node.name: ${HOSTNAME}
network.host: ${ES_NETWORK_HOST} Значения переменных окружения должны быть простыми строками. Используйте строку, разделенную запятыми, для предоставления значений, которые Elasticsearch будет интерпретировать как список. Например, Elasticsearch разобьет следующую строку на список значений для переменной окружения ${HOSTNAME}:
export HOSTNAME="host1,host2"
Типы настроек кластера и узла
Настройки кластера и узла можно классифицировать в зависимости от способа их настройки:
- Динамические
-
Вы можете настроить и обновить динамические настройки в работающем кластере с помощью API обновления настроек кластера. Вы также можете настроить динамические настройки локально на неостановленном или выключенном узле с помощью
elasticsearch.yml.Обновления, выполненные с помощью API обновления настроек кластера, могут быть постоянными, что применяется после перезапуска кластера, или временными, которые сбрасываются после перезапуска кластера. Вы также можете сбросить временные или постоянные настройки, присвоив им значение
nullс помощью API.Если вы настраиваете одну и ту же настройку несколькими способами, Elasticsearch применяет настройки в следующем порядке приоритета:
- Временная настройка
- Постоянная настройка
-
elasticsearch.ymlнастройка - Значение настройки по умолчанию
Например, вы можете применить временную настройку, чтобы переопределить постоянную настройку или
elasticsearch.ymlнастройку. Однако изменениеelasticsearch.ymlнастройки не переопределит определенную временную или постоянную настройку.Если вы используете Elasticsearch Service, воспользуйтесь функцией настроек пользователя, чтобы настроить все настройки кластера. Этот метод позволяет Elasticsearch Service автоматически отклонять небезопасные настройки, которые могут нарушить работу вашего кластера.
Если вы запускаете Elasticsearch на собственном оборудовании, используйте API обновления настроек кластера для настройки динамических настроек кластера. Используйте
elasticsearch.ymlтолько для статических настроек кластера и настроек узла. API не требует перезапуска и гарантирует, что значение настройки одинаково на всех узлах.Мы больше не рекомендуем использовать временные настройки кластера. Используйте постоянные настройки кластера вместо них. Если кластер становится нестабильным, временные настройки могут неожиданно очищаться, что приводит к потенциально нежелательной конфигурации кластера. См. руководство по миграции временных настроек.
- Статические
-
Статические настройки могут быть настроены только на неостановленном или выключенном узле с помощью
elasticsearch.yml.Статические настройки должны быть установлены на каждом соответствующем узле в кластере.
© 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/8.17/settings.html