Elasticsearch具有良好的默认值,只需要很少的配置。可以使用Cluster Update Settings API在正在运行的群集上更改大多数设置。
配置文件应包含特定于节点的设置(例如node.name和paths),或节点为了能够加入集群而需要的设置,例如cluster.name和network.host。
配置文件位置 Elasticsearch有三个配置文件:
- elasticsearch.yml用于配置Elasticsearch
- 用于配置Elasticsearch JVM设置的jvm.options
- log4j2.properties用于配置Elasticsearch日志记录
这些文件位于config目录中,其默认位置取决于安装是来自存档分发(tar.gz还是zip)还是包分发(Debian或RPM软件包)。
对于归档分发,config目录位置默认为$ ES_HOME / config。可以通过ES_PATH_CONF环境变量更改config目录的位置,如下所示:
ES_PATH_CONF=/path/to/my/config
或者,您可以通过命令行或通过shell配置文件导出ES_PATH_CONF环境变量。
对于包发行版,config目录位置默认为/ etc / elasticsearch。config目录的位置也可以通过ES_PATH_CONF环境变量进行更改,但请注意,在shell中设置它是不够的。相反,此变量来自/ etc / default / elasticsearch(对于Debian软件包)和/ etc / sysconfig / elasticsearch(对于RPM软件包)。您需要相应地编辑其中一个文件中的ES_PATH_CONF = / etc / elasticsearch条目以更改config目录位置。
配置文件格式 配置格式为YAML。以下是更改数据路径和日志目录的示例:
path:
data: /var/lib/elasticsearch
logs: /var/log/elasticsearch
设置也可以按如下方式展平:
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
环境变量替代 在配置文件中用$ {…}表示法引用的环境变量将替换为环境变量的值,例如:
node.name: ${HOSTNAME}
network.host: ${ES_NETWORK_HOST}