Мониторинг состояния кластера Elasticsearch

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

Elasticsearch

Использование

Чтобы получить информацию о здоровье вашего кластера, сделайте GET-запрос к API здоровья, как показано в запросе ниже:

Одна запись из результата запроса выше - это статус (status). В нашем примере статус кластера - Зеленый.

Elasticsearch имеет три основных статуса состояния кластера:

  • Зеленый (green) - зеленый означает, что все шарды в кластере распределены.
  • Желтый (yellow) - желтый статус означает, что основной шард кластера выделен, но реплики не выделены.
  • Красный (red) - красный статус означает, что указанный шард не выделен в кластере.

На основании результатов API здоровья можно определить, какие действия следует предпринять для улучшения состояния кластера.

Параметры запроса Health API

Существуют различные параметры, которые можно передать конечной точке Health API. К таким параметрам относятся:

  • Level - Определяет уровень детализации информации о здоровье, получаемой в результате запроса. По умолчанию это значение установлено на кластер, но может также включать: индексы и шарды.
  • Timeout - Устанавливает максимальное время ожидания ответа. По умолчанию установлено значение 30 с. Если указанное время истекает до того, как Elasticsearch отправит ответ, запрос не будет выполнен.
  • wait_for_nodes - Указывает запросу ждать, пока определенное количество узлов не станет доступным.
  • wait_for_status - Запрос будет ждать, пока статус кластера не изменится на указанный. Например, если установлено значение green, запрос будет ждать, пока статус не изменится с желтого или красного на зеленый. Это может быть полезно для определения того, работает ли исправление, которое вы применяете к кластеру.

Понимание тела ответа

В предыдущем примере мы получили ответ о состоянии кластера в формате JSON. Давайте обсудим, что означает каждая из записей в ответе.

  • cluster_name - Показывает имя указанного кластера Elasticsearch.
  • Status - Состояние здоровья кластера. Либо: зеленый, желтый или красный.
  • Timed_out - Булево значение true или false, описывающее получение ответа в течение максимального тайм-аута.
  • number_of_nodes - Общее количество узлов в указанном кластере.
  • number_of_data_nodes - Общее количество узлов, предназначенных для работы с данными.
  • active_primary_shards - общее количество активных первичных шардов в кластере.
  • active_shards - общее количество шардов в кластере. Как первичных, так и реплик.
  • relocating_shards - количество шардов, находящихся в процессе перемещения.
  • initializing_shards - шарды, находящиеся в процессе инициализации.
  • unassigned_shards - общее количество нераспределенных шардов.
Понравилась статья? Поделиться с друзьями:
Добавить комментарий