data/log目录路径path
data目录和log目录默认在$ES_HOME下,为防止Elasticsearch升级时data和log被删除,应另外设置目录路径:
path:
logs: /var/log/elasticsearch
data: /var/data/elasticsearch
cluster name
cluster.name默认为elasticsearch,我们应该改为项目相关的有意义的名称,比如:
cluster.name: logging-prod
在不同的环境下应该设置不同的集群名称。
node name
node.name默认为Elasticsearch启动时的hostname,也可以在elasticsearch.yml中显式地进行设置:
node.name: prod-data-2
主机地址 network.host
Elasticsearch默认的host设置为环回地址比如127.0.0.1或者[::1]。在一个服务器上可以启动多个节点,这样方便对集群进行测试,但这在生产环境中是不好的。在生产环境的集群中,应该给不同的节点设置不同的服务器地址,而不是使用环回地址,比如:
network.host: 192.168.1.10
一旦对network.host进行设置,Elasticsearch就认为目前是生产环境,不产生debug信息。
discovery设置
候选主节点地址 discovery.seed_hosts
默认情况下,Elasticsearch绑定在127.0.0.1上,并会检查9300-9305之间的端口是否有其他节点。生产环境中,其他节点一般在其他服务器上,我们需要设置discovery.seed_hosts,用ip地址或者域名指出候选主节点的地址。
候选主节点名称 cluster.initial_master_nodes
在开发环境中,最一开始启动一个Elasticsearch集群的时候,会自动设置一些候选主节点;而在生产环境中,需要我们使用cluster.initial_master_nodes来设置候选主节点的名称(节点的名称默认是它们的hostname)
discovery.seed_hosts:
- 192.168.1.10:9300
- 192.168.1.11
- seeds.mydomain.com
- [0:0:0:0:0:ffff:c0a8:10c]:9301
cluster.initial_master_nodes:
- master-node-a
- master-node-b
- master-node-c
堆大小 heap size
默认1GB,生产环境中需设置足够的空间。堆空间大小的设置在jvm.options的Xms(最小)和Xmx(最大),Xms和Xmx的值要相等,不超过物理内存大小的50%,不超过JVM压缩对象指针使用的空间大小(一般为32GB)的50%,不超过压缩指针空间大小(一般为26或30GB)的50%。
-Xms2g
-Xmx2g
或者通过环境变量设置:
ES_JAVA_OPTS="-Xms2g -Xmx2g" ./bin/elasticsearch
ES_JAVA_OPTS="-Xms4000m -Xmx4000m" ./bin/elasticsearch
堆转储文件路径
默认路径在/var/lib/elasticsearch,如果有需要,可以在jvm.options通过-XX:HeapDumpPath=...设置
GC日志路径
在Elasticsearch日志相同目录下,如需修改日志路径,详见https://www.elastic.co/guide/en/elasticsearch/reference/current/gc-logging.html
临时文件夹 Temp directory
Elasticsearch运行时会产生一个临时文件夹,如果用的是.tar.gz版本,又需要长期用到临时文件夹中的文件,考虑通过设置环境变量$ES_TMPDIR来指定一个安全的目录路径。