Elasticsearch 配置

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

配置文件应包含特定于节点的设置(如node.name和paths),或节点为了能够加入集群而需要的设置,如cluster.name和network.host。

一、配置文件位置

Elasticsearch有三个配置文件:

  1. 用于配置elasticsearch.yml
  2. 用于配置Elasticsearch jvm设置的jvm.options
  3. log4j2.用于配置Elasticsearch日志记录的属性

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

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

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

或者,可以通过命令行或shell配置文件导出ES_PATH_CONF环境变量。

对于package 版,配置目录位置默认为/etc/elasticsearch。配置目录的位置也可以通过ES_PATH_CONF环境变量进行更改,但请注意,仅在shell中设置该位置是不够的。相反,这个变量来源于/etc/default/elasticsearch(用于Debian包)和/etc/sysconfig/elasticsearch(用于RPM包)。您需要相应地编辑其中一个文件中的ES_PATH_CONF=/etc/elasticsearch条目,以更改配置目录的位置。

二、配置文件格式

配置格式为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"

四、集群和节点设置类型

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

Dynamic

您可以使用集群更新设置API在正在运行的集群上配置和更新动态设置。您还可以使用弹性搜索.yml在未启动或关闭的节点上本地配置动态设置。

使用集群更新设置API进行的更新可以是持久的,适用于集群重新启动,也可以是暂时的,在集群重新启动后重置。您还可以通过使用API为临时或持久设置分配空值来重置它们。

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

  1. Transient setting
  2. Persistent setting
  3. elasticsearch.yml setting
  4. Default setting value

例如,可以应用瞬态设置来覆盖持久设置或elasticsearch.yml设置。然而,对elasticsearch.yml设置的更改不会覆盖定义的瞬态或持久设置。

相关推荐
Dusk_橙子6 小时前
在elasticsearch中,document数据的写入流程如何?
大数据·elasticsearch·搜索引擎
喝醉酒的小白8 小时前
Elasticsearch 中,分片(Shards)数量上限?副本的数量?
大数据·elasticsearch·jenkins
熟透的蜗牛11 小时前
Elasticsearch 8.17.1 JAVA工具类
elasticsearch
九圣残炎14 小时前
【ElasticSearch】 Java API Client 7.17文档
java·elasticsearch·搜索引擎
risc12345617 小时前
【Elasticsearch】HNSW
elasticsearch
我的棉裤丢了17 小时前
windows安装ES
大数据·elasticsearch·搜索引擎
乙卯年QAQ19 小时前
【Elasticsearch】RestClient操作文档
java·大数据·elasticsearch·jenkins
超级阿飞1 天前
利用Kubespray安装生产环境的k8s集群-实施篇
elasticsearch·容器·kubernetes
小诺大人1 天前
Docker 安装 elk(elasticsearch、logstash、kibana)、ES安装ik分词器
elk·elasticsearch·docker
forestsea2 天前
【Elasticsearch 】 聚合分析:桶聚合
大数据·elasticsearch·搜索引擎