赞
踩
elasticsearch.yml
是 Elasticsearch 的主要配置文件,用于定义集群、节点、网络、数据存储、性能调整等多个方面的设置。以下是 elasticsearch.yml
配置文件中一些关键配置项的说明,以及它们的常用值和含义:
cluster.name
: 定义集群的名称。所有加入同一集群的节点必须使用相同的集群名称。默认值为 elasticsearch
。cluster.name: my_cluster
node.name
: 节点的唯一标识名称。默认情况下,Elasticsearch 会随机选择一个名称,但手动指定一个有意义的名称有助于管理和监控。node.name: node1
node.roles
: 定义节点的角色。可能的角色包括 master
(参与集群管理,如选举主节点)、data
(存储数据)、ingest
(处理数据摄取管道)、ml
(支持机器学习任务)、transform
(支持数据转换任务)、remote_cluster_client
(用于跨集群搜索)。默认情况下,节点具有所有角色。node.roles: [master, data, ingest]
network.host
: 指定节点监听的网络接口(IP 地址或主机名)和端口。默认值通常为 localhost
,用于仅允许本地访问。若要允许外部访问,可设置为 0.0.0.0
或指定的 IP 地址。network.host: 0.0.0.0
http.port
: 设置 Elasticsearch HTTP 服务监听的端口。默认值为 9200
。http.port: 9200
path.data
: 数据文件存储路径。Elasticsearch 将在此目录下创建索引数据文件。path.data: /var/lib/elasticsearch
path.logs
: 日志文件存储路径。path.logs: /var/log/elasticsearch
bootstrap.memory_lock
: 是否锁定 JVM 到物理内存以避免分页。在生产环境中建议设为 true
,但需要相应的操作系统支持和权限。bootstrap.memory_lock: true
heap.size
: 设置 JVM 堆大小。应根据系统内存合理调整,避免过大导致交换或过小影响性能。xpack.ml.enabled: false
thread_pool.*
: 配置各种线程池的行为,如队列大小、拒绝策略等。根据工作负载调整以优化性能。
indices.query.bool.max_clause_count
: 控制布尔查询的最大子句数。默认值较小,可能需要根据实际查询复杂度提高。
xpack.security.enabled
: 是否启用 Elasticsearch 安全特性。开启后需要配置用户、角色、权限等。
xpack.security.enabled: true
plugins
: 列出需要在启动时加载的插件。plugins:
- discovery-gce
discovery.seed_hosts
: 列出集群初始发现的节点列表。当节点启动时,它将尝试连接这些节点以获取集群状态。discovery.seed_hosts:
- host1:9300
- host2:9300
cluster.routing.allocation.*
: 配置 shard 分配策略,如节点负载均衡、副本分配偏好等。
indices.recovery.*
: 控制索引恢复行为,如速度限制、并发恢复数等。
indices.breaker.*
: 设置内存使用阈值,防止 Elasticsearch 因内存压力而崩溃。
logger.*
: 设置特定类别的日志级别,如 logger.org.elasticsearch: DEBUG
。
cluster.routing.allocation.disk.threshold_enabled
: 是否启用磁盘使用率阈值检查,防止因磁盘空间不足导致的问题。
以上仅为 elasticsearch.yml
配置文件中的一部分关键配置项。实际使用时,应根据具体的部署环境、硬件资源、业务需求等因素,参考 Elasticsearch 官方文档进行细致的配置。务必在修改配置后重启 Elasticsearch 服务,使新的配置生效。同时,确保定期备份 elasticsearch.yml
文件,并在升级 Elasticsearch 版本时检查是否有配置变更。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。