我正在尝试从一个 Cass 3 容器运行nodetool
状态命令到另一个容器。我已经读过没有身份验证就可以做到这一点,但是尽管我已经发现我已经找不到任何建议的步骤,但我无法让它工作。我得到:
ConnectException: 'Connection refused (Connection refused)'
或
SecurityException: 'Authentication failed! Credentials required
要明确它确实可以使用密码文件,因此这不是连接问题。
我的理解是这些是相关的设置:
LOCAL_JMX=no
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=false
我已经评论了这两个:
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file=/etc/cassandra/jmxremote.password"
JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.access.file=/etc/cassandra/jmxremote.access"
是否有人能够就我缺少的内容提供任何建议或确认他们是否设法做到了这一点?
由于
答案 0 :(得分:0)
事实证明,问题不在于配置,而是因为我将它作为params传递给docker run。原始问题中列出的参数似乎没有一致地覆盖图像中配置文件中定义的参数。答案是使用以下内容扩展docker文件:
RUN sed -i s/'jmxremote.authenticate=true'/'jmxremote.authenticate=false'/g /etc/cassandra/cassandra-env.sh
RUN sed -i s/'LOCAL_JMX=yes'/'LOCAL_JMX=no'/g /etc/cassandra/cassandra-env.sh
RUN sed -i s/'JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file'/'#JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.password.file'/g /etc/cassandra/cassandra-env.sh
RUN sed -i s/'JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.access.file'/'#JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.access.file'/g /etc/cassandra/cassandra-env.sh