Elasticsearch Elasticsearch Master Node

By Opster Team

Updated: Jun 6, 2023

| 2 min read

Optimizing Elasticsearch Master Nodes for Cluster Stability

Elasticsearch master nodes play a crucial role in maintaining the stability and overall health of an Elasticsearch cluster. This article will discuss some advanced techniques and best practices for optimizing master nodes to ensure cluster stability.

If you want to learn about Elasticsearch dedicated master nodes, check out this guide.  You should also take a look at this guide, which contains a detailed explanation on Elasticsearch lack of quorum.

Advanced techniques and best practices

1. Master Node Selection

To avoid single points of failure, it is recommended to have at least three master-eligible nodes in a cluster. The minimum_master_nodes setting should be set to (N/2) + 1, where N is the number of master-eligible nodes. For example, if you have three master-eligible nodes, the minimum_master_nodes setting should be 2.

Example configuration:

cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
discovery.zen.minimum_master_nodes: 2

2. Dedicated Master Nodes

In larger clusters, it is beneficial to have dedicated master nodes. These nodes should have the node.master setting set to true and the node.data and node.ingest settings set to false. This configuration ensures that the master nodes only handle cluster management tasks and are not burdened with data or ingest operations.

Example configuration:

node.master: true
node.data: false
node.ingest: false

3. Master Node Resource Allocation

Master nodes should have sufficient resources, such as CPU, memory, and disk space, to handle cluster management tasks. Ensure that the heap size is set appropriately (usually 50% of the available RAM, up to a maximum of 32GB). Monitor the JVM heap usage and garbage collection times to identify any resource bottlenecks.

Example configuration:

ES_JAVA_OPTS="-Xms4g -Xmx4g"

4. Master Node Network Configuration

Master nodes should have a stable and fast network connection to communicate with other nodes in the cluster. Configure the network settings, such as network.host and network.publish_host, to ensure proper communication between nodes.

Example configuration:

network.host: _site_
network.publish_host: _site_

5. Cluster State Management

Large cluster states can put a strain on master nodes. To avoid this, limit the number of indices and shards in the cluster. Use the Index Lifecycle Management (ILM) feature to manage the lifecycle of indices and control the number of active shards.

Example ILM policy:

PUT _ilm/policy/my_policy
{
"policy": {
"phases": {
"hot": {
"actions": {
"rollover": {
"max_size": "50GB",
"max_age": "30d"
}
}
},
"delete": {
"min_age": "90d",
"actions": {
"delete": {}
}
}
}
}
}

Conclusion

By following these advanced techniques and best practices, you can optimize Elasticsearch master nodes to ensure cluster stability and maintain overall cluster health.

How helpful was this guide?

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?