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

AWS EC2搭建Elasticsearch多节点集群遇master_not_discovered_exception故障

问题:AWS EC2上Elasticsearch多节点集群健康检查失败及节点访问控制确认

场景与问题

  • 基于AWS EC2搭建3节点Elasticsearch集群:1台master节点,2台data节点
  • 初始状态下,master和data节点的公网IP均可被外部访问。为限制访问范围,修改data节点安全组入站规则,仅允许master节点的公网IP访问9200-9300端口
  • 修改后异常:访问master公网IP:9200可正常响应,但访问master公网IP:9200/_cluster/health时返回如下错误:
{
  "error": {
    "root_cause": [
      {
        "type": "master_not_discovered_exception",
        "reason": null
      }
    ],
    "type": "master_not_discovered_exception",
    "reason": null
  },
  "status": 503
}

各节点配置

Data节点2(node-2)

cluster.name: Cluster-Presentation 
node.name: node-2 
network.host: 172.31.34.104 
discovery.seed_hosts:["172.31.34.104","172.31.40.191","172.31.38.85"] 
cluster.initial_master_nodes: ["172.31.38.85"] 
xpack.security.enabled: false

Data节点1(node-3)

cluster.name: Cluster-Presentation 
node.name: node-3 
network.host: 172.31.40.191 
discovery.seed_hosts: ["172.31.34.104","172.31.40.191","172.31.38.85"] 
cluster.initial_master_nodes: ["172.31.38.85"] 
xpack.security.enabled: false 

Master节点(node-1)

cluster.name: Cluster-Presentation 
node.name: node-1 
network.host: 172.31.38.85 
discovery.seed_hosts: ["172.31.34.104","172.31.40.191","172.31.38.85"] 
cluster.initial_master_nodes: ["172.31.38.85"] 
xpack.security.enabled: false

需求

  1. 修复master_not_discovered_exception错误,恢复集群健康检查正常
  2. 确认data节点是否应仅允许master节点访问,禁止外部直接访问

分析与解决方案

1. 错误原因

你修改data节点安全组时,将允许访问的来源设为master节点的公网IP,但Elasticsearch集群内部节点通信是通过私有IP进行的。data节点现在拒绝了master节点用私有IP发起的9300端口(节点间通信专用端口)请求,导致master无法发现data节点,集群节点失联,触发master_not_discovered_exception。

2. 修复步骤

  • 调整data节点安全组入站规则:将允许访问9200-9300端口的来源改为master节点的私有IP(172.31.38.85),而非公网IP
  • 同时确保所有节点的安全组都允许集群内其他节点的私有IP访问9300端口(节点间通信必须依赖该端口)
  • 重启所有Elasticsearch节点,等待集群重新完成节点发现与连接

3. Data节点访问控制确认

是的,data节点确实不应直接暴露给外部访问:

  • 外部请求应统一通过master节点(或专门的client节点)转发到data节点
  • 限制data节点的访问源为集群内节点的私有IP,可有效降低攻击面,避免外部直接操作数据节点
  • 如果需要对外提供服务,建议在master节点前配置负载均衡,或将master节点配置为兼具client角色,作为对外访问入口

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.17 04:05:17