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

Elasticsearch新节点无法连接集群,求解决方案

问题根源与解决步骤

你的问题核心是主节点启用了Transport层SSL加密,但新节点完全未配置对应SSL参数,导致节点间SSL握手失败,无法加入集群。主节点日志里的javax.net.ssl.SSLHandshakeException: No available authentication scheme直接指向了这个问题。

第一步:同步主节点SSL证书到新节点

主节点开启xpack.security.transport.ssl.enabled: true后,集群内所有节点必须使用相同的SSL证书才能建立通信:

  • 从主节点的Elasticsearch证书目录(默认是/etc/elasticsearch/certs/)复制所有证书文件(比如elastic-certificates.p12)到新节点的相同目录
  • 确保新节点上elasticsearch用户对证书目录和文件有读取权限:
    chown -R elasticsearch:elasticsearch /etc/elasticsearch/certs/
    chmod -R 600 /etc/elasticsearch/certs/
    

第二步:修改新节点的elasticsearch.yml配置

更新新节点配置,添加Transport SSL参数并修正节点发现地址:

cluster.name: my-cluster
node.name: another-node
node.data: true
node.master: false
path.data: /var/lib/elasticsearch
path.logs: /var/log/elasticsearch
network.host: ip_of_server
# 修正节点发现地址,仅保留主节点IP,移除127.0.0.1(新节点与主节点不在同一机器)
discover.seed_hosts: ["ip_address_server_1"]
# 启用X-Pack安全并配置Transport SSL,与主节点保持一致
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate 
xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12
# 若主节点设置了证书密码,需添加以下两行(替换为实际密码)
# xpack.security.transport.ssl.keystore.password: "your-cert-password"
# xpack.security.transport.ssl.truststore.password: "your-cert-password"

第三步:验证配置并重启节点

  • 先在新节点上检查配置文件语法是否合法:
    /usr/share/elasticsearch/bin/elasticsearch --configtest
    
  • 语法无误后,重启新节点的Elasticsearch服务:
    systemctl restart elasticsearch
    

第四步:检查集群状态

等待几分钟后,在主节点执行命令查看新节点是否成功加入:

curl -k -u elastic:your-admin-password https://ip_address_server_1:9200/_cat/nodes?v

(-k参数用于跳过自签SSL证书的验证,若使用可信证书可移除)

若新节点成功加入,集群状态会逐步从yellow转为green(需等待分片同步完成)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 06:39:18