Elasticsearch教程 | 第二篇:常见的参数配置

2021-11-16 16:52:06 浏览数 (1)

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

配置文件位置

Elasticsearch 有三个配置文件:

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

配置文件格式编辑

配置格式为YAML。以下是更改数据和日志目录路径的示例:

代码语言:javascript复制
path:
    data: /var/lib/elasticsearch
    logs: /var/log/elasticsearch

设置也可以按如下方式展平:

代码语言:javascript复制
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch

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

代码语言:javascript复制
discovery.seed_hosts:
   - 192.168.1.10:9300
   - 192.168.1.11
   - seeds.mydomain.com

或者:

代码语言:javascript复制
discovery.seed_hosts: ["192.168.1.10:9300", "192.168.1.11", "seeds.mydomain.com"]

环境变量替换

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

代码语言:javascript复制
node.name:    ${HOSTNAME}
network.host: ${ES_NETWORK_HOST}

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

代码语言:javascript复制
export HOSTNAME= "host1,host2"

集群和节点设置类型编辑

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

动态的

可以使用集群更新设置 API在正在运行的集群上配置和更新设置 。也可以在未启动或关闭的节点上使用本地配置设置 elasticsearch.yml。

使用集群更新设置 API 进行的更新是可以持久的,适用于集群重新启动,也可以是瞬态的,在集群重新启动后重置。还可以通过null使用 API为其分配一个值来重置临时或持久设置。

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

1.瞬态设置2.持久设置3.elasticsearch.yml 环境4.默认设置值

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

静止的

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

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

重要的 Elasticsearch 配置

Elasticsearch 只需很少的配置即可开始使用,但在生产中使用集群之前必须考虑许多事项:

•路径设置•集群名称设置•节点名称设置•网络主机设置•发现设置•堆大小设置•JVM 堆转储路径设置•GC 日志设置•临时目录设置•JVM致命错误日志设置•集群备份

路径设置

Elasticsearch 将您索引的数据写入索引并将数据流写入data 目录。Elasticsearch 将自己的应用程序日志写入一个logs目录,其中包含有关集群运行状况和操作的信息。

代码语言:javascript复制
path:
  data: /var/data/elasticsearch
  logs: /var/log/elasticsearch

集群名称设置

代码语言:javascript复制
cluster.name: logging-prod

节点名称设置

代码语言:javascript复制
node.name: prod-data-2

网络主机设置

代码语言:javascript复制
network.host: 192.168.1.10

发现集群设置

在进入生产之前配置两个重要的发现和集群形成设置,以便集群中的节点可以相互发现并选举一个主节点。

代码语言:javascript复制
discovery.seed_hosts:
   - 192.168.1.10:9300
   - 192.168.1.11 
   - seeds.mydomain.com 
   - [0:0:0:0:0:ffff:c0a8:10c]:9301 

1. 端口是可选的,默认为9300,但可以被覆盖。

2. 如果一个主机名解析为多个 IP 地址,该节点将尝试在所有解析地址处发现其他节点。 3. IPv6 地址必须用方括号括起来。

堆大小设置

默认情况下,Elasticsearch 会根据节点的角色和总内存自动设置 JVM 堆大小 。建议大多数生产环境使用默认大小。

0 人点赞