Elasticsearch Dedicated Client Nodes

Elasticsearch Dedicated Client Nodes

Opster Team

March 2021

In addition to reading this guide, we recommend you run the Elasticsearch Health Check-Up. It will detect issues and improve your Elasticsearch performance by analyzing your shard sizes, threadpools, memory, snapshots, disk watermarks and more.

The Elasticsearch Check-Up is free and requires no installation.

Run the Elasticsearch check-up to receive recommendations like this:

checklist Run Check-Up

The following configuration error was detected on node 123...



This error can have a severe impact on your system. It's important to understand that it was caused by...



In order to resolve this issue and prevent it from occurring again, we recommend that you begin by changing the configuration to...


X-PUT curl -H "Content-Type: application/json" [customized recommendation]


There is some confusion in the use of coordinating node terminology. Client nodes were removed from Elasticsearch after version 2.4 and became Coordinating Nodes. At the same time a new node type, Ingest Node, also appeared. Many clusters do not use dedicated coordinating or ingest nodes, and leave the ingest and coordination functions to the data nodes. 

Coordinating Node

A coordinating (or client) node is a node which has:

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

This means that the only functions it can carry out are those related to relaying queries to other data nodes, acting as a load balancer. This configuration is only recommended for large clusters (usually 20 nodes or more).

If you have coordinating nodes, then search requests should be load-balanced across the coordinating nodes rather than sending directly to the data nodes.

Ingest Node

Not to be confused with coordinating (or client) nodes, an ingest node is a specific type of node used for pre-processing documents in ingest pipelines.  If you intensively use ingest pipelines for processing documents (eg. log parsing or pdf document processing) then it may make sense to use this type of node on medium to large clusters (10 nodes or more).

An ingest node is created by setting:

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

All indexing requests that require ingest pipelines should be load balanced across the ingest nodes. Search requests must not be sent to ingest nodes where node.data is false.

Run the Check-Up to get a customized report like this:

Analyze your cluster