如何让JMX绑定到特定的接口?

2022-09-01 20:51:00

我目前正在使用com.sun.management.jmxremote.*属性启动我的Java VM,以便我可以通过JConsole连接到它以进行管理和监视。不幸的是,它侦听计算机上的所有接口(IP 地址)。

在我们的环境中,经常会出现一台机器上同时运行多个 Java VM 的情况。虽然可以告诉JMX监听不同的TCP端口(使用),但最好让JMX使用标准JMX端口并仅绑定到特定的IP地址(而不是所有IP地址)。com.sun.management.jmxremote.port

这将使我们更容易确定我们通过JConsole连接到哪个VM(因为每个VM实际上“拥有”自己的IP地址)。有没有人想过如何让JMX在单个IP地址或主机名上侦听?


答案 1

如果其他人会因此而失去勇气......10年后,他们终于修复了它!

由于 Java 8u102 绑定到选定的 IP-Dcom.sun.management.jmxremote.host

请参见: https://bugs.openjdk.java.net/browse/JDK-6425769


答案 2

费尔南多已经提供了我的博客文章的链接 :) ..这不是微不足道的。您必须提供自己的 RMIServerSocketFactoryImpl,以便在所需的地址上创建套接字。

如果内部/外部接口是问题所在,并且您具有本地访问权限,则设置本地防火墙可能会更容易。


推荐