Elasticsearch Cluster APIs
In Elasticsearch, cluster API fetches the information about a cluster and its node. It also makes further changes in them. With the help of Cluster API, we can perform the 21 operations at the cluster level. We can use this API to manage our clusters. We need to specify node name, address or _local keyword along with the GET method to call this API.
As we said, this is a distributed environment where we have a lot of nodes and this Elasticsearch environment can be multi-node deployment as well. So, in this case, cluster API gives us information with respect to the cluster. Below some essential points of cluster API –
- Most of the cluster APIs allows specifying which nodes to execute.
- In APIs, we can identify the nodes either using their internal node name, node id, custom attributes, address, or just receiving _local node request.
For Example
Response
You will get the output same as the below response.
Following are some of the commands, which can execute to get more information about a cluster:
Cluster Health
Using this API, we can check the health status of the cluster. The cluster health API helps to fetch the health of the cluster. It returns the cluster status as red, yellow, or green for stop, running, or ready, respectively.
Append the _cluster and health keyword in URL and get the status on the cluster health. Execute the following code and get the response:
Copy Code
Response
You will get the output like the below response.
Screenshot
Cluster State
This API is used to get information about the cluster state. The state information contains the cluster name, state_uuid, version, master node, metadata, routing table, blocks, and much more.
Append the _cluster and state keyword in URL and get the information about the cluster state. Execute the following code and get the state information:
Copy Code
Response
You will get the output like the below response.
Screenshot
Cluster Stats
Stats stands for statistics. By using stats keyword, we can retrieve the statistics about cluster. It returns the statistics information about cluster along with shard number, memory usage, store size, roles, OS, number of nodes, and file system.
Append the _cluster and stats keyword in URL and get the information about cluster statistics. Execute the following code and get the statistics information of cluster:
Copy code
Response
You will get the output like the below response.
Screenshot
Pending Cluster Tasks
The pending cluster tasks API manages all the pending tasks in any cluster. It monitors tasks like create index, allocate or fail shard, and update mapping, etc. To monitor these tasks, append the _cluster and pending_tasks in URL and fetch all the remaining/pending tasks in the cluster. Copy the following code and execute the query:
Copy Code
Response
You will get the output like the below response if there is no pending task in the cluster.
Screenshot
Cluster Reroute
The cluster reroute API is responsible for moving shards from one node to another. It can also allocate any unassigned shards and cancels the allocation of any shard. To successfully execute this query, we require to use the POST request method. Look at the following example below and execute it on your system:
Copy Code
Response
You will get the output like the below response.
Screenshot
Cluster Update Settings
This API helps to update the setting of a cluster. Use the settings keyword to update cluster settings. Most of the cluster level APIs allow the user to specify the node to execute. There are two types of settings –
- Persistent – It applied across the restart.
- Transient – Do not survive a full cluster restart.
Execute the following code and get the response:
Copy Code
Response
By executing the above query, you will get the output like the below response.
Screenshot
Persistent API
We can update settings to be persistent settings. Below is an example of persistent update:
Copy Code
Response
By executing the above query, you will get the output like the below response.
Screenshot
Transient API
We can update settings to be transient settings. Below is an example of persistent update:
Copy Code
Response
By executing the above query, you will get the output like the below response.
Screenshot
Node Stats
The node stats API helps to retrieve the statistics about the node of the cluster. Node stats and cluster stats are almost same. We can retrieve the statistics for any number of nodes. To retrieve the statistics for a node, append _stats keyword along with _nodes keyword in URL.
Copy the following code and execute the query on your system:
Copy Code
Response
By executing the above query, you will get the output like the below response.
Screenshot
You will get the output same as in the below screenshot.
Node hot_threads
This API is responsible for retrieving information about the current hot threads for each node in a cluster. To retrieve the information for hot thread on each node, append hot_threads keyword along with _nodes keyword in URL and get the respond in response body. GET method is used to send this http request.
Copy the following code and execute the query on your system. It will take a bit of time to execute completely.
Copy Code
Response
By executing the above query, you will get the output like the below response.