ElasticSearch 实战:Elasticsearch集群配置

配置 Elasticsearch 集群涉及到多个方面,包括但不限于集群名称设定、节点角色分配、网络配置、数据存储路径、内存设置、性能优化、安全性配置等。以下是一份详细的 Elasticsearch 集群配置实战指南:

1. 集群名称(cluster.name

在每个节点的 elasticsearch.yml 文件中指定相同的集群名称,使得具有相同名称的节点能够自动组成一个集群。确保不同环境下的集群使用不同的名称,以避免节点加入错误的集群。

cluster.name: my_production_cluster

2. 节点名称与角色(node.namenode.roles

为每个节点指定一个唯一的名称,方便识别和管理:

node.name: node1

定义节点在集群中的角色。常见的角色包括:

  • master: 参与主节点选举,负责集群的元数据管理和变更。
  • data: 存储数据分片。
  • ingest: 执行数据摄取管道。
  • ml: 支持机器学习任务。
  • transform: 支持数据转换任务。
  • coordinating: 负责将客户端请求路由至合适的节点。

根据需要为节点分配角色:

node.roles: [master, data, ingest]

3. 网络配置

监听地址(network.host

设置节点监听的网络接口(IP 地址或主机名),允许外部访问时可设置为 0.0.0.0 或指定的 IP 地址:

network.host: 0.0.0.0
HTTP端口(http.port

指定 Elasticsearch HTTP 服务监听的端口,默认为 9200

http.port: 9200
传输端口(transport.port

Elasticsearch 内部节点间通信使用的端口,默认为 9300。除非有特殊需求,通常无需改动:

transport.port: 9300

4. 数据与日志存储

数据路径(path.data

指定 Elasticsearch 数据文件的存储路径:

path.data: /mnt/data/elasticsearch
日志路径(path.logs

指定 Elasticsearch 日志文件的存储路径:

path.logs: /var/log/elasticsearch

5. 内存设置

JVM堆大小(heap.size

根据服务器内存大小合理设置 JVM 堆大小。通常推荐堆大小不超过服务器总内存的 50%,并保留足够的内存给操作系统和其他进程:

# 示例:为 32GB 内存服务器设置 16GB 堆大小
-Xms16g
-Xmx16g
锁定内存(bootstrap.memory_lock

避免 JVM 分页到磁盘,提升性能。在生产环境中建议开启,但需要操作系统支持:

bootstrap.memory_lock: true

6. 性能优化

线程池(thread_pool.*

根据工作负载调整线程池大小、队列长度、拒绝策略等,优化集群性能:

thread_pool.bulk.queue_size: 500
分片分配与恢复(cluster.routing.*indices.recovery.*

配置 shard 分配策略、节点负载均衡、副本分配偏好、恢复速度限制等,优化集群资源使用和数据恢复效率:

cluster.routing.allocation.node_concurrent_recoveries: 4
indices.recovery.max_bytes_per_sec: "40mb"
断路器(indices.breaker.*

设置内存使用阈值,防止 Elasticsearch 因内存压力而崩溃:

indices.breaker.fielddata.limit: "60%"

7. 安全性

启用并配置 Elasticsearch 安全特性,包括身份验证、授权、TLS 加密等:

xpack.security.enabled: true

详细的安全配置请参考 Elasticsearch 安全性官方文档

8. 插件与模块

列出需要在启动时加载的插件:

plugins:
  - analysis-icu

9. 日志与调试

配置日志级别、输出格式、轮转策略等:

logger.discovery: TRACE

10. 高级设置

  • 集群健康检查(discovery.zen.minimum_master_nodes

    • 设置确保集群健康所需的最小主节点数,防止脑裂。
  • 跨域资源共享(http.cors.*

    • 如果需要从其他域访问 Elasticsearch,配置 CORS 设置以允许跨域请求。
  • 慢查询日志(slowlog.*

    • 配置记录慢查询的阈值和输出路径,用于性能调优。

完成配置后,重启 Elasticsearch 服务以应用新的配置。在生产环境中,建议对配置文件进行版本控制,并在升级 Elasticsearch 版本时检查是否有配置变更。定期监控集群状态和日志,根据实际运行情况调整配置。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值