After installing Elasticsearch it needs the following configuration changes before it can be used productively.

Precondition: make sure your machine has a fixed IP address.


Edit /etc/sysctl.config:

Configuration Task


Reduce the kernel’s tendency to swap. Still allow to swap in emergency conditions.Set vm.swappiness=1


Edit /etc/elasticsearch/jvm.options:

Configuration Task


Set the Java heap size to half of the available memory but not greater than 16 GB

Example for 2 GB:

-Xms2g
-Xmx2g


Edit /etc/elasticsearch/elasticsearch.yml:

Configuration Task


Make Elasticsearch node accessible under a public IP address (instead of localhost only)

Set network.host to your fixed IP address

Retrieve IP address information using /sbin/ifconfig

Ensure that your Elasticsearch nodes are in the same Elasticsearch cluster and don't influence other Elasticsearch installationsSet cluster.name to something unique, e.g. ElasticDigaSystem
Give your node a unique (and self-explaining name)Set node.name to something unique, e.g. DigaSystemNode1
Prevent wildcard deleting of indicesSet action.destructive_requires_name to true
Disable automatic index creation

Set action.auto_create_index to 0 

Breaking change in Elasticsearch 6.x:

Set action.auto_create_index to ".watches,.triggered_watches,.watcher-history-*


Links with more detailed information: