我在设置mongo v3.2副本集/集群时遇到问题。我包含了mongod
的日志,其中包含来自a)我初始化副本集的节点和b)另一个节点(其他节点也有相同的问题)。简而言之,问题是从所有其他节点到我最初设置副本集的节点的心跳不会由于无法访问主机而继续失败,但我不确定如何进一步调试,因为从所有其他节点mongo <initial node>
工作正常,所以我认为这不是网络访问问题。经过一些google之后,我认为这是由于我在mongo配置文件中设置了bindip(或者缺少bindip),但是列出所有的节点ip似乎并没有起到作用。
请参阅此处的MongoDB配置文件和日志-
https://gist.github.com/tejasmanohar/f0e705fb0d9e96f68e05e1ab20c478be
为什么此健康检查会失败和/或如何进一步调试,或者如何在mongod
之外重新生成失败的连接(我可以ping
并通过mongo
连接到每个主机的所有对等方)?谢谢!
更新:options: { config: "/etc/mongod.conf", net: { bindIp: true }, replication: { replSet: "rs0" } }
我注意到mongod
日志显示的是bindIp: true
而不是mongo配置文件中的列表集。这有问题吗?我尝试提供逗号分隔的字符串而不是数组,因为字段的类型有点unclear in docs但结果相同。
最佳答案
所以,这个解决方案对我来说还没有100%的意义,但是我必须将bindIps
设置更改为逗号分隔的字符串,而不是数组。数组似乎在yaml中工作,但在json中不工作。仍然不明白为什么它以前是以bool的身份登录的。@安德烈斯克指出了我的解决方案的其他错误之处——我的bindIp
设置有我的对等IP,但没有自己的主机。