Elasticsearch requires configuration and settings file changes to be made consistently across the Elasticsearch cluster.
...
Bulk | This method is most efficient for a large number of nodes and/or have manual configurations to apply to the
| |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Non-Bulk |
|
...
Info |
---|
Caution
|
Elasticsearch Config File
Info |
---|
Version differencesThe Elasticsearch configuration settings have changed with each major release. To See Elasticsearch Configuration Differences to track how they these configuration settings have changed since Elasticsearch 2.3.3, see Elasticsearch Configuration Differences. |
Edit the Elasticsearch config file: /etc/elasticsearch/elasticsearch.yml
action.auto_create_index: "+csmeter*,+*_nfsconnector,.watches, | Needed to disable automatic index creation, csmeter indices, and Swarm NFS connectors. (v10.1) | |||||
cluster.name: <ES_cluster_name> | Provide the Elasticsearch cluster a unique name, which is unrelated to the Swarm cluster name. Do not use periods in the name.
| |||||
node.name: <ES_node_name> | Optional. : Elasticsearch supplies a node name if one is not set. Do not use periods in the name. | |||||
network.host: _site_ | Assign a specific hostname or IP address, which requires clients to access the ES server using that address. If using a hostname, update Update | |||||
cluster.initial_master_nodes | (ES 7+) For first-time bootstrapping of a production ES cluster. Set to an array or comma-delimited list of the hostnames of the master-eligible ES nodes whose votes should be counted in the very first election. | |||||
discovery.zen. | (ES 6 only) Set to (number of master-eligible nodes / 2, rounded down) + 1. Prevents split-brain scenarios by setting the minimum number of ES nodes online before deciding on electing a new master. | |||||
discovery.seed_hosts | (ES 7+) Enables auto-clustering of ES nodes across hosts. Set to an array or comma-delimited list of the addresses of all master-eligible nodes in the cluster. | |||||
discovery.zen.ping.unicast.hosts: ["es0", "es1"] | (ES 6 only) Set to the list of node names/IPs in the cluster, verifying all ES servers are included. Multicast is disabled by default. | |||||
gateway.expected_nodes: 4 | Add and set to the number of nodes in the ES cluster. Recovery of local shards starts as soon as this number of nodes have joined the cluster. It falls back to the | |||||
gateway.recover_after_nodes: 2 | Set to the minimum number of ES nodes started before going into operation status:
| |||||
bootstrap.memory_lock: true | Set to lock the memory on startup to verify Elasticsearch does not swap (swapping leads to poor performance). Verify enough system memory resources are available for all processes running on the server. To allow the
| |||||
path.data: <path_to_data_directory> | By default, path.data goes to
| |||||
thread_pool.write.queue_size | The size of the queue used for bulk indexing. This variable was called |
...
Create the override file:
Code Block language bash /etc/systemd/system/elasticsearch.service.d/override.conf
Add this content:
Code Block language bash [Service] LimitMEMLOCK=infinity
Load the override file; otherwise , the setting does not take effect until the next reboot:
Code Block language bash sudo systemctl daemon-reload
...
| Set to half the available memory, but not more than 31 GB. |
---|---|
| Set to half the available memory, but not more than 31 GB. |
GC logs (optional) — By default, Elasticsearch enables GC logs by default. These are configured in jvm.options
and output to the same default location as the Elasticsearch logs. The default configuration rotates the logs every 64 MB and can consume up to 2 GB of disk space. Disable these logs until needed to troubleshoot memory leaks. To disable them, comment Comment out these lines to disable them:
Code Block | ||
---|---|---|
| ||
#8:-Xloggc:/var/log/elasticsearch/gc.log #8:-XX:+UseGCLogFileRotation #8:-XX:NumberOfGCLogFiles=32 #8:-XX:GCLogFileSize=64m #9:-Xlog:gc*,gc+age=trace,safepoint:file=/var/log/elasticsearch/gc.log:utctime,pid,tags:filecount=32,filesize=64m |
Anchor | ||||
---|---|---|---|---|
|
To customize the logging format and behavior, adjust its Adjust the configuration file: /etc/elasticsearch/log4j2.properties
In its default location, logging to customize the logging format and behavior.
Logging has the needed ownership in the default location. Choose a separate, dedicated partition of ample size, and make the elasticsearch
user the owner of that directory to move the log directory:
...
Code Block | ||
---|---|---|
| ||
appender.deprecation_rolling.policies.size.size = 2097152 appender.deprecation_rolling.strategy.max = 25 |
By default, deprecation Deprecation logging is enabled at the WARN level by default, the level at which all deprecation log messages are emitted. To Change the log level to ERROR to avoid having large warning logs, change the log level to ERROR:
Change level
Code Block | ||
---|---|---|
| ||
logger.deprecation.level = error |