使用Ansible配置MongoDB副本集遇MongoNetworkError连接拒绝问题求助
解决MongoNetworkError: connect ECONNREFUSED 3.142.150.62:28041的排查步骤
1. 先确认端口连通性
- 在Ansible控制节点执行
nc -zv 3.142.150.62 28041或telnet 3.142.150.62 28041,测试端口是否能正常访问。如果不通:- 检查目标服务器防火墙(firewalld/iptables)是否开放28041端口,比如firewalld环境可执行
firewall-cmd --add-port=28041/tcp --permanent && firewall-cmd --reload开放端口。 - 排查云服务商的安全组规则,确保允许控制节点IP访问28041端口。
- 检查目标服务器防火墙(firewalld/iptables)是否开放28041端口,比如firewalld环境可执行
2. 验证MongoDB监听配置
- 登录主服务器,打开MongoDB配置文件(通常为
/etc/mongod.conf):- 确认
net.bindIp设置为0.0.0.0(允许所有IP访问)或明确包含3.142.150.62,避免仅绑定127.0.0.1导致外部无法访问。 - 检查
net.port是否为28041,确保和Playbook中使用的端口一致。
- 确认
- 修改配置后重启MongoDB服务:
systemctl restart mongod
3. 检查MongoDB服务状态
- 在主服务器执行
systemctl status mongod,确认服务处于active (running)状态。如果服务未启动:- 启动服务:
systemctl start mongod,并设置开机自启:systemctl enable mongod。 - 查看MongoDB日志(默认路径
/var/log/mongodb/mongod.log),排查启动失败原因,比如配置语法错误、文件权限不足(如mongod用户无法读写数据目录)。
- 启动服务:
4. 核对Playbook连接参数
- 检查Playbook中MongoDB相关模块(如
community.mongodb.mongodb_replica_set)的host、port参数,确保和目标服务器的MongoDB配置完全匹配。 - 如果启用了MongoDB认证,确认Playbook中配置的用户名、密码正确,且该用户拥有
clusterAdmin或足够的副本集配置权限。
5. 排查网络路由问题
- 确认Ansible控制节点和主服务器之间的网络路由正常,没有中间设备(如路由器、代理)阻断流量。
- 检查主服务器的
/etc/hosts文件,确保没有错误的IP映射导致连接异常。
内容的提问来源于stack exchange,提问作者Devops student
相关产品推荐
相关产品推荐

