Local Elasticsearch Cluster Status = RED

If you want to check the status of your local single node elasticsearch development server, you can query the cluster stats endpoint at maybe http://localhost:9200/_cluster/health?level=indices.

  "cluster_name": "erstmal",
  "status": "red",
  "number_of_nodes": 1,
  "assigned_shards": 4,
  "unassigned_shards": 126

If this status shows "red" and you can see lots of unassigned_shards here, you have a problem.

In my case I was running a local elasticsearch instance with no cluster mode at all. But the default configuration of my elasticsearch server was to run with 5 shards and 1 replica.

To fix this, add:

index.number_of_shards: 1
index.number_of_replicas: 0

to your elasticsearch.yml.

If you restart elasticsearch (service elasticsearch restart) all new indices, will have this configuration. But you need to fix this for all existing indicies.


$ curl -XPUT 'localhost:9200/_settings' -d '{"index.number_of_replicas": 0}'

and all indicies will be updated.

Now calling http://localhost:9200/_cluster/health?level=indices should give:

  "cluster_name": "erstmal",
  "status": "green",
  "timed_out": false,
  "number_of_nodes": 1,
  "assigned_shards": 130,
  "unssigned_shards": 0

after some minutes.

Of course there are plenty of other reasons why the cluster status of elasticsearch might change from green to yellow or red. See for example chris simpsons post for more information.

In elasticsearch, open source by @ 31 Jan 2016

comments powered by Disqus

Recent Files


Recent Dev-Articles

Read recently