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
相关产品推荐
相关产品推荐

