使用JVisualVM监控Docker上的Glassfish 4
我无法将JVisualVM连接到在Docker上运行的Glassfish。 我正在使用玻璃鱼夜间图像 ,我正在暴露端口8686.在启动Glassfish正在logging以下内容:
JMXStartupService has started JMXConnector on JMXService URL service:jmx:rmi://55bbdd404578:8686/jndi/rmi://55bbdd404578:8686/jmxrmi
我的docker主机的IP是192.168.99.100,我可以通过端口8686的telnet连接。
我使用的服务URL是service:jmx:rmi://192.168.99.100:8686/jndi/rmi://192.168.99.100:8686/jmxrmi
,我传递安全凭证,但无法连接。 我错过了什么吗?
与同样的问题挣扎。
将以下内容添加到server-config – > jvm-settings – > JVM选项
-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port='your JMX port' -Dcom.sun.management.jmxremote.local.only=false -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Djava.rmi.server.hostname='IP of you docker host'
其余的和以前一样。
当你看看server.log你会注意到JMX服务暴露为:
JMXStartupService has started JMXConnector on JMXService URL service:jmx:rmi://e15295161718:40086/jndi/rmi://e15295161718:40086/jmxrmi
并且很可能这些configuration条目将e15295161718更改为IP,并且JVisualVM可以连接。 从Ur主机的angular度来看, e15295161718对JVisualVM 来说是垃圾。
Docker文件没有公开端口8686,因此您需要使用带docker run命令的–publish 8686:8686将该端口暴露给主机。 请参阅docker帮助运行泥潭细节。