【问题标题】:jmx is not enabled to receive remote connectionsjmx 未启用接收远程连接
【发布时间】:2015-10-21 15:59:41
【问题描述】:

我不确定为什么 7199 正在监听 127.0.0.1,我怎样才能让 7199 监听 hostip 地址。

我的 cassandra-env.sh 配置如下用于 JVM

JMX_PORT="7199"

JVM_OPTS="$JVM_OPTS -Djava.net.preferIPv4Stack=true"

JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=192.68.0.45" LOCAL_JMX=否

如果 [ "$LOCAL_JMX" = "是" ];那么

JVM_OPTS="$JVM_OPTS -Dcassandra.jmx.local.port=$JMX_PORT -XX:+DisableExplicitGC"

否则 JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.port=$JMX_PORT"

JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.rmi.port=$JMX_PORT"

JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl=false"

JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"

JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"

【问题讨论】:

  • 应该有一个名为 LOCAL_JMX 的变量设置为“yes”;将其设置为“否”,重新启动服务并查看是否有效。

标签: cassandra jvm


【解决方案1】:

我也一直在解决这个问题。并不像教程中显示的那么简单。

我解决了这样的问题:

  1. 将环境变量 LOCAL_JMX 添加到我的 .bashrc 文件中:
#设置 LOCAL_JMX 导出 LOCAL_JMX=否
  1. 在 cassandra-env.sh 禁用密码验证(测试环境!!):
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=false" # JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"
  1. 重启每个节点

【讨论】:

  • 我相信混乱源于这种奇怪的 BASH 胡言乱语 "x$LOCAL_JMX" = "x" 我记得它说的是“变量尚未初始化”。很确定就是这样,因此您可以像我一样在 cassandra-env.sh 中编码 LOCAL_JMX=no 权利,它可以在没有副作用的情况下纠正问题,或者如上所示更改 .bashrc 但请注意副作用。
猜你喜欢
  • 2010-10-24
  • 1970-01-01
  • 1970-01-01
  • 2016-06-29
  • 1970-01-01
  • 1970-01-01
  • 2017-01-21
  • 2010-11-18
  • 1970-01-01
相关资源
最近更新 更多