Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›REST API ›API для компактного и выровненного текста (CAT)

API cat health

Новая справка по API

Для получения самых последних данных об API обратитесь к API для компактного и выровненного текста (CAT)..

API cat предназначены только для использования человеком с помощью командной строки или консоли Kibana. Они не предназначены для использования приложениями. Для использования приложениями используйте API состояния кластера.

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

Запрос

GET /_cat/health

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

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

Описание

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

Этот API часто используется для проверки неисправных кластеров. Чтобы помочь вам отслеживать состояние здоровья кластера вместе с файлами журнала и системами оповещения, API возвращает отметки времени в двух форматах:

  • HH:MM:SS, который легко читается человеком, но не содержит информации о дате.
  • epoch время Unix, которое машиночитаемо и содержит информацию о дате. Это полезно для восстановления кластеров, которые занимают несколько дней.

Вы можете использовать API cat health, чтобы проверить состояние здоровья кластера по нескольким узлам. См. Пример по нескольким узлам.

Вы также можете использовать API для отслеживания восстановления большого кластера за более длительный период времени. См. Пример с большим кластером.

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

format
(Необязательный, строка) Короткая версия заголовка HTTP accept. Допустимые значения включают JSON, YAML и т. д.
h
(Необязательный, строка) Список столбцов, разделяемых запятыми, для отображения.
help
(Необязательный, булево значение) Если true, ответ включает справочную информацию. По умолчанию false.
s
(Необязательный, строка) Список столбцов или псевдонимов столбцов, разделяемых запятыми, используемых для сортировки ответа.
time
(Необязательный, единицы измерения времени) Единица измерения для отображения значений времени.
ts (отметки времени)
(Необязательный, булево значение) Если true, возвращает HH:MM:SS и epoch время Unix. По умолчанию true.
v
(Необязательный, булево значение) Если true, ответ включает заголовки столбцов. По умолчанию false.

Примеры

Пример с отметками времени

По умолчанию API cat health возвращает HH:MM:SS и epoch время Unix. Например:

resp = client.cat.health(
    v=True,
)
print(resp)
response = client.cat.health(
  v: true
)
puts response
const response = await client.cat.health({
  v: "true",
});
console.log(response);
GET /_cat/health?v=true

API возвращает следующий ответ:

epoch      timestamp cluster       status node.total node.data shards pri relo init unassign unassign.pri pending_tasks max_task_wait_time active_shards_percent
1475871424 16:17:04  elasticsearch green           1         1      1   1    0    0        0            0             0                  -                100.0%

Пример без отметки времени

Вы можете использовать параметр ts (отметки времени) для отключения отметки времени. Например:

resp = client.cat.health(
    v=True,
    ts=False,
)
print(resp)
response = client.cat.health(
  v: true,
  ts: false
)
puts response
const response = await client.cat.health({
  v: "true",
  ts: "false",
});
console.log(response);
GET /_cat/health?v=true&ts=false

API возвращает следующий ответ:

cluster       status node.total node.data shards pri relo init unassign unassign.pri pending_tasks max_task_wait_time active_shards_percent
elasticsearch green           1         1      1   1    0    0        0            0             0                  -                100.0%

Примечание
: Указанное количество неназначенных первичных фрагментов может быть меньше истинного значения, если ваш кластер содержит узлы, работающие на версии ниже 8.16. Для более точного подсчета в этом случае, пожалуйста, используйте API состояния кластера.

Пример по нескольким узлам

Вы можете использовать API cat health для проверки состояния кластера по нескольким узлам. Например:

% pssh -i -h list.of.cluster.hosts curl -s localhost:9200/_cat/health
[1] 20:20:52 [SUCCESS] es3.vm
1384309218 18:20:18 foo green 3 3 3 3 0 0 0 0 0
[2] 20:20:52 [SUCCESS] es1.vm
1384309218 18:20:18 foo green 3 3 3 3 0 0 0 0 0
[3] 20:20:52 [SUCCESS] es2.vm
1384309218 18:20:18 foo green 3 3 3 3 0 0 0 0 0

Пример с большим кластером

Вы можете использовать API cat health для отслеживания восстановления большого кластера за более длительный период времени. Вы можете сделать это, включив запрос API cat health в цикл с задержкой. Например:

% while true; do curl localhost:9200/_cat/health; sleep 120; done
1384309446 18:24:06 foo red 3 3 20 20 0 0 1812 1121 0
1384309566 18:26:06 foo yellow 3 3 950 916 0 12 870 421 0
1384309686 18:28:06 foo yellow 3 3 1328 916 0 12 492 301 0
1384309806 18:30:06 foo green 3 3 1832 916 4 0 0 0
^C

В этом примере восстановление заняло примерно шесть минут, от 18:24:06 до 18:30:06. Если это восстановление заняло бы часы, вы могли бы продолжать отслеживать количество UNASSIGNED фрагментов, которое должно уменьшаться. Если количество UNASSIGNED фрагментов остается неизменным, это указывает на проблему с восстановлением кластера.

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

Spec-Zone.ru

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