AWS EC2部署Cassandra集群运行nodetool报Connection refused如何解决
Cassandra nodetool连接拒绝问题排查方案
1. 验证Cassandra服务运行状态
- 执行命令查询服务状态:
systemctl status cassandra - 若服务未正常运行,查看启动日志定位错误:
- 系统日志:
journalctl -u cassandra -f - 应用日志:
tail -f /var/log/cassandra/system.log
常见启动失败原因包括cassandra.yaml配置语法错误、端口被占用、JVM堆内存配置超出实例可用内存
- 系统日志:
2. 核对JMX配置有效性
- 确认cassandra-env.sh中JVM_OPTS的JMX配置:
Djava.rmi.server.hostname参数值需设置为服务器内网IP,不能保留127.0.0.1,否则JMX仅允许本地回环访问- 确认
-Dcom.sun.management.jmxremote.authenticate=false配置存在,若开启了JMX认证,运行nodetool时需要额外补充用户名密码参数
- 所有配置修改完成后必须重启Cassandra服务生效:
systemctl restart cassandra
3. 检查7199端口监听状态
- 执行命令查看端口监听情况:
ss -tulnp | grep 7199- 若监听地址为127.0.0.1,说明JMX配置未生效,重新核对cassandra-env.sh配置
- 若无任何返回结果,说明Cassandra未完成启动,回到第一步排查启动日志
4. 手动指定nodetool访问地址
若JMX监听的是内网IP而非回环地址,执行nodetool时需要显式指定目标地址:
nodetool -h <服务器内网IP> flush system
5. 本地防火墙验证
即使AWS安全组已经放开端口,仍需确认Ubuntu本地ufw防火墙放行7199端口:
- 查看防火墙状态:
ufw status - 若防火墙为开启状态,执行放行命令:
ufw allow 7199
内容的提问来源于stack exchange,提问作者Jesver
相关产品推荐
相关产品推荐

