有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用JVisualVM在Docker上监控Glassfish 4

我无法将JVisualVM连接到Docker上运行的Glassfish。我正在使用glassfish nightly image,我正在暴露端口8686。启动时,Glassfish正在记录以下内容:

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,我正在传递安全凭据,但无法连接。我错过什么了吗


共 (2) 个答案

  1. # 1 楼答案

    因此,Docker文件不公开端口8686 您需要使用publish 8686:8686 with docker run命令将该端口暴露给主机。查看docker help run以了解更多详细信息

  2. # 2 楼答案

    在同样的问题上挣扎

    将以下内容添加到服务器配置中–>;jvm设置–>;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'
    

    剩下的就和以前一样做

    当你看服务器的时候。log U会注意到JMX服务公开为:

    JMXStartupService has started JMXConnector on JMXService URL service:jmx:rmi://e15295161718:40086/jndi/rmi://e15295161718:40086/jmxrmi
    

    很可能这些配置条目将e15295161718更改为IP,JVisualVM可以连接。从主持人的角度来看,e15295161718对JVisualVM来说是垃圾