Рекомендации по использованию#

В этом разделе приводится рекомендации по работе с сервисами поиска и аналитики.

Elasticsearch#

Варианты запуска сервиса#

  • Одиночный экземпляр сервиса, развёрнутый на одном экземпляре виртуальной машины в выбранной зоне доступности.

  • Отказоустойчивый сервис, развёрнутый в кластере минимум из трёх экземпляров виртуальных машин в трёх зонах доступности.

Архитектура отказоустойчивого решения#

Отказоустойчивый сервис Elasticsearch развёртывается в кластере минимум из трёх экземпляров виртуальных машин, и на каждом узле работают по одному мастеру и реплике, причём реплика работает с мастером из другого узла (кросс-репликация).

Узлы кластера могут быть полноценными и равнозначными, либо один из узлов быть арбитром — узлом с ролями master и voting_only. Отсутствие ролей data и ingest в этом случае не позволяет принимать и обрабатывать данные, но зато не требует большого количества ресурсов. Поэтому в качестве арбитра вы можете использовать более дешёвый тип экземпляра.

Если кластер содержит два узла и более, то по умолчанию новые индексы создаются с одним primary shard и одной репликой. Шардирование и репликация позволяют сохранить данные в случае аварии одного из узлов и распределить нагрузку, если она возрастёт.

Подключиться к сервису#

После успешного запуска адреса и порты, которые прослушивает сервис Elasticsearch , можно найти на его странице на вкладке Информация.

Сервис Elasticsearch прослушивает порт tcp/9200. При работе с кластером рекомендуется использовать точки приёма запросов (endpoints) для подключения всех узлов, кроме арбитра. Многие инструменты, например Filebeat, Metricbeat, Logstash, умеют работать со всеми точками приёма сразу, самостоятельно осуществлять балансировку и автоматическое переключение. В случае если они не могут самостоятельно выполнять эти операции, рекомендуем использовать балансировщик haproxy или nginx.

Если на этапе развёртывания сервиса вы задали пароль суперпользователя elastic, то сервис запустится с расширением X-Pack Security и любое действие с ним потребует аутентификации.

Важно

Рекомендуем использовать учётную запись elastic только для управления сервисом Elasticsearch. Для интеграции с другими сервисами создайте дополнительных пользователей с нужным набором привилегий.

Аутентификация в Elasticsearch#

Вы можете защитить вход в графический интерфейс Kibana или API Elasticsearch c помощью пароля, который можно задать при создании сервиса. После того как сервис был запущен с заданным паролем, его не рекомендуется менять, поскольку управление развёрнутым сервисом средствами облака станет невозможным.

Для удобства работы c сервисом в него встроены служебные пользователи:

  • kibana_system

  • logstash_system

  • beats_system

  • apm_system

  • remote_monitoring_user

Важно

Изменение служебных паролей после запуска Elasticsearch приведёт к некорректной работе сервиса. Если вы хотите изменить пароль, создайте новых пользователей с такими же ролями, задайте пароль и используйте их для интеграции с внешними системами.

Мониторинг сервиса#

Для мониторинга сервиса мы рекомендуем включить облачный сервис мониторинга Prometheus. Если вы хотите использовать свой собственный сервер мониторинга для контроля состояния и работоспособности экземпляров Elasticsearch, то можете воспользоваться экспортёром Prometheus elasticsearch_exporter. Он развёртывается вместе с сервисом Elasticsearch и прослушивает порт tcp/9114. Дополнительно на все узлы кластера Elasticsearch устанавливается node_exporter. Он позволяет снимать метрики экземпляров виртуальных машин и операционной системы и прослушивает порт tcp/9100.