Elasticsearch 已经有了 很好 的默认值,特别是涉及到性能相关的配置或者选项。
指定名字

Elasticsearch 默认启动的集群名字叫 elasticsearch 。你最好给你的生产环境的集群改个名字,改名字的目的很简单, 就是防止某人的笔记本电脑加入了集群这种意外。简单修改成 elasticsearch_production 会很省心。
cluster.name: elasticsearch_production
默认 Elasticsearch 会在你的节点启动的时候随机给它指定一个名字。
node.name: elasticsearch_005_data
路径

默认情况下,Elasticsearch 会把插件、日志以及你最重要的数据放在安装目录下。
可以更改如下:

  1. path.data: /path/to/data1,/path/to/data2
  2. # Path to log files:
  3. path.logs: /path/to/logs
  4. # Path to where plugins are installed:
  5. path.plugins: /path/to/plugins

最小主节点数

minimum_master_nodes 设定对你的集群的稳定 极其 重要。 当你的集群中有两个 masters(注:主节点)的时候,这个配置有助于防止 脑裂 ,一种两个主节点同时存在于一个集群的现象。
此设置应该始终被配置为 master 候选节点的法定个数(大多数个)。法定个数就是 ( master 候选节点个数 / 2) + 1 。 这里有几个例子:

  • 如果你有 10 个节点(能保存数据,同时能成为 master),法定数就是 6 。
  • 如果你有 3 个候选 master 节点,和 100 个 data 节点,法定数就是 2 ,你只要数数那些可以做 master 的节点数就可以了。
  • 如果你有两个节点,你遇到难题了。法定数当然是 2 ,但是这意味着如果有一个节点挂掉,你整个集群就不可用了。 设置成 1 可以保证集群的功能,但是就无法保证集群脑裂了,像这样的情况,你最好至少保证有 3 个节点。
    discovery.zen.minimum_master_nodes: 2
    集群恢复方面的配置

当你集群重启时,几个配置项影响你的分片恢复的表现。首先,我们需要明白如果什么也没配置将会发生什么。
阻止 Elasticsearch 在存在至少 8 个节点(数据节点或者 master 节点)之前进行数据恢复。这意味着至少要有 8 个节点,该集群才可用。
gateway.recover_after_nodes: 8
告诉 Elasticsearch 集群中 应该 有多少个节点,以及我们愿意为这些节点等待多长时间:
gateway.expected_nodes: 10
gateway.recover_after_time: 5m
这意味着 Elasticsearch 会采取如下操作:

  • 等待集群至少存在 8 个节点
  • 等待 5 分钟,或者10 个节点上线后,才进行数据恢复,这取决于哪个条件先达到。

注意:这些配置只能设置在 config/elasticsearch.yml 文件中或者是在命令行里(它们不能动态更新)它们只在整个集群重启的时候有实质性作用。
最好使用单播代替组播

Elasticsearch 默认被配置为使用单播发现,以防止节点无意中加入集群。只有在同一台机器上运行的节点才会自动组成集群。
discovery.zen.ping.unicast.hosts: [“host1”, “host2:port”]

https://www.elastic.co/guide/cn/elasticsearch/guide/current/important-configuration-changes.html