无法连接到 Jconsole - cassandra k8 集群

Posted

技术标签:

【中文标题】无法连接到 Jconsole - cassandra k8 集群【英文标题】:Unable to Connect to Jconsole - cassandra k8 cluster 【发布时间】:2021-11-14 17:00:37 【问题描述】:

cassandra-env.sh

JMX_PORT=7199

如果 [ "$LOCAL_JMX" = "是" ];然后 JVM_OPTS="$JVM_OPTS -Dcassandra.jmx.local.port=$JMX_PORT" JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=false" 否则 JVM_OPTS="$JVM_OPTS -Dcassandra.jmx.remote.port=$JMX_PORT" JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.rmi.port=$JMX_PORT" JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=false" #JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl=true" #JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl.need.client.auth=true" #JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl.enabled.protocols=" #JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.ssl.enabled.cipher.suites=" #JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStore=/path/to/keystore" #JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.keyStorePassword="#JVM_OPTS="$JVM_OPTS -Djavax.net.ssl .trustStore=/path/to/truststore" #JVM_OPTS="$JVM_OPTS -Djavax.net.ssl.trustStorePassword="fi

还有

    将 $JMX_PORT 设置为 no 作为环境变量 JVM_OPTS="$JVM_OPTS -Djava.rmi.server.hostname=x.x.x.x"(主机名设置为nodeport ip)

我正在尝试使用 nodeportIp:port 连接到 jconsole 远程端口。 谁能帮我解决这个问题?

【问题讨论】:

【参考方案1】:

根据设计,Cassandra pod 不能通过 Kubernetes 集群外部的 JMX 访问。为此,Cassandra 容器安装了一个管理 API,作为 sidecar 服务层,用于管理任务,例如停止/启动节点、健康检查和运行nodetool 命令。

有关 Apache Cassandra 管理 API 的详细信息,请参阅https://github.com/k8ssandra/management-api-for-apache-cassandra。

您将无法直接配置cassandra-env.sh,因为 cass-operator 将覆盖它。有关K8ssandra.io 安全性和JMX 配置的详细信息,请参阅https://docs.k8ssandra.io/tasks/secure/。干杯!

【讨论】:

以上是关于无法连接到 Jconsole - cassandra k8 集群的主要内容,如果未能解决你的问题,请参考以下文章

JConsole 远程连接到 JBoss EAP

使用 JConsole 等连接到冻结的 jvm

如何使用 jconsole 远程连接到 Resin 4

不能使用jconsole连接到JBoss eap7.1

如何使用 JMX 连接到 localhost jvm 上的 java 程序?

JConsole的设置及远程连接