通过jstatd查看MBean

Ste*_*ker 3 java jmx visualvm jstatd

我试图通过jstatd监视服务器上运行的所有Java进程.我已经设置足够的,我可以连接VisualVM并查看所有正在运行的进程.大多数显示器工作正常,但某些事情(尤其是CPU使用率和MBean)不会显示.相反,它说:

MBeans浏览器

数据不可用,因为无法建立与JMX代理的JMX连接.

我认为问题是应用程序必须通过jstatdRMI注册表而不是本地注册表"宣布" ,所以我尝试了以下(根据这些建议),但它仍然不会显示.我尝试的代码如下:

public class JmxRmiConnectorTest {
    public static void main(String[] args) throws Exception {
        Registry rmiRegistry = LocateRegistry.createRegistry(9994);
        String svc =
            "service:jmx:rmi://localhost:9994/jndi/rmi://localhost:1099/connector";

        MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer();

        JMXServiceURL url = new JMXServiceURL(svc);
        RMIConnectorServer rmiServer = new RMIConnectorServer(url, null, mbeanServer);
        rmiServer.start();

        Thread.sleep(100000);

        rmiServer.stop();
    }
}
Run Code Online (Sandbox Code Playgroud)

当通过jstatd查看时,如何让我的MBean和CPU使用率显示在VisualVM中?

Tom*_*rka 9

jstatd与JMX无关.Jstatd是代理Jvmstat.要获得MBean和CPU使用率,您还需要启用JMX.有关更多详细信息,请参阅JMX远程监视和管理.一旦启用了JMX,VisualVM将自动检测(通过jvmstat)它也可以使用JMX,它将在一个地方显示来自jvmstat和JMX的数据.