我使用他们的图像在Azure上设置了DataStax Cassandra Sandbox。我能够在服务器上本地运行OpsCenter而没有任何问题。安装是Ubuntu,我很新。
根据这篇文章Apache Cassandra remote access,我应该能够将我的rpc_address设置为0.0.0.0以允许远程访问我的数据库。但是它说在尝试从我本地Windows 8 PC上的DevCenter进行连接时无法连接。
以下是我的设置:
联系人主机地址是Azure中为我的VM显示的虚拟IP地址。该端口与cassandra.yaml配置文件中显示的端口相同。 我没有配置任何授权,根据我的阅读,我应该只能使用.NET或管理工具进行连接,但都不能正常工作。
我还检查了端口是否打开,据我所知:
我知道它可能是9160或9042。
答案 0 :(得分:5)
感谢所有帮助我解决这个问题的人。最终的问题是,在设置Azure VM时,分配的虚拟IP用于云服务本身而不是虚拟机。因此,即使看起来正确的端口暴露,您也无法从外部计算机访问它们。
更多info about it here (但请先阅读下面的说明,因为这在Azure管理控制台中更容易实现)。
在设置虚拟机时,您会注意到Azure会自动为您的SSH连接创建端点,例如55xxx。您将无法连接到配置的端口22,如框本身所示,而是必须使用55xxx的端点端口等。
这一点很重要,因为Cassandra端口8888(OpsCenter)和9042(本地传输)也是如此。
所以你可以:
我无法让端点首先工作,但后来让它们正常工作。这导致我设置一个公共IP地址。我使用Azure Powershell进行了艰难的操作。这很痛苦,也很多研究。 但是,花了这么多时间之后,我意识到它现在可以在预览控制台中完成。只需转到VM上的IP地址设置,然后启用“实例IP地址”选项。
然后,您应该可以使用通过浏览器完成设置后返回的IP地址远程连接到OpsCenter :(新IP地址):8888
...然后在DevCenter中使用新的IP地址和端口9042.
如果您使用端点而不是设置公共静态IP (出于安全原因而希望通过ip过滤器启用用户访问控制),那么您将需要使用新端点改为创建端口号以及您的虚拟IP地址。
其次......你需要在cassandra.yaml文件中将rpc_address设置为0.0.0.0。
答案 1 :(得分:4)
我知道它可能是9160或9042。
从连接设置屏幕截图中可以看出,DevCenter通过" Native Protocol连接到Cassandra。"这是指本地二进制协议(除非您在native_transport_port
中更改cassandra.yaml
)在端口9042上运行.Thrift通过端口9160连接,我不相信您可以配置DevCenter以连接Thrift
接下来,检查listen_address
中broadcast_address
和cassandra.yaml
的值。至少应使用您的主机名或外部IP地址定义其中一个。
设置"原生协议端口"到9042.然后尝试连接到您的外部IP地址。
修改强>:
检查您的system.log
文件并查找如下所示的行:
Starting listening for CQL clients on localhost/127.0.0.1:9042...
无论您看到哪个地址,都需要通过DevCenter或客户端连接到的地址。如果该行显示127.0.0.1,您可以继续工作。
此外,以下是我过去帮助过的类似问题的链接:How do I connect to local cassandra db
您是否有人必须为您的虚拟机分配公共IP?
我们(基于云)的Cassandra服务器(产品中)具有内部和外部IP地址。我明天必须仔细检查,但我们的Cassandra 2.0配置设置为listen_address
我们的外部(公共)IP和rpc_address
空白或设置为相同。
以下是一些可能有助于您配置此文档的文档:
cassandra.yaml
。