[[cluster-nodes-info]] == Nodes Info The cluster nodes info API allows to retrieve one or more (or all) of the cluster nodes information. [source,js] -------------------------------------------------- GET /_nodes GET /_nodes/nodeId1,nodeId2 -------------------------------------------------- // CONSOLE The first command retrieves information of all the nodes in the cluster. The second command selectively retrieves nodes information of only `nodeId1` and `nodeId2`. All the nodes selective options are explained <>. By default, it just returns all attributes and core settings for a node: [float] [[core-info]] `build_hash`:: Short hash of the last git commit in this release. `host`:: The node's host name. `ip`:: The node's IP address. `name`:: The node's name. `total_indexing_buffer`:: Total heap allowed to be used to hold recently indexed documents before they must be written to disk. This size is a shared pool across all shards on this node, and is controlled by <>. `total_indexing_buffer_in_bytes`:: Same as `total_indexing_buffer`, but expressed in bytes. `transport_address`:: Host and port where transport HTTP connections are accepted. `version`:: Elasticsearch version running on this node. It also allows to get only information on `settings`, `os`, `process`, `jvm`, `thread_pool`, `transport`, `http`, `plugins`, `ingest` and `indices`: [source,js] -------------------------------------------------- # 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 -------------------------------------------------- // CONSOLE The `_all` flag can be set to return all the information - or you can simply omit it. [float] [[os-info]] ==== Operating System information The `os` flag can be set to retrieve information that concern the operating system: `os.refresh_interval_in_millis`:: Refresh interval for the OS statistics `os.name`:: Name of the operating system (ex: Linux, Windows, Mac OS X) `os.arch`:: Name of the JVM architecture (ex: amd64, x86) `os.version`:: Version of the operating system `os.available_processors`:: Number of processors available to the Java virtual machine `os.allocated_processors`:: The number of processors actually used to calculate thread pool size. This number can be set with the `processors` setting of a node and defaults to the number of processors reported by the OS. In both cases this number will never be larger than 32. [float] [[process-info]] ==== Process information The `process` flag can be set to retrieve information that concern the current running process: `process.refresh_interval_in_millis`:: Refresh interval for the process statistics `process.id`:: Process identifier (PID) `process.mlockall`:: Indicates if the process address space has been successfully locked in memory [float] [[plugins-info]] ==== Plugins information `plugins` - if set, the result will contain details about the installed plugins and modules per node: [source,js] -------------------------------------------------- GET /_nodes/plugins -------------------------------------------------- // CONSOLE // TEST[setup:node] The result will look similar to: [source,js] -------------------------------------------------- { "_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}", "build_flavor": "{build_flavor}", "build_type": "zip", "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 } ] } } } -------------------------------------------------- // TESTRESPONSE[s/"_nodes": \.\.\./"_nodes": $body.$_path,/] // TESTRESPONSE[s/"elasticsearch"/$body.cluster_name/] // TESTRESPONSE[s/"USpTGYaBSIKbgSUJR2Z9lg"/\$node_name/] // TESTRESPONSE[s/"name": "node-0"/"name": $body.$_path/] // TESTRESPONSE[s/"transport_address": "192.168.17:9300"/"transport_address": $body.$_path/] // TESTRESPONSE[s/"host": "node-0.elastic.co"/"host": $body.$_path/] // TESTRESPONSE[s/"ip": "192.168.17"/"ip": $body.$_path/] // TESTRESPONSE[s/"build_hash": "587409e"/"build_hash": $body.$_path/] // TESTRESPONSE[s/"roles": \[[^\]]*\]/"roles": $body.$_path/] // TESTRESPONSE[s/"attributes": \{[^\}]*\}/"attributes": $body.$_path/] // TESTRESPONSE[s/"plugins": \[[^\]]*\]/"plugins": $body.$_path/] // TESTRESPONSE[s/"modules": \[[^\]]*\]/"modules": $body.$_path/] The following information are available for each plugin and module: * `name`: plugin name * `version`: version of Elasticsearch the plugin was built for * `description`: short description of the plugin's purpose * `classname`: fully-qualified class name of the plugin's entry point * `has_native_controller`: whether or not the plugin has a native controller process [float] [[ingest-info]] ==== Ingest information `ingest` - if set, the result will contain details about the available processors per node: [source,js] -------------------------------------------------- GET /_nodes/ingest -------------------------------------------------- // CONSOLE // TEST[setup:node] The result will look similar to: [source,js] -------------------------------------------------- { "_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}", "build_flavor": "{build_flavor}", "build_type": "zip", "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" } ] } } } } -------------------------------------------------- // TESTRESPONSE[s/"_nodes": \.\.\./"_nodes": $body.$_path,/] // TESTRESPONSE[s/"elasticsearch"/$body.cluster_name/] // TESTRESPONSE[s/"USpTGYaBSIKbgSUJR2Z9lg"/\$node_name/] // TESTRESPONSE[s/"name": "node-0"/"name": $body.$_path/] // TESTRESPONSE[s/"transport_address": "192.168.17:9300"/"transport_address": $body.$_path/] // TESTRESPONSE[s/"host": "node-0.elastic.co"/"host": $body.$_path/] // TESTRESPONSE[s/"ip": "192.168.17"/"ip": $body.$_path/] // TESTRESPONSE[s/"build_hash": "587409e"/"build_hash": $body.$_path/] // TESTRESPONSE[s/"roles": \[[^\]]*\]/"roles": $body.$_path/] // TESTRESPONSE[s/"attributes": \{[^\}]*\}/"attributes": $body.$_path/] // TESTRESPONSE[s/"processors": \[[^\]]*\]/"processors": $body.$_path/] The following information are available for each ingest processor: * `type`: the processor type