Elasticsearch配置(生产环境)

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来指定一个安全的目录路径。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容