Настройка Elasticsearch
Elasticsearch поставляется с хорошими значениями по умолчанию и требует минимальной настройки. Большинство параметров можно изменить в работающем кластере с помощью API обновления настроек кластера.
Файлы конфигурации должны содержать настройки, специфичные для узла (например, node.name и пути), или настройки, необходимые узлу для присоединения к кластеру, такие как cluster.name и network.host.
Расположение файлов конфигурации
Elasticsearch имеет три файла конфигурации:
-
elasticsearch.ymlдля настройки Elasticsearch -
jvm.optionsдля настройки параметров JVM Elasticsearch -
log4j2.propertiesдля настройки логирования Elasticsearch
Эти файлы находятся в каталоге config, расположение которого зависит от того, была ли установка из архива (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/7.17/settings.html