WARNING: Version 1.3 of Elasticsearch has passed its EOL date.
This documentation is no longer being maintained and may be removed. If you are running this version, we strongly advise you to upgrade. For the latest information, see the current release documentation.
Nodes Shutdown
editNodes Shutdown
editThe nodes shutdown API allows to shutdown one or more (or all) nodes in
the cluster. Here is an example of shutting the _local
node the
request is directed to:
$ curl -XPOST 'http://localhost:9200/_cluster/nodes/_local/_shutdown'
Specific node(s) can be shutdown as well using their respective node ids (or other selective options as explained here .):
$ curl -XPOST 'http://localhost:9200/_cluster/nodes/nodeId1,nodeId2/_shutdown'
The master (of the cluster) can also be shutdown using:
$ curl -XPOST 'http://localhost:9200/_cluster/nodes/_master/_shutdown'
Finally, all nodes can be shutdown using one of the options below:
$ curl -XPOST 'http://localhost:9200/_shutdown' $ curl -XPOST 'http://localhost:9200/_cluster/nodes/_shutdown' $ curl -XPOST 'http://localhost:9200/_cluster/nodes/_all/_shutdown'
Delay
editBy default, the shutdown will be executed after a 1 second delay (1s
).
The delay can be customized by setting the delay
parameter in a time
value format. For example:
$ curl -XPOST 'http://localhost:9200/_cluster/nodes/_local/_shutdown?delay=10s'
Disable Shutdown
editThe shutdown API can be disabled by setting action.disable_shutdown
in
the node configuration.
Rolling Restart of Nodes (Full Cluster Restart)
editA rolling restart allows the ES cluster to be restarted one node at a time, with no observable downtime for end users. To perform a rolling restart:
- Disable shard allocation (so that Elasticsearch will not attempt to reallocate shards and waste I/O when each node is stopped and started).
curl -XPUT localhost:9200/_cluster/settings -d '{ "transient" : { "cluster.routing.allocation.enable" : "none" } }'
- Shut down a single node within the cluster (if you have dedicated master nodes, start with these before the data nodes).
- Start the node back up and confirm that it has rejoined the cluster (using Marvel, cat nodes api, etc..)
- Repeat the above 2 steps for the remaining nodes, i.e. stop and start each node and confirm that it can rejoin the cluster.
- When this is done on all nodes, enable shard allocation.
curl -XPUT localhost:9200/_cluster/settings -d '{ "transient" : { "cluster.routing.allocation.enable" : "all" } }'
- Confirm that the shards are properly allocated on all nodes.