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