Cassandra 4.0/4.1 Remote JMX无法远程连接问题求助
Cassandra 4.x远程Nodetool连接失败问题解决
问题根源
Cassandra 4.0及以上版本引入了本地JMX绑定默认配置,即使你在jvm.options中设置了-Dcom.sun.management.jmxremote.host=<IP>,默认情况下JMX服务仍会绑定到127.0.0.1——这是因为cassandra-env.sh中默认启用了LOCAL_JMX=yes,该配置会覆盖JMX的监听地址设置。而Cassandra 3.x版本没有这个默认限制,所以相同配置下3.x能正常监听指定IP。
解决方案
修改
cassandra-env.sh配置文件
找到文件中关于LOCAL_JMX的配置块,将默认的LOCAL_JMX=yes改为LOCAL_JMX=no:if [ "x$LOCAL_JMX" = "x" ]; then LOCAL_JMX=no fi或者直接在文件开头添加环境变量声明:
export LOCAL_JMX=no确认
jvm.options配置有效性
确保以下配置正确设置(替换<IP>为你的节点公网/内网IP):-Dcom.sun.management.jmxremote.port=7199 -Dcom.sun.management.jmxremote.rmi.port=7199 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.host=<IP> -Djava.rmi.server.hostname=<IP>注意:建议将
jmxremote.rmi.port与jmxremote.port设为相同值,减少端口配置复杂度。重启Cassandra服务
sudo systemctl restart cassandra重启后执行
netstat -ntlp检查,确认7199端口已监听在指定IP或0.0.0.0(所有地址):tcp 0 0 <IP>:7199 0.0.0.0:* LISTEN -验证远程连接
执行远程nodetool命令测试:nodetool -h <IP> status此时应能正常返回节点状态信息。
内容的提问来源于stack exchange,提问作者Aliasgar Choolawala
相关产品推荐
相关产品推荐

