Looking for elasticsearch Answers? Try Ask4KnowledgeBase
Looking for elasticsearch Keywords? Try Ask4Keywords

ElasticsearchКонфигурация Elasticsearch


замечания

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

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

Где настройки?

Внутри каждой установки Elasticsearch есть config/elasticsearch.yml . Вот где живут следующие настройки :

  • cluster.name
    • Имя кластера, с которым соединяется узел. Все узлы в одном кластере должны иметь одинаковое имя.
    • В настоящее время по умолчанию используется elasticsearch .
  • node.*
    • node.name
      • Если не указано, случайное имя будет генерироваться каждый раз при запуске узла . Это может быть весело, но это не хорошо для производственных сред.
      • Имена не обязательно должны быть уникальными, но они должны быть уникальными.
    • node.master
      • Логическая настройка. Когда true , то это означает , что узел имеет право на получение главного узла , и он может быть избран главный узел.
      • Значение по умолчанию равно true , что означает, что каждый узел является подходящим основным узлом.
    • node.data
      • Логическая настройка. Когда true , это означает, что узел хранит данные и обрабатывает активность поиска.
      • Значение по умолчанию равно true .
  • path.*
    • path.data
      • Место, где файлы записываются для узла. Все узлы используют этот каталог для хранения метаданных, но узлы данных также используют его для хранения / индексирования документов.
      • По умолчанию ./data .
        • Это означает, что data будут созданы для вас в качестве одноранговой директории для config внутри каталога Elasticsearch.
    • path.logs
      • Место, где записываются файлы журнала.
      • По умолчанию. ./logs .
  • network.*
    • network.host

      • По умолчанию _local_ , который является фактически localhost .
        • Это означает, что по умолчанию узлы не могут быть переданы извне текущего компьютера!
    • network.bind_host

      • Потенциально массив, это говорит Elasticsearch, какие адреса текущей машины также связывают сокеты.
        • Именно этот список позволяет машинам за пределами машины (например, другим узлам кластера) разговаривать с этим узлом.
      • По умолчанию используется network.host .
    • network.publish_host

      • Необычный хост, который используется для рекламы другим узлам, как наилучшим образом общаться с этим узлом.
        • При поставке массива в network.bind_host это должен быть один хост, предназначенный для межузловой связи.
      • По умолчанию используется network.host`.
  • discovery.zen.*
    • discovery.zen.minimum_master_nodes
      • Определяет кворум для всеобщих выборов. Это должно быть установлено с использованием этого уравнения: (M / 2) + 1 где M - количество подходящих основных узлов (узлы с использованием node.master: true неявно или явно).
      • По умолчанию 1 , что справедливо только для кластера с одним узлом!
    • discovery.zen.ping.unicast.hosts
      • Механизм присоединения этого узла к остальной части кластера.
      • Это должно отображать подходящие основные узлы, чтобы узел мог найти остальную часть кластера.
      • Значение, которое следует использовать здесь, это network.publish_host из этих других узлов.
      • По умолчанию используется localhost , что означает, что он смотрит только на локальный компьютер для объединения кластера.

Какие существуют настройки?

Elasticsearch предоставляет три различных типа настроек:

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

В зависимости от настройки, это может быть:

  • Изменено динамически во время выполнения
  • Изменен после перезапуска (закрытие / открытие) индекса
    • Некоторые настройки уровня индекса не требуют, чтобы индекс был закрыт и снова открыт, но может потребовать, чтобы индекс был принудительно повторно объединен для применяемого параметра.
      • Примером такого типа настроек является уровень сжатия индекса. Его можно изменять динамически, но только новые сегменты используют это изменение. Поэтому, если индекс не изменится, он никогда не воспользуется этим изменением, если вы не заставите индекс воссоздать свои сегменты.
  • Изменено после перезапуска узла
  • Изменен после перезапуска кластера
  • Никогда не менялся

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

Как я могу применить настройки?

Вы можете установить настройки несколькими способами, некоторые из которых не предлагаются:

  • Аргументы командной строки

В Elasticsearch 1.x и 2.x вы можете отправить большинство настроек в качестве свойств Java System с префиксом es. :

$ bin/elasticsearch -Des.cluster.name=my_cluster -Des.node.name=`hostname`

В Elasticsearch 5.x это изменяется, чтобы избежать использования свойств Java-системы, вместо этого используя собственный тип аргумента с -E , -Des. :

$ bin/elasticsearch -Ecluster.name=my_cluster -Enode.name=`hostname`

Такой подход к применению настроек отлично работает при использовании таких инструментов, как Puppet, Chef или Ansible для запуска и остановки кластера. Однако при работе он работает очень плохо.

  • Настройки YAML
    • Показаны в примерах
  • Динамические настройки
    • Показаны в примерах

Порядок, в котором применяются настройки, находится в порядке наибольшей динамичности:

  1. Временные настройки
  2. Постоянная настройка
  3. Настройки командной строки
  4. Настройки YAML (статические)

Если настройка установлена ​​дважды, один раз на любом из этих уровней, то самый высокий уровень вступает в силу.

Конфигурация Elasticsearch Связанные примеры