当前位置: 首页 > news >正文

Elasticsearch核心配置详解与优化

Elasticsearch 的核心配置文件主要用于控制节点行为、集群设置、资源分配和日志记录等关键功能。主要配置文件通常位于 ES_HOME/config 目录下,以下是三个最核心的配置文件及其详细说明:


1. elasticsearch.yml

核心集群与节点配置
这是最重要的配置文件,包含集群拓扑、网络、存储、安全等全局设置。

关键配置项:

  • 基础设置:

    cluster.name: my-elastic-cluster  # 集群名称(同一集群所有节点需一致)
    node.name: node-1                 # 当前节点名称(建议唯一)
    
  • 节点角色设置 (ES 7.9+):

    node.roles: [ data, master ]      # 节点角色:data(数据节点), master(主节点), ingest(预处理节点)
    # 生产环境建议分离 master 和 data 角色
    
  • 网络与通信:

    network.host: 192.168.1.10       # 绑定IP(默认localhost,生产需改为实际IP)
    http.port: 9200                  # REST API 端口
    transport.port: 9300             # 节点间通信端口
    discovery.seed_hosts: ["host1", "host2"]  # 集群种子节点列表
    cluster.initial_master_nodes: ["node-1", "node-2"]  # 初始主节点(首次启动时指定)
    
  • 存储路径:

    path.data: /var/data/elasticsearch  # 数据存储目录(可配置多个路径)
    path.logs: /var/log/elasticsearch   # 日志目录
    
  • 安全配置 (X-Pack):

    xpack.security.enabled: true        # 启用基础安全(用户名/密码)
    xpack.security.transport.ssl.enabled: true  # 节点间通信加密
    
  • 内存保护 (防止OOM):

    bootstrap.memory_lock: true          # 锁定内存(避免交换分区影响性能)
    

2. jvm.options

JVM 堆内存与垃圾回收配置
控制 Elasticsearch 进程的内存使用和GC策略。

关键配置:

  • 堆内存大小:

    -Xms4g   # 初始堆内存(建议设为与最大值相同)
    -Xmx4g   # 最大堆内存(不超过物理内存的50%,且不超过30GB)
    

    建议: 生产环境推荐 16-30GB,避免过大引发长GC停顿。

  • 垃圾回收器:

    -XX:+UseG1GC               # Java 8+ 默认推荐
    -XX:MaxGCPauseMillis=500   # 目标GC停顿时间
    
  • 其他优化:

    -Des.index.memory.max_bytes=32gb  # 控制索引内存上限
    

3. log4j2.properties

日志记录配置
控制日志级别、滚动策略和输出格式。

常用配置:

# 日志级别(ERROR, WARN, INFO, DEBUG)
logger.cluster.name = org.elasticsearch.cluster
logger.cluster.level = info# 日志滚动策略(按日期/大小分割)
appender.rolling.type = RollingFile
appender.rolling.filePattern = ${sys:es.logs.base_path}/${sys:es.logs.cluster_name}_%d{yyyy-MM-dd}.log 
appender.rolling.policies.type = Policies
appender.rolling.policies.size.type = SizeBasedTriggeringPolicy
appender.rolling.policies.size.size = 256MB  # 单个日志文件上限

重要补充配置

  1. 操作系统级优化:

    • 增大文件描述符限制(/etc/security/limits.conf
    • 禁用交换分区(sudo swapoff -a
    • 调整虚拟内存映射(sysctl -w vm.max_map_count=262144
  2. 集群动态设置 (通过API):

    PUT /_cluster/settings
    {"persistent": {"indices.breaker.fielddata.limit": "60%"  # 字段数据熔断器}
    }
    

配置最佳实践

  1. 集群名称唯一性:避免不同集群意外加入。
  2. 绑定真实IPnetwork.host 勿用 0.0.0.0(生产环境)。
  3. JVM内存固定-Xms-Xmx 必须相同。
  4. 分离节点角色:大集群中区分 Master/Data/Ingest 节点。
  5. 定期备份配置:使用 Ansible/Puppet 等工具管理配置版本。

📌 注意:修改配置后需重启节点(部分动态设置可通过API调整)。
详细配置参考官方文档:Elasticsearch Configuration

http://www.dtcms.com/a/354026.html

相关文章:

  • SAP 怎么知道物料的自动过账流程
  • DFT、CHORD
  • “上门经济”的胜利:深度解析家政O2O如何用“用户体验”重塑传统行业
  • 【双指针- LeetCode】15.三数之和
  • CPLD和FPGA的区别
  • LeetCode 560. 和为 K 的子数组
  • Linux827 测试
  • Linux MDIO 深入分析
  • 电子电气架构 --- 软件项目复杂性的驾驭思路
  • [Sync_ai_vid] UNet模型 | 音频特征提取器(Whisper)
  • FPGA实现Aurora 64B66B图像视频传输,基于GTY高速收发器,提供2套工程源码和技术支持
  • 第三阶段数据库-10:存储过程,事务,异常,视图,自定义函数,触发器,N关键字
  • synchronized和Lock有什么区别?
  • Vue3》》基础
  • Ubuntu 20.04.6交叉编译得到Ubuntu 16.04.6的可执行文件
  • 5GNR CSI反馈 TypeI码本
  • Shader开发(十七)着色器中的纹理采样与渲染
  • OpenCV4.X库功能全解---个人笔记
  • 基于51单片机温度控制系统报警器恒温箱水温设计
  • Oh My Zsh + Tabby 终端配置指南
  • CB1-2-基础启航
  • 工业 DCS 全面科普:从入门到 AI 赋能的未来
  • 大视码垛机器人:以技术优势撬动工业码垛升级
  • 【datawhale组队学习】RAG技术 -TASK05 向量数据库实践(第三章3、4节)
  • Scala面试题及详细答案100道(21-30)-- 面向对象编程
  • 丝杆支撑座如何助力自动化设备精准定位?
  • 对接连连支付(四)-- 收款查询
  • 在Python中处理GDB、MDB和Shapefile文件转换
  • 滥用Mybatis一级缓存引发OOM问题
  • 如何使用asyncio库