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

Elasticsearch双节点集群配置后仅显示单节点,如何解决?

Elasticsearch集群仅显示单个节点的排查与解决方法

一、修正核心配置参数

你的两台节点配置中,cluster.initial_master_nodes参数存在关键问题:

  • node-2的该参数仅配置了["node-1"],但两台节点都设置了node.master: true,具备主节点候选资格,集群首次启动时,该参数必须包含所有主节点候选的节点名称。

修改node-1和node-2的elasticsearch.yml中该参数:

cluster.initial_master_nodes: ["node-1", "node-2"]

该参数用于集群首次启动时确定初始主节点候选池,仅配置单个节点会导致其他主节点候选无法被集群识别,进而无法加入。

二、检查网络连通性

Elasticsearch节点通过9300端口进行集群内部通信,需确保端口互通:

  • 在node-1执行命令测试与node-2的连通性:
    nc -zv 192.168.72.130 9300
    # 或使用telnet
    telnet 192.168.72.130 9300
    
  • 在node-2执行反向测试:
    nc -zv 192.168.72.129 9300
    
  • 检查服务器防火墙/安全组,确保9300端口允许两台节点互相访问:
    • firewalld环境:firewall-cmd --add-port=9300/tcp --permanent && firewall-cmd --reload
    • iptables环境:添加对应规则开放9300端口

三、验证节点名称与主机名解析

Elasticsearch依赖节点名称进行集群内通信,需确保节点名称可被正确解析:

  • 确认两台服务器的主机名分别为node-1和node-2,执行hostname命令查看。
  • 若主机名不匹配,在两台服务器的/etc/hosts文件中添加映射:
    192.168.72.129 node-1
    192.168.72.130 node-2
    

四、查看日志定位具体问题

查看node-2的Elasticsearch日志(默认路径为/var/log/elasticsearch/cluster-es.log),搜索discovery、master、join等关键词,获取节点无法加入的具体错误信息,比如:

  • 数据目录权限不足
  • 集群名称配置冲突
  • 网络端口未开放导致的连接超时

五、调整网关恢复参数(可选)

当前配置中gateway.recover_after_nodes: 2,意味着集群需等待至少2个节点启动才会恢复数据。若node-2迟迟无法加入,node-1会一直处于等待状态。可临时将该值改为1,待集群稳定后再改回2:

gateway.recover_after_nodes: 1

修改配置后,重启两台节点的Elasticsearch服务,再执行curl http://192.168.72.129:9200/_cat/nodes查看节点列表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 23:55:18