Spec-Zone.ru › Elasticsearch 7
›Elasticsearch Guide [7.17] ›REST API ›Cluster APIs

API состояния кластера

Возвращает состояние здоровья кластера.

Запрос

GET /_cluster/health/<target>

Предварительные условия

  • Если функции безопасности Elasticsearch включены, вам необходимо иметь monitor или manage право доступа к кластеру, чтобы использовать этот API.

Описание

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

Состояние здоровья кластера может быть: green, yellow или red. На уровне фрагмента состояние red указывает, что указанный фрагмент не распределен в кластере, yellow означает, что основной фрагмент распределен, но реплики нет, а green означает, что все фрагменты распределены. Состояние на уровне индекса контролируется худшим состоянием фрагмента. Состояние кластера контролируется худшим состоянием индекса.

Одним из основных преимуществ API является возможность ожидания, пока кластер достигнет определенного высокого уровня здоровья. Например, следующее будет ожидать 50 секунд, пока кластер достигнет уровня yellow (если он достигнет статуса green или yellow за 50 секунд, он вернётся в этот момент):

GET /_cluster/health?wait_for_status=yellow&timeout=50s

Параметры пути

<target>

(Необязательно, строка) Список потоков данных, индексов и псевдонимов индексов, разделенных запятыми, используемых для ограничения запроса. Поддерживаются шаблоны с подстановкой (*).

Для обработки всех потоков данных и индексов в кластере опустите этот параметр или используйте _all или *.

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

level
(Необязательно, строка) Может быть одним из cluster, indices или shards. Управляет уровнем детализации информации о состоянии, возвращаемой в ответ. По умолчанию cluster.
local
(Необязательно, булево) Если true, запрос извлекает информацию только с локального узла. По умолчанию false, что означает извлечение информации с узла-мастера.
master_timeout
(Необязательно, единицы времени) Период ожидания подключения к узлу-мастеру. Если ответ не получен до истечения срока ожидания, запрос завершается ошибкой. По умолчанию 30s.
timeout
(Необязательно, единицы времени) Период ожидания ответа. Если ответ не получен до истечения срока ожидания, запрос завершается ошибкой. По умолчанию 30s.
wait_for_active_shards
(Необязательно, строка) Число, контролирующее количество активных фрагментов, ожидаемых для обработки, all, чтобы ожидать, пока все фрагменты в кластере станут активными, или 0, чтобы не ждать. По умолчанию 0.
wait_for_events
(Необязательно, строка) Может быть одним из immediate, urgent, high, normal, low, languid. Ожидайте, пока все текущие очереди событий с заданным приоритетом будут обработаны.
wait_for_no_initializing_shards
(Необязательно, булево) Булево значение, которое управляет ожиданием (до указанного таймаута) отсутствия инициализаций фрагментов в кластере. По умолчанию false, что означает, что инициализирующие фрагменты не будут ожидать.
wait_for_no_relocating_shards
(Необязательно, булево) Булево значение, которое управляет ожиданием (до указанного таймаута) отсутствия перераспределения фрагментов в кластере. По умолчанию false, что означает, что перераспределение фрагментов не будет ожидать.
wait_for_nodes
(Необязательно, строка) Запрос ожидает, пока указанное количество N узлов будет доступно. Также принимает значения >=N, <=N, >N и <N. В качестве альтернативы можно использовать обозначения ge(N), le(N), gt(N) и lt(N).
wait_for_status
(Необязательно, строка) Одно из значений green, yellow или red. Ожидает (до указанного таймаута), пока состояние кластера не изменится на указанное или лучшее, т.е. green > yellow > red. По умолчанию не ожидает никакого изменения состояния.

Тело ответа

cluster_name
(строка) Название кластера.
status

(строка) Состояние здоровья кластера, основанное на состоянии его основных и реплицированных фрагментов. Возможные состояния:

green
Все фрагменты назначены.
yellow
Все основные фрагменты назначены, но один или несколько реплицированных фрагментов не назначены. Если узел в кластере выходит из строя, некоторые данные могут быть недоступны, пока этот узел не будет восстановлен.
red
Один или несколько основных фрагментов не назначены, поэтому некоторые данные недоступны. Это может произойти кратковременно во время запуска кластера, пока основные фрагменты не будут назначены.
timed_out
(булево) Если false ответ возвращен в течение периода времени, указанного параметром timeout (по умолчанию 30s).
number_of_nodes
(целое число) Количество узлов в кластере.
number_of_data_nodes
(целое число) Количество узлов, которые являются узлами данных.
active_primary_shards
(целое число) Количество активных основных фрагментов.
active_shards
(целое число) Общее количество активных основных и реплицированных фрагментов.
relocating_shards
(целое число) Количество фрагментов, которые перераспределяются.
initializing_shards
(целое число) Количество фрагментов, которые находятся в процессе инициализации.
unassigned_shards
(целое число) Количество фрагментов, которые не распределены.
delayed_unassigned_shards
(целое число) Количество фрагментов, чья инициализация задерживается настройками таймаутов.
number_of_pending_tasks
(целое число) Количество изменений на уровне кластера, которые еще не выполнены.
number_of_in_flight_fetch
(целое число) Количество незавершенных извлечений.
task_max_waiting_in_queue_millis
(целое число) Время в миллисекундах, которое прошло с момента ожидания выполнения самой ранней задачи.
active_shards_percent_as_number
(вещественное число) Соотношение активных фрагментов в кластере, выраженное в процентах.

Примеры

GET _cluster/health

API возвращает следующий ответ для тихого кластера из одного узла с одним индексом, одним фрагментом и одной репликой:

{
  "cluster_name" : "testcluster",
  "status" : "yellow",
  "timed_out" : false,
  "number_of_nodes" : 1,
  "number_of_data_nodes" : 1,
  "active_primary_shards" : 1,
  "active_shards" : 1,
  "relocating_shards" : 0,
  "initializing_shards" : 0,
  "unassigned_shards" : 1,
  "delayed_unassigned_shards": 0,
  "number_of_pending_tasks" : 0,
  "number_of_in_flight_fetch": 0,
  "task_max_waiting_in_queue_millis": 0,
  "active_shards_percent_as_number": 50.0
}

Следующий пример получения состояния кластера на уровне shards:

GET /_cluster/health/my-index-000001?level=shards

© 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/cluster-health.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API