elasticsearch 配置

elasticsearch 配置

配置的位置

Elasticsearch 有三个配置文件,均在/config文件夹中

  • elasticsearch.yml 配置elasticsearch自身配置的文件

  • jvm.options 配置elasticsearch的环境设置的文件

  • log4j2.properties 配置elasticsearch 日志输出的文件

这些文件的默认位置取决于安装是来自存档分发版(tar.gz 或 zip)还是软件包分发版(Debian 或 RPM 软件包)

对于存档分发,配置目录位置默认为 $ES_HOME/config。可以通过 ES_PATH_CONF 环境变量更改配置目录的位置

1
ES_PATH_CONF=/path/to/my/config ./bin/elasticsearch

配置的格式

elasticsearch的格式是YML格式,yml格式的基本要求:

  • 大小写敏感;
  • 用缩进代表层级关系,且不要用tab代替空格
1
2
3
path:
data: /var/lib/elasticsearch
logs: /var/log/elasticsearch

或者扁平写法:

1
2
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch

例如: 配置elasticsearch 的种子主机配置,可以用-指明,也可以以一个数组的方式配置

1
2
3
4
discovery.seed_hosts:
- 192.168.1.10:9300
- 192.168.1.11
- seeds.mydomain.com

1
discovery.seed_hosts:["192.168.1.10:9300", "192.168.1.11", "seeds.mydomain.com"]

环境变量的替换

  • 我们可以通过环境变量的方式,替换配置项的变量值,在配置中,我们用${...}的符号表示可替换,例如elasticsearch.yml文件中
1
2
node.name:    ${HOSTNAME}
network.host: ${ES_NETWORK_HOST}
  • 此外,环境变量的值必须是简单的字符串。Elasticsearch 会将使用逗号分隔的字符串解析为列表的值。
1
export HOSTNAME=“host1,host2"

集群和节点的设置方式

Elasticsearch 支持两种设置配置的方式: 动态设置和静态设置。

  • 静态设置

静态设置,顾名思义,是指在未启动或关闭的elasticsearch节点上使用 elasticsearch.yml 进行配置,在集群里,需要确保每个节点都需要配置一次。

  • 动态配置

动态设置,其实是指在elasticsearch集群或节点工作情况下,均可做配置设置。 Elasticsearch提供了一套更新设置的接口。
传送门

我们可以通过这些接口,完成配置设定。这的配置也分两种,暂时的持久的

1
使用集群更新设置 API 进行的更新可以是持久的,适用于集群重新启动,也可以是暂时的,则在集群重新启动后会被重置掉。