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

Azure同虚拟网络下MongooseIM 6.0.0集群配置:修改节点名并加入集群

解决MongooseIM集群节点名修改及集群加入问题

一、修正节点名配置(vm.args)

你的核心问题是节点名使用了localhost,导致集群内节点无法互相识别。按以下步骤修改两台VM的配置:

1. 确认VM的内网标识

Azure同虚拟网络内的两台VM,可使用内网IP或内网主机名(确保内网DNS可解析)。假设:

  • 节点1:内网IP 10.0.0.10,主机名 mongoose-node-1
  • 节点2:内网IP 10.0.0.11,主机名 mongoose-node-2

2. 编辑vm.args文件

修改两台VM的/etc/mongooseim/vm.args:

  • 节点1:将-sname mongooseim@localhost替换为
    # 用主机名(需内网DNS解析)
    -sname mongooseim@mongoose-node-1
    # 或用内网IP(无需DNS)
    -name mongooseim@10.0.0.10
    
  • 节点2:同理替换为
    -sname mongooseim@mongoose-node-2
    # 或
    -name mongooseim@10.0.0.11
    

注意:集群内所有节点必须统一使用-sname(短主机名)或-name(FQDN/IP),不能混合使用两种模式。

3. 确保Cookie一致

两台节点的-setcookie值已统一为ejabberd,无需修改,保持一致即可。

4. 重启服务生效

修改后重启MongooseIM服务:

sudo systemctl restart mongooseim

验证节点名是否正确:

mongooseimctl status

输出应显示正确的节点名(如mongooseim@mongoose-node-1)。

二、将节点加入集群

假设节点1已正常启动,在节点2上执行以下操作:

1. 停止节点2的服务(若已启动)

sudo systemctl stop mongooseim

2. 执行集群加入命令

# 用节点1的主机名
mongooseimctl join_cluster mongooseim@mongoose-node-1
# 或用节点1的内网IP
mongooseimctl join_cluster mongooseim@10.0.0.10

3. 启动节点2的服务

sudo systemctl start mongooseim

4. 验证集群状态

在任意节点执行:

mongooseimctl cluster_status

输出应显示两台节点均在集群列表中。

常见排查点

  • 节点名未生效:用ps aux | grep beam查看Erlang进程启动参数,确认节点名是否正确;检查是否有其他配置文件覆盖vm.args设置。
  • 集群加入失败:确认两台VM内网可互相ping通,安全组已开放Erlang分布式端口(默认4369,及动态端口范围,也可在vm.args中指定固定端口)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 15:53:19