RabbitMQ集群加入异版本节点提示Node statistics not available如何解决
RabbitMQ跨版本集群节点统计信息不可用解决方案
问题现象
node1、node2运行RabbitMQ 3.8.2+Erlang 22.2,node3运行RabbitMQ 3.9.8+Erlang 24.1,node3可正常加入集群,但管理界面提示Node statistics not available,集群状态查询显示三个节点均正常在线,对应截图如下:

根因说明
该问题是同一集群内RabbitMQ、Erlang版本不匹配导致的:RabbitMQ官方明确要求同一集群所有节点的RabbitMQ主版本、Erlang大版本必须完全一致,不同版本之间的management插件统计数据采集协议不兼容,会出现节点可正常通信加入集群、但统计数据无法同步展示的问题。
注意:跨版本集群属于官方不支持的部署方式,长期运行还可能出现数据同步失败、节点异常掉线等严重问题,必须尽快修正
解决步骤
- 选择版本统一方案,二选一即可:
- 方案1:将node3降级到和node1、node2一致的版本
- 执行
rabbitmqctl stop_app、rabbitmqctl reset停止node3的RabbitMQ服务并重置节点 - 卸载现有RabbitMQ 3.9.8、Erlang 24.1安装包
- 安装RabbitMQ 3.8.2、Erlang 22.2,确保和另外两个节点版本完全一致
- 重新将node3加入集群即可
- 执行
- 方案2:将node1、node2升级到和node3一致的版本
- 先暂停集群业务,执行
rabbitmqctl export_definitions导出所有配置、队列、用户数据备份 - 依次停止node1、node2的RabbitMQ服务,卸载低版本RabbitMQ、Erlang安装包
- 安装RabbitMQ 3.9.8、Erlang 24.1,恢复之前备份的数据
- 重启所有节点,验证集群状态正常即可
- 先暂停集群业务,执行
- 版本统一后执行如下操作验证:
- 所有节点执行
rabbitmqctl status,确认RabbitMQ和Erlang版本完全一致 - 所有节点执行
rabbitmq-plugins list,确认rabbitmq_management、rabbitmq_management_agent插件均处于启用状态 - 执行
rabbitmqctl cluster_status确认所有节点正常运行后,访问管理界面即可看到所有节点的统计信息
内容的提问来源于stack exchange,提问作者Raja Madhu
相关产品推荐
相关产品推荐

