Jconsole支持对本地和远程Java进程的监控。

1.     监控本地Java进程

对于本地的Java进程很简单,只需要在启动需要监控的Java程序后,启动Jconsole,在本地进程列表中选择该进程点击“连接”按钮即可。例如,我们先启动JDK自带的另一个监控工具JVisualVM,然后启动JConsoleJconsole监控本地及远程Java进程-LMLPHP

JConsole的本地进程列表中可以看到JVisualVM进程,选择并连接之。
Jconsole监控本地及远程Java进程-LMLPHP

2.    监控远程Java进程

2.1  设置远程监控相关选项

对于远程Java进程的连接,会要麻烦些,首先需要在需监控的远程Java程序启动脚本中加入与JVM远程监控相关的选项:
1)     开启JVM远程监控
       
-Dcom.sun.management.jmxremote=true

2)     监控的IP地址
        
-Djava.rmi.server.hostname=192.168.91.166,远程进程所在主机的IP

3)     监控的端口
       
-Dcom.sun.management.jmxremote.port=50013,这个端口值可以任意设置,但在之后用Jconsole连接这个远程进程的时候,远程进程中的port一定要和此处的设置一致,并且一定不要和远程进程的服务端口区分开。

4)     是否禁用ssl验证
       
-Dcom.sun.management.jmxremote.sslfalse为禁用,true为启用。

5)     是否需要用户密码验证
       
-Dcom.sun.management.jmxremote.authenticatefalse为不需要验证,true为需要验证。但我在Win7(32位、64)tomcat5.5.23下试着将该选项设置为truetomcat无法启动,命令行窗口一闪而过。

        
有试过象参考文献中所说的,修改jdk\jrejre下的jmxremote.passwordjmxremote.access,又有尝试象参考文献4中所说的,修改jdk\jrejre下结果也是一样的。结果也是一样的management.properties,结果均一样的。
       
        
有哪位遇到过,并解决了这个问题,如果看到这儿的,希望可以帮忙解答一下,先谢过了!!


2.2  连接远程Java进程

有两种连接远程Java进程的方法,效果是一样的。


1)     命令行中连接远程Java进程
        直接在命令行中启动JConsole的时候,带远程进程参数:Jconsole监控本地及远程Java进程-LMLPHP
 

2)     JConsole图形界面上连接远程Java进程

先在命令行中不带远程进程参数启动JConsole,然后在JConsole新建连接对话框中选择远程进程,填入远程进程参数:,最后点击“连接”按钮。
Jconsole监控本地及远程Java进程-LMLPHP


参考文献

1.   http://space.itpub.net/23071790/viewspace-701205

2.   http://docs.oracle.com/javase/1.5.0/docs/guide/management/jconsole.html

3.    http://blog.csdn.net/lijiecong/article/details/6882267

4.    http://www.iteye.com/problems/34420


 
09-18 23:32