在MongoDB监控服务中使用SSL时出错

时间:2012-12-19 09:55:06

标签: ruby-on-rails ruby ruby-on-rails-3 mongodb mongoid3

我在http://mms.10gen.com/help/single/index.html#mms-requirements的帮助下编辑了代理程序安装中的settings.py文件,以便useSslForAllConnections value is True 现在,当我运行python agent.py时,我得到这样的错误

2012-12-19 15:09:37,209 ERROR Problem collecting non-blocking data from: gobingoo:27017 - exception: Traceback (most recent call last):
  File "/home/prem/mms-agent/nonBlockingStats.py", line 56, in run
    monitorConn = self.mmsAgent.getDbConnection( self.hostKey )
  File "/home/prem/mms-agent/mmsAgent.py", line 109, in getDbConnection
    return pymongo.Connection( hostDef['mongoUri'] , slave_okay=True, ssl=True )
  File "/usr/local/lib/python2.7/dist-packages/pymongo-2.4.1-py2.7-linux-x86_64.egg/pymongo/connection.py", line 180, in __init__
    max_pool_size, document_class, tz_aware, _connect, **kwargs)
  File "/usr/local/lib/python2.7/dist-packages/pymongo-2.4.1-py2.7-linux-x86_64.egg/pymongo/mongo_client.py", line 274, in __init__
    raise ConnectionFailure(str(e))
ConnectionFailure: SSL handshake failed. MongoDB may not be configured with SSL support.

这背后的原因是什么..

2 个答案:

答案 0 :(得分:1)

问题是您没有使用与MongoDB的SSL连接:http://docs.mongodb.org/manual/administration/ssl/

由于情况并非如此,并且您已在代理中将其启用,因此MMS会尝试与MongoDB群集进行SSL握手并失败。

您应该在代理设置文件中将此标志设置为false,因为您不在MongoDB群集中使用SSL连接。

您所谈论的设置是特定情况的特定子集:http://mms.10gen.com/help/single/index.html#using-ssl-with-mms一个不适用于您的情况。

答案 1 :(得分:1)

请注意,我有一个完整的集群正在运行,现在有MMS监控,一切都运行SSL,所以我可以确认它有效。但是,我将每个主机启用为单独启用SSL,而不是更改代理配置并重新启动。也就是说,方法2在这里:

http://mms.10gen.com/help/single/index.html#using-ssl-with-mms

您可能想尝试以个别设置以防万一

要先测试一下,请尝试使用mongo shell从运行代理的主机连接到该组的每个成员,并使用SSL并验证连接是否成功:

/ path / to / mongo --ssl --host --port

如果成功,您已验证代理应该能够连接,并且您的MongoDB设置正在运行。那时在Jira中提交MMS问题以进一步排除故障可能是一个好主意:

https://jira.mongodb.org/browse/MMS