如何配置cassandra来侦听真实IP地址上的jmx端口,而不是0.0.0.0?

时间:2012-07-29 09:52:43

标签: cassandra

我想让cassandra在外部ip上使用jmx而不是默认情况下使用的0.0.0.0。 我在cassandra-env中添加了标志,但它仍然在0.0.0.0接口上启动

JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.host=172.16.40.60" 

我还应该做些什么?

2 个答案:

答案 0 :(得分:6)

添加:

JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=172.16.40.60"

此行来自cassandra-env.sh中的apache/cassandra,请参阅此处:cassandra-env.sh#L204

答案 1 :(得分:2)

目前你无法在cassandra中配置jmx来只监听一个接口。这是因为在一般的Java应用程序中很难做到这一点。如果您出于安全原因尝试执行此操作,则解决方案通常是阻止除localhost之外的所有接口的jmx端口,然后使用隧道从本地节点访问jmx。

有关向cassandra添加此功能的讨论,请参阅:

https://issues.apache.org/jira/browse/CASSANDRA-2967

潜在的解决方法:

https://blogs.oracle.com/jmxetc/entry/jmx_connecting_through_firewalls_using