![](/img/trans.png)
[英]cannot connect to jmx jar process in docker container through jconsole
[英]Cassandra docker - unable to connect through JMX
我很難通過 JMX 連接到 docker 容器內的 Cassandra。 我在 AWS 中運行(這意味着我獲得了一個 NAT 化的 IP)。 以下是我嘗試過的事情:
從 cassandra: 最新
復制 ./jmxremote.password /etc/cassandra/jmxremote.password
運行 chmod 400 /etc/cassandra/jmxremote.password
復制 ./jmxremote.password /etc/java-8-openjdk/management/jmxremote.password
docker run -P -d -e "JVM_OPTS=-Djava.rmi.server.hostname=10.0.1.12" -e "LOCAL_JMX=no" -e
這將引發以下異常:
java.rmi.ConnectException: Connection refused to host: 10.0.1.12; nested exception is:
java.net.ConnectException: Connection refused
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:619)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:130)
at javax.management.remote.rmi.RMIServerImpl_Stub.newClient(Unknown Source)
at javax.management.remote.rmi.RMIConnector.getConnection(RMIConnector.java:2432)
at javax.management.remote.rmi.RMIConnector.connect(RMIConnector.java:308)
at sun.tools.jconsole.ProxyClient.tryConnect(ProxyClient.java:368)
at sun.tools.jconsole.ProxyClient.connect(ProxyClient.java:313)
at sun.tools.jconsole.VMPanel$2.run(VMPanel.java:294)
Caused by: java.net.ConnectException: Connection refused at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:345) at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206) at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.net.Socket.connect(Socket.java:589) at java.net.Socket.connect(Socket.java:538) at java.net.Socket.<init>(Socket.java:434) at java.net.Socket.<init>(Socket.java:211) at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40) at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:148) at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613) ... 9 more
有人可以就過去幾天完全阻止我的這個問題提供指示或幫助嗎? 提前感謝您的時間和分享您的知識。
干杯,蘇多爾
我像這樣關閉了 jmx 身份驗證:
Dockerfile:
FROM cassandra
RUN sed -i 's/JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=true"/JVM_OPTS="$JVM_OPTS -Dcom.sun.management.jmxremote.authenticate=false"/g' /etc/cassandra/cassandra-env.sh
RUN sed -i '/password/d' /etc/cassandra/cassandra-env.sh
docker-compose.yml:
environment:
- LOCAL_JMX=no
- JVM_EXTRA_OPTS=-Djava.rmi.server.hostname=127.0.0.1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.