配置说明
1
配置文件位置
Elasticsearch的主要配置文件
# 主配置文件 $ES_HOME/config/elasticsearch.yml # 节点配置 $ES_HOME/config/jvm.options # JVM配置 $ES_HOME/config/log4j2.properties # 日志配置 # 系统配置(Linux) /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/jvm.options /etc/elasticsearch/log4j2.properties # 数据目录 /var/lib/elasticsearch # 日志目录 /var/log/elasticsearch
2
核心配置项
elasticsearch.yml 常用配置
# ======================== Elasticsearch Configuration ========================= # 集群名称 cluster.name: my-application # 节点名称 node.name: node-1 # 数据和日志路径 path.data: /var/lib/elasticsearch path.logs: /var/log/elasticsearch # 网络绑定 network.host: 0.0.0.0 http.port: 9200 transport.port: 9300 # 发现设置 discovery.seed_hosts: ["host1", "host2"] cluster.initial_master_nodes: ["node-1", "node-2"] # 内存锁定(防止交换) bootstrap.memory_lock: true # 安全设置 xpack.security.enabled: true xpack.security.transport.ssl.enabled: true xpack.security.transport.ssl.verification_mode: certificate xpack.security.transport.ssl.keystore.path: elastic-certificates.p12 xpack.security.transport.ssl.truststore.path: elastic-certificates.p12
3
JVM配置
jvm.options 内存和性能优化
# 堆内存设置(建议不超过物理内存的50%,且不超过32GB) -Xms4g -Xmx4g # GC配置 -XX:+UseG1GC -XX:MaxGCPauseMillis=200 # GC日志 -Xlog:gc*,gc+age=trace,safepoint:file=logs/gc.log:utctime,pid,tags:filecount=32,filesize=64m # 其他优化 -XX:+AlwaysPreTouch -XX:+DisableExplicitGC -XX:+ParallelRefProcEnabled -XX:+UseStringDeduplication
内存建议
- 开发环境:512MB - 1GB
- 测试环境:2GB - 4GB
- 生产环境:8GB - 32GB(建议)
- 不要超过物理内存的50%
- 不要超过32GB(压缩指针优化)
4
系统参数配置
Linux系统级别的优化配置
# /etc/sysctl.conf # 虚拟内存映射数量 vm.max_map_count = 262144 # /etc/security/limits.conf # 文件描述符限制 elasticsearch soft nofile 65535 elasticsearch hard nofile 65535 # 进程数限制 elasticsearch soft nproc 4096 elasticsearch hard nproc 4096 # 内存锁定 elasticsearch soft memlock unlimited elasticsearch hard memlock unlimited # 应用配置 sysctl -p ulimit -n 65535
5
常用配置项说明
| 配置项 | 说明 | 默认值 |
|---|---|---|
cluster.name |
集群名称,相同名称的节点组成集群 | elasticsearch |
node.name |
节点名称 | 主机名 |
node.roles |
节点角色 [master, data, ingest] | 所有角色 |
network.host |
绑定地址 | localhost |
http.port |
HTTP端口 | 9200 |
discovery.seed_hosts |
发现种子主机列表 | [] |
cluster.initial_master_nodes |
初始主节点列表 | [] |
path.data |
数据存储路径 | $ES_HOME/data |
path.logs |
日志存储路径 | $ES_HOME/logs |
注意事项
- 修改配置后需要重启Elasticsearch服务
- 集群配置需要所有节点保持一致
- 生产环境建议禁用动态脚本执行
- 定期检查和清理日志文件