节点信息 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.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
master_timeout
(可选,时间单位) 等待主节点的时长。如果在超时时间到期之前主节点不可用,则请求失败并返回错误。默认为 30s。也可以设置为 -1,表示请求永远不会超时。
timeout
(可选,时间单位) 等待响应的时长。如果在超时时间到期之前未收到响应,则请求失败并返回错误。默认为 30s

示例编辑

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,则结果将包含有关已安装插件和模块的详细信息

response = client.nodes.info(
  node_id: 'plugins'
)
puts 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,则响应包含有关每个节点上可用处理器的详细信息

response = client.nodes.info(
  node_id: 'ingest'
)
puts 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"
          }
        ]
      }
    }
  }
}