节点信息 API

编辑

返回集群节点信息。

请求

编辑

GET /_nodes

GET /_nodes/<node_id>

GET /_nodes/<metric>

GET /_nodes/<node_id>/<metric>

先决条件

编辑
  • 如果启用了 Elasticsearch 安全功能,您必须具有 monitormanage 集群权限才能使用此 API。

描述

编辑

集群节点信息 API 允许检索一个或多个(或全部)集群节点的信息。所有节点选择选项都在此处进行了解释。

默认情况下,它返回节点的所有属性和核心设置。

路径参数

编辑
<metric>

(可选,字符串)将返回的信息限制为特定指标。支持逗号分隔的列表,例如 http,ingest

<metric> 的有效值
aggregations
有关可用聚合类型的信息。
http
有关此节点的 HTTP 接口的信息。
indices

与索引相关的节点级配置

  • total_indexing_buffer:此节点上索引缓冲区的最大大小。
ingest
有关数据采集管道和处理器的信息。
jvm
JVM 信息,包括其名称、版本和配置。
os
操作系统信息,包括其名称和版本。
plugins

有关每个节点安装的插件和模块的详细信息。每个插件和模块都提供以下信息:

  • name:插件名称
  • version:构建插件所用的 Elasticsearch 版本
  • description:插件用途的简短描述
  • classname:插件入口点的完全限定类名
  • has_native_controller:插件是否具有本机控制器进程
process
进程信息,包括数字进程 ID。
settings
列出 elasticsearch.yml 文件中定义的所有正在使用的节点设置。
thread_pool
有关每个线程池配置的信息。
transport
有关节点传输接口的信息。

如果您使用此 API 的完整形式 GET /_nodes/<node_id>/<metric>,您还可以请求指标 _all 来检索所有指标,或者您可以请求指标 _none 来抑制所有指标,仅检索节点的身份。

<node_id>
(可选,字符串)用于限制返回信息的节点 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 统计信息的刷新间隔
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,则响应包含有关每个节点可用处理器的详细信息

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"
          }
        ]
      }
    }
  }
}