JMX 获取MBean信息

我们都知道JDK里边自带的 jmap 命令可以获取到 JVM 的内存信息。为了实时监控 JVM 的状态,需要在一定的周期内持续获取数据。

通过搜索,知道了 JMX(Java Management Extensions)

JMX下载地址

jmx_example.zip下载地址

  • 解压 jmx_example.zip:

      unzip jmx_examples.zip
    
  • 编译com/example下的java程序:

      javac com/example/*.java
    
  • 运行Main:

      java -Dcom.sun.management.jmxremote.port=9999 \
      -Dcom.sun.management.jmxremote.authenticate=false \
      -Dcom.sun.management.jmxremote.ssl=false \
      com/example/Main
    

    注:-Dcom.sun.management.jmxremote.port 是为了指定需要远程监控时获取数据的端口。

    -Dcom.sun.management.jmxremote.authenticate=false 是指定是否需要验证。

    -Dcom.sun.management.jmxremote.ssl=false 通过SSL方式访问。

  • 在远程终端通过 JDK 自带的 jconsole 查看:

      jconsole
    

    然后就可以看到如图所示的界面:

    JMX 获取MBean信息_第1张图片
    在远程地址中输入IP:port后,点击连接就可以看到如下界面:

  • 通过 jmx client 方式获取 MBEAN ,例如获取Threading BEAN 下的DaemonThreadCount:

      java -jar jmxclient.jar - localhost:9999 java.lang:type=Threading DaemonThreadCount
    

你可能感兴趣的:(Java)