加入节点之后,原集群的dashbord 报错

环境

  • EMQX 版本: 5.7.0
  • 操作系统版本:Linux VM-ubuntu 5.15.0-106-generic #116-Ubuntu SMP Wed Apr 17 09:17:56 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

重现此问题的步骤

  1. 创建新节点

  2. 第一次配置错了docker-compose.yml 的 host

    environment:

    • “EMQX_HOST=10.0.4.36”
  3. 重新配置加入
    ./bin/emqx_ctl join node@XXX
    这条命令一直执行

同时 dashbord 报错
400 BAD_REQUEST: {badrpc,{‘emqx@10.0.4.36’,{‘emqx@10.0.4.36’,{‘EXIT’,{badarg,[{ets,lookup,[emqx_stats,‘retained.count’],[{error_info,#{cause => id,module => erl_stdlib_errors}}]},{emqx_stats,getstat,1,[{file,“emqx_stats.erl”},{line,200}]},{emqx_dashboard_monitor,non_rate_value,0,[{file,“emqx_dashboard_monitor.erl”},{line,488}]},{emqx_dashboard_monitor,current_rate,1,[{file,“emqx_dashboard_monitor.erl”},{line,131}]}]}}}}}

之后观察新启的 emqx 日志有报{noproc,{gen_server,call,[emqx_dashboard_monitor,current_rate,5000]}}

4.重新购买服务器,重新加入集群,会报一样的错。

预期行为

正确加入节点,dashbord 显示 4 个节点

实际行为

加入命令阻塞,dashbord 报错

hi

  • docker 部署,更改 EMQX_HOST 环境变量会导致 EMQX 节点名变更。

另外有两个问题

  • 10.0.4.36 是尝试加入集群的第四个节点么?这个ip 是正确的还是配错的?
    如果是配错的 ip 正确的应该是什么?
  • “访问 dashboard 报错”,访问的是当前3节点集群中的某个节点?还是新加入的节点?

hi
1 .10.0.4.36是正确的 ip,之前错误的讲EMQX_HOST配置成了 10.0.4.35,但是 10.0.4.35 并没有搭建过 emqx
2. 访问之前三个节点的集群的 dashbord

在当前的三节点集群中用这一条命令看看集群状态
emqx ctl cluster status

如果有【错误ip 10.0.4.35】,使用以下命令强制 leave 节点
emqx ctl cluster force-leave <NodeName>