English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Elasticsearch Cluster API

The cluster API is used to obtain information about the cluster and its nodes and make changes to them. To call this API, we need to specify the node name, address, or _local.

GET /_nodes/_local

After running the above code, we get the following response:

………………………………………………
"cluster_name" : "elasticsearch",
   "nodes": {
      FKH-5blYTJmff2rJ_lQOCg": {
         "name": "ubuntu",
         "transport_address": ""127.0.0.1:9300",
         "host": ""127.0.0.1",
         "ip": ""127.0.0.1",
         "version" : "7.0.0",
         "build_flavor" : "default",
         "build_type" : "tar",
         "build_hash" : "b7e28a7",
         "total_indexing_buffer" : 106502553,
         "roles": [
            "master",
            "data",
            "ingest"
         ],
         "attributes": {
………………………………………………

Cluster Health

The API is used to obtain the status of the cluster's operation by adding the 'health' keyword.

GET /_cluster/health

After running the above code, we get the following response:

{
   "cluster_name": "elasticsearch",
   "status": "yellow",
   "timed_out" : false,
   "number_of_nodes" : 1,
   "number_of_data_nodes" : 1,
   "active_primary_shards" : 7,
   "active_shards" : 7,
   "relocating_shards" : 0,
   "initializing_shards" : 0,
   "unassigned_shards" : 4,
   "delayed_unassigned_shards" : 0,
   "number_of_pending_tasks" : 0,
   "number_of_in_flight_fetch" : 0,
   "task_max_waiting_in_queue_millis" : 0,
   "active_shards_percent_as_number" : 63.63636363636363
}

Cluster Status

This API is used to obtain status information about the cluster by adding the 'state' keyword to the URL. Status information includes version, master node, other nodes, routing table, metadata, and blocks.

GET /_cluster/state

After running the above code, we get the following response:

………………………………………………
{
   "cluster_name": "elasticsearch",
   "cluster_uuid": "IzKu0OoVTQ"6LxqONJnN2eQ
   "version" : 89,
   "state_uuid" : "y3BlwvspR1eUQBTo0aBjig",
   "master_node" : "FKH-5blYTJmff2rJ_lQOCg",
   "blocks" : { },
   "nodes": {
      FKH-5blYTJmff2rJ_lQOCg": {
      "name": "ubuntu",
      "ephemeral_id" : "426kTGpITGixhEzaM-5Qyg",
      "transport
   }
………………………………………………

Cluster statistics

This API helps retrieve statistical information about the cluster by using the 'stats' keyword. This API returns shard ID, storage size, memory usage rate, number of nodes, roles, operating system, and file system.

GET /_cluster/stats

After running the above code, we get the following response:

………………………………………….
"cluster_name": "elasticsearch",
"cluster_uuid": "IzKu0OoVTQ"6LxqONJnN2eQ
"timestamp": 1556435464704,
"status": "yellow",
"indices": {
   "count": 7,
   "shards": {
      "total": 7,
      "primaries": 7,
      "replication": 0.0,
      "index": {
         "shards": {
         "min": 1,
         "max": 1,
         "avg": 1.0
      },
      "primaries": {
         "min": 1,
         "max": 1,
         "avg": 1.0
      },
      "replication": {
         "min": 0.0,
         "max": 0.0,
         "avg": 0.0
      }
………………………………………….

Cluster update settings

Using this API, you can use the 'set' keyword to update the cluster settings. There are two types of settings-Persistence (applied during restart) and transient (cannot survive after a full cluster restart).

Node statistics

This API is used to retrieve statistical information about another node in the cluster. Node statistics are almost the same as cluster statistics.

GET /_nodes/stats

After running the above code, we get the following response:

{
   "_nodes": {
      "total": 1,
      "successful": 1,
      "failed": 0
   },
   "cluster_name": "elasticsearch",
   "nodes": {
      FKH-5blYTJmff2rJ_lQOCg": {
         "timestamp": 1556437348653,
         "name": "ubuntu",
         "transport_address": ""127.0.0.1:9300",
         "host": ""127.0.0.1",
         "ip": ""127.0.0.1:9300",
         "roles": [
            "master",
            "data",
            "ingest"
         ],
         "attributes": {
            "ml.machine_memory": ""4112797696",
            "xpack.installed": "true",
            "ml.max_open_jobs": ""20"
         },
………………………………………………………….

Node hot_threads

This API can help you retrieve information about the current hot threads on each node in the cluster.

GET /_nodes/hot_threads

After running the above code, we get the following response:

:::{ubuntu}{FKH-5blYTJmff2rJ_lQOCg}{426kTGpITGixhEzaM5Qyg}{127.0.0.1}{127.0.0.1:9300}{ml.machine_memory=4112797696,
xpack.installed=true, ml.max_open_jobs=20}
 Hot threads at 2019-04-28T07:43:58.265Z, interval=500ms, busiestThreads=3,
ignoreIdleThreads=true: