RabbitMQ集群报Erlang distribution failed错误 求cookie不匹配解决方法
RabbitMQ集群Erlang distribution failed错误解决方案
从诊断结果可知,节点间4369(epmd服务端口)、25672(节点通信端口)TCP连接正常,可排除基础网络连通、防火墙拦截问题,优先处理最高概率的Erlang Cookie不匹配问题,操作步骤如下:
同步所有节点Erlang Cookie
- 先停止3台服务器上的所有RabbitMQ服务,执行命令:
systemctl stop rabbitmq-server - 任选1台节点作为基准节点,找到其Erlang Cookie文件,默认存储路径为
/var/lib/rabbitmq/.erlang.cookie,若找不到可执行find / -name ".erlang.cookie"确认实际路径 - 将基准节点的
.erlang.cookie文件复制到另外2台节点的相同路径下,直接覆盖原有文件 - 所有节点执行以下命令修改Cookie文件权限,注意:权限配置错误会直接导致RabbitMQ服务启动失败:
chmod 400 /var/lib/rabbitmq/.erlang.cookie chown rabbitmq:rabbitmq /var/lib/rabbitmq/.erlang.cookie - 依次启动所有节点的RabbitMQ服务:
systemctl start rabbitmq-server,确认单节点运行正常后重新尝试集群组建操作
其他异常场景排查
如果同步Cookie后问题仍然存在,按以下顺序排查:
- 主机名一致性校验:在所有节点的
/etc/hosts文件中配置另外2台节点的IP与主机名映射,确保节点间可以通过主机名互相访问;如果使用长节点名,所有CLI操作命令都需要添加--longnames参数 - TLS配置校验:如果开启了节点间TLS加密通信,确认所有节点的证书、密钥配置完全一致,CLI工具执行命令时也要同步配置TLS相关参数
- 服务状态校验:确认所有节点的RabbitMQ服务处于运行状态,可执行
systemctl status rabbitmq-server查看运行状态,异常的话查看对应服务日志排查启动失败原因
内容的提问来源于stack exchange,提问作者Ejaz
相关产品推荐
相关产品推荐

