You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无ELK经验如何在RedHat Linux配置3节点Elasticsearch集群(含主节点)

3节点Elasticsearch集群配置流程(RedHat Linux)

一、前置准备

  • 3台RedHat服务器,确保节点间网络互通,可临时关闭防火墙测试,后续按需开放端口
  • 每台机器创建非root用户(Elasticsearch禁止root启动):
    adduser esuser
    passwd esuser
    usermod -aG wheel esuser
    
  • 安装Java 17(Elasticsearch 8.x推荐依赖):
    sudo yum install java-17-openjdk-devel
    java -version  # 验证安装
    

二、全节点安装Elasticsearch

  1. 导入官方GPG密钥:
    sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
    
  2. 创建YUM仓库文件:
    sudo vi /etc/yum.repos.d/elasticsearch.repo
    
    写入以下内容:
    [elasticsearch]
    name=Elasticsearch repository for 8.x packages
    baseurl=https://artifacts.elastic.co/packages/8.x/yum
    gpgcheck=1
    gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
    enabled=1
    autorefresh=1
    type=rpm-md
    
  3. 安装并设置开机自启:
    sudo yum install elasticsearch
    sudo systemctl enable elasticsearch
    

三、分节点修改elasticsearch.yml配置

假设节点IP与角色:

  • 主节点:192.168.1.10
  • 数据节点1:192.168.1.11
  • 数据节点2:192.168.1.12

1. 主节点配置

编辑/etc/elasticsearch/elasticsearch.yml,修改以下关键配置:

# 集群名称,所有节点必须一致
cluster.name: my-es-cluster
# 节点唯一名称
node.name: master-node
# 赋予主节点+数据节点角色
node.roles: [master, data]
# 绑定本机IP,或填0.0.0.0允许所有IP访问
network.host: 192.168.1.10
# HTTP端口
http.port: 9200
# 集群内部通信端口
transport.port: 9300
# 初始化主节点列表(填主节点名称)
cluster.initial_master_nodes: ["master-node"]
# 集群发现节点列表(全节点IP)
discovery.seed_hosts: ["192.168.1.10", "192.168.1.11", "192.168.1.12"]
# 可选:开启跨域(后续对接Kibana需要)
http.cors.enabled: true
http.cors.allow-origin: "*"

2. 数据节点1配置

编辑/etc/elasticsearch/elasticsearch.yml:

cluster.name: my-es-cluster
node.name: data-node-1
node.roles: [data]
network.host: 192.168.1.11
http.port: 9200
transport.port: 9300
cluster.initial_master_nodes: ["master-node"]
discovery.seed_hosts: ["192.168.1.10", "192.168.1.11", "192.168.1.12"]

3. 数据节点2配置

编辑/etc/elasticsearch/elasticsearch.yml:

cluster.name: my-es-cluster
node.name: data-node-2
node.roles: [data]
network.host: 192.168.1.12
http.port: 9200
transport.port: 9300
cluster.initial_master_nodes: ["master-node"]
discovery.seed_hosts: ["192.168.1.10", "192.168.1.11", "192.168.1.12"]

四、系统参数调整(全节点执行)

避免Elasticsearch启动报错:

  1. 修改文件描述符限制:
    sudo vi /etc/security/limits.conf
    
    添加:
    esuser soft nofile 65536
    esuser hard nofile 65536
    
  2. 调整虚拟内存:
    sudo vi /etc/sysctl.conf
    
    添加:
    vm.max_map_count=262144
    
    生效配置:
    sudo sysctl -p
    
  3. 重新登录esuser或重启服务器,让配置生效

五、启动与验证集群

  1. 先启动主节点,等待1分钟左右:
    sudo systemctl start elasticsearch
    
  2. 依次启动两个数据节点:
    sudo systemctl start elasticsearch
    
  3. 验证集群健康状态:
    curl http://192.168.1.10:9200/_cluster/health?pretty
    
    返回"status": "green"即为正常
  4. 查看节点列表:
    curl http://192.168.1.10:9200/_cat/nodes?v
    
    主节点会标注*,可见3个节点信息

注意事项

  • 所有节点cluster.name必须完全一致,否则无法加入同一集群
  • 开放防火墙端口(永久生效):
    sudo firewall-cmd --add-port=9200/tcp --permanent
    sudo firewall-cmd --add-port=9300/tcp --permanent
    sudo firewall-cmd --reload
    
  • 必须用esuser启动Elasticsearch,禁止root用户操作

内容的提问来源于stack exchange,提问作者Daddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 06:05:25