API узлов (nodes info)
Возвращает информацию о узлах кластера.
Запрос
GET /_nodes
GET /_nodes/<node_id>
GET /_nodes/<metric>
GET /_nodes/<node_id>/<metric>
Предварительные условия
- Если функции безопасности Elasticsearch включены, у вас должна быть
monitorилиmanageправо доступа к кластеру, чтобы использовать этот API.
Описание
API информации о узлах кластера позволяет получить информацию об одном или нескольких (или всех) узлах кластера. Все выборочные параметры узлов описаны здесь.
По умолчанию возвращаются все атрибуты и основные параметры узла.
Параметры пути
-
<metric> -
(Необязательно, строка) Ограничивает возвращаемую информацию конкретными метриками. Поддерживает список, разделенный запятыми, например
http,ingest.Допустимые значения для
<metric>-
aggregations - Информация о доступных типах агрегирования.
-
http - Информация об HTTP-интерфейсе этого узла.
-
indices -
Параметры конфигурации на уровне узла, относящиеся к индексированию:
-
total_indexing_buffer: максимальный размер буфера индексирования на этом узле.
-
-
ingest - Информация о конвейерах и процессорах ingest.
-
jvm - Информация о JVM, включая имя, версию и конфигурацию.
-
os - Информация об операционной системе, включая ее имя и версию.
-
plugins -
Подробная информация о установленных плагинах и модулях на узел. Для каждого плагина и модуля доступна следующая информация:
-
name: имя плагина -
version: версия Elasticsearch, для которой был скомпилирован плагин -
description: краткое описание назначения плагина -
classname: полное имя класса точки входа плагина -
has_native_controller: имеет ли плагин процесс-контроллер с нативным кодом
-
-
process - Информация о процессе, включая числовой идентификатор процесса.
-
settings - Список всех используемых параметров узла, определённых в файле
elasticsearch.yml. -
thread_pool - Информация о конфигурации каждого пула потоков.
-
transport - Информация о транспортном интерфейсе узла.
-
Если вы используете полную GET /_nodes/<node_id>/<metric> форму этого API, то также можете запросить метрику _all для получения всех метрик или _none для подавления всех метрик и получения только идентификатора узла.
-
<node_id> - (Необязательно, строка) Список узлов, разделенный запятыми, по идентификаторам или именам, используемый для ограничения возвращаемой информации.
Тело ответа
-
build_hash - Краткое хэширование последнего коммита Git в этом релизе.
-
host - Имя хоста узла.
-
ip - IP-адрес узла.
-
name - Имя узла.
-
total_indexing_buffer - Общий объем памяти, который разрешено использовать для хранения недавно индексированных документов, прежде чем их необходимо записать на диск. Этот размер является общим пулом для всех фрагментов на этом узле и контролируется Настройками буфера индексирования.
-
total_indexing_buffer_in_bytes - То же, что и
total_indexing_buffer, но выражено в байтах. -
transport_address - Хост и порт, на которых принимаются транспортные HTTP-соединения.
-
version - Версия Elasticsearch, работающая на этом узле.
-
transport_version - Самая последняя версия транспорта, с которой может взаимодействовать этот узел.
-
index_version - Самая последняя версия индекса, которую может читать этот узел.
-
component_versions - Номера версий отдельных компонентов, загруженных на этот узел.
Флаг os может быть установлен для получения информации, относящейся к операционной системе:
-
os.refresh_interval_in_millis - Интервал обновления для статистики ОС
-
os.name - Имя операционной системы (например: Linux, Windows, Mac OS X)
-
os.arch - Архитектура JVM (например: amd64, x86)
-
os.version - Версия операционной системы
-
os.available_processors - Количество процессоров, доступных виртуальной машине Java
-
os.allocated_processors - Количество процессоров, фактически используемых для расчета размера пула потоков. Это число можно установить с помощью параметра
node.processorsузла, по умолчанию оно равно числу процессоров, указанных ОС.
Флаг process может быть установлен для получения информации, относящейся к текущему процессу:
-
process.refresh_interval_in_millis - Интервал обновления для статистики процесса
-
process.id - Идентификатор процесса (PID)
-
process.mlockall - Указывает, была ли успешно заблокирована адресное пространство процесса в памяти
Параметры запроса
-
flat_settings - (Необязательно, булево) Если
true, возвращает параметры в плоском формате. По умолчаниюfalse. -
timeout - (Необязательно, единицы времени) Время ожидания ответа каждого узла. Если узел не отвечает до истечения тайм-аута, информация об этом узле не включается в ответ. Однако, узлы с тайм-аутом включаются в свойство
_nodes.failedответа. По умолчанию тайм-аут не используется.
Примеры
response = client.nodes.info( node_id: 'process' ) puts response response = client.nodes.info( node_id: '_all', metric: 'process' ) puts response response = client.nodes.info( node_id: 'nodeId1,nodeId2', metric: 'jvm,process' ) puts response response = client.nodes.info( node_id: 'nodeId1,nodeId2', metric: '_all' ) puts response
# return just process GET /_nodes/process # same as above GET /_nodes/_all/process # return just jvm and process of only nodeId1 and nodeId2 GET /_nodes/nodeId1,nodeId2/jvm,process # same as above GET /_nodes/nodeId1,nodeId2/info/jvm,process # return all the information of only nodeId1 and nodeId2 GET /_nodes/nodeId1,nodeId2/_all
Флаг _all может быть установлен для возвращения всей информации — или же он может быть опущен.
Пример для метрики плагинов
Если plugins указан, результат будет содержать подробности об установленных плагинах и модулях:
resp = client.nodes.info(
node_id="plugins",
)
print(resp) response = client.nodes.info( node_id: 'plugins' ) puts response
const response = await client.nodes.info({
node_id: "plugins",
});
console.log(response); GET /_nodes/plugins
API возвращает следующий ответ:
{
"_nodes": ...
"cluster_name": "elasticsearch",
"nodes": {
"USpTGYaBSIKbgSUJR2Z9lg": {
"name": "node-0",
"transport_address": "192.168.17:9300",
"host": "node-0.elastic.co",
"ip": "192.168.17",
"version": "{version}",
"transport_version": 100000298,
"index_version": 100000074,
"component_versions": {
"ml_config_version": 100000162,
"transform_config_version": 100000096
},
"build_flavor": "default",
"build_type": "{build_type}",
"build_hash": "587409e",
"roles": [
"master",
"data",
"ingest"
],
"attributes": {},
"plugins": [
{
"name": "analysis-icu",
"version": "{version}",
"description": "The ICU Analysis plugin integrates Lucene ICU module into elasticsearch, adding ICU relates analysis components.",
"classname": "org.elasticsearch.plugin.analysis.icu.AnalysisICUPlugin",
"has_native_controller": false
}
],
"modules": [
{
"name": "lang-painless",
"version": "{version}",
"description": "An easy, safe and fast scripting language for Elasticsearch",
"classname": "org.elasticsearch.painless.PainlessPlugin",
"has_native_controller": false
}
]
}
}
} Пример для метрики ingest
Если ingest указан, ответ содержит подробности о доступных процессорах на узел:
resp = client.nodes.info(
node_id="ingest",
)
print(resp) response = client.nodes.info( node_id: 'ingest' ) puts response
const response = await client.nodes.info({
node_id: "ingest",
});
console.log(response); GET /_nodes/ingest
API возвращает следующий ответ:
{
"_nodes": ...
"cluster_name": "elasticsearch",
"nodes": {
"USpTGYaBSIKbgSUJR2Z9lg": {
"name": "node-0",
"transport_address": "192.168.17:9300",
"host": "node-0.elastic.co",
"ip": "192.168.17",
"version": "{version}",
"transport_version": 100000298,
"index_version": 100000074,
"component_versions": {
"ml_config_version": 100000162,
"transform_config_version": 100000096
},
"build_flavor": "default",
"build_type": "{build_type}",
"build_hash": "587409e",
"roles": [],
"attributes": {},
"ingest": {
"processors": [
{
"type": "date"
},
{
"type": "uppercase"
},
{
"type": "set"
},
{
"type": "lowercase"
},
{
"type": "gsub"
},
{
"type": "convert"
},
{
"type": "remove"
},
{
"type": "fail"
},
{
"type": "foreach"
},
{
"type": "split"
},
{
"type": "trim"
},
{
"type": "rename"
},
{
"type": "join"
},
{
"type": "append"
}
]
}
}
}
}
© 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/cluster-nodes-info.html