美文网首页ElasticSearch
10. 配置Elasticsearch

10. 配置Elasticsearch

作者: ElasticSearch文档 | 来源:发表于2023-12-03 20:37 被阅读0次

Elasticsearch默认提供了良好的配置,并且需要很少的配置。大多数设置可以使用集群更新设置API在运行中的集群上更改。

配置文件应包含节点特定的设置(例如node.name和paths),或者节点加入集群所需的设置,例如cluster.name和network.host。

配置文件位置

Elasticsearch有三个配置文件:

  • elasticsearch.yml 用于配置Elasticsearch
  • jvm.options 用于配置Elasticsearch的JVM设置
  • log4j2.properties 用于配置Elasticsearch的日志记录

这些文件位于config目录中,其默认位置取决于安装是否来自归档分发(tar.gz或zip)还是软件包分发(Debian或RPM软件包)。

对于归档分发,config目录的位置默认为$ES_HOME/config。可以通过设置ES_PATH_CONF环境变量更改config目录的位置,如下所示:

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

或者,您可以通过命令行或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

在YAML中,您可以将非标量值格式化为序列:

discovery.seed_hosts:
   - 192.168.1.10:9300
   - 192.168.1.11
   - seeds.mydomain.com

虽然不太常见,但您还可以将非标量值格式化为数组:

discovery.seed_hosts: ["192.168.1.10:9300", "192.168.1.11", "seeds.mydomain.com"]
环境变量替换

在配置文件中使用${...}符号引用的环境变量将被替换为环境变量的值。例如:

node.name:    ${HOSTNAME}
network.host: ${ES_NETWORK_HOST}

环境变量的值必须是简单的字符串。使用逗号分隔的字符串提供值,Elasticsearch将解析为列表。例如,Elasticsearch将把以下字符串拆分为${HOSTNAME}环境变量的值列表:

export HOSTNAME="host1,host2"
集群和节点设置类型

集群和节点设置可以根据它们的配置方式进行分类:

动态设置

您可以使用集群更新设置 API 在运行中的集群上配置和更新动态设置。您还可以在未启动或已关闭的节点上使用 elasticsearch.yml 配置动态设置。

使用集群更新设置 API 进行的更新可以是持久性的,这意味着它们会在集群重新启动后保留,或者是瞬时的,这意味着它们在集群重新启动后会重置。您还可以通过使用 API 将瞬时或持久性设置重置为 null 值。

如果您使用多种方法配置相同的设置,Elasticsearch 将按以下优先顺序应用这些设置:

  1. 瞬时设置
  2. 持久性设置
  3. elasticsearch.yml 设置
  4. 默认设置值

例如,您可以应用瞬时设置以覆盖持久性设置或 elasticsearch.yml 设置。但是,对 elasticsearch.yml 设置的更改不会覆盖已定义的瞬时或持久性设置。

如果您使用 Elasticsearch Service,请使用用户设置功能配置所有集群设置。这种方法使 Elasticsearch Service 可以自动拒绝可能破坏集群的不安全设置。

如果您在自己的硬件上运行 Elasticsearch,请使用集群更新设置 API 配置动态集群设置。仅使用 elasticsearch.yml 配置静态集群设置和节点设置。该 API 不需要重新启动,并确保设置的值在所有节点上相同。

我们不再建议使用瞬时集群设置。请改用持久性集群设置。如果集群变得不稳定,瞬时设置可能会意外清除,导致潜在的不希望的集群配置。请参阅瞬时设置迁移指南

静态设置

静态设置只能在未启动或已关闭的节点上使用 elasticsearch.yml 配置。

静态设置必须在集群中的每个相关节点上设置。

相关文章

网友评论

    本文标题:10. 配置Elasticsearch

    本文链接:https://www.haomeiwen.com/subject/edhlgdtx.html