关于Jconsole连接遇到问题,有个官方的fap:http://docs.oracle.com/javase/1.5.0/docs/guide/management/faq.html
fap提及了linux、windows作为客户、服务端的各种情况。
我的情况是,被管理的程序和JConsole分别运行在两台linux机器上。我想通过地址、端口远程链接,但无需验证。
1. 被监控的程序启动时设置如下虚拟机参数: (其他参数参考文档:http://docs.oracle.com/javase/6/docs/technotes/guides/management/agent.html#gdevf)
-Dcom.sun.management.jmxremote.ssl=false 这项默认是true的。
-Dcom.sun.management.jmxremote.port=8989
-Dcom.sun.management.jmxremote.authenticate=false
2. hostname -i 命令看,如果是127.0.0.1 ,就需要改一下host配置配置成远程地址,否则从远程可能无法链接。
3. 需要配置防火墙打开参数中指定的端口:
sudo iptables -I INPUT -s 172.17.17.98 -p tcp --destination-port 8989 -j ACCEPT
172.17.17.98为运行jconsole的另一台linux机器。8989是虚拟机启动时指定的jmxremote的端口。
4. 现在在另一台机器上,运行jconsole,选择Remote Process,输入ip和端口 就可以链接了。

本文详细介绍如何使用JConsole进行远程监控。主要内容包括:禁用SSL验证、设置JMX远程端口、关闭认证、配置主机名及开放防火墙端口等步骤。确保可以从一台Linux机器远程监控另一台Linux机器上的Java应用程序。
3068

被折叠的 条评论
为什么被折叠?



