【发布时间】:2011-06-19 10:27:03
【问题描述】:
我正在尝试使用 jstatd 使用 jps 查询远程 JVM,以便最终使用 VisualVM 对其进行监控。
我让 jstatd 使用以下安全策略运行:
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
jstatd 在 64 位 Linux 机器上运行,带有 1.6.0_10 版本的 HotSpot 虚拟机。 jstatd 命令是:
jstatd -J-Djava.security.policy=jstatd.tools.policy -J-Djava.rmi.server.logCalls=true
我正在尝试从 Windows 7 机器运行 jps。由于防火墙限制,我通过 SSH 隧道将 RMI 数据传输到我的 Windows 机器,这样 jps 命令行是:
.\jps.exe -m -l rmi://localhost
当我运行 jps 时,我在 jstatd 日志中看到连接尝试,如下所示:
Feb 1, 2011 11:50:34 AM sun.rmi.server.UnicastServerRef logCall
FINER: RMI TCP Connection(3)-127.0.0.1: [127.0.0.1: sun.rmi.registry.RegistryImpl[0:0:0, 0]: java.rmi.Remote lookup(ja va.lang.String)]
但在 jps 方面我收到以下错误:
Error communicating with remote host: Connection refused to host: 192.168.1.137; nested exception is:
java.net.ConnectException: Connection refused: connect
根据 jstatd 日志中列出的连接尝试,我认为 jps 实际上正在到达主机,但由于某种原因被阻止。是否有一些我已经设置的安全策略或其他一些我可以更改的设置,以便我可以让 jps 从远程 jstatd 中提取统计信息?
【问题讨论】:
-
可能是我没有在我要监控的应用程序中设置 jmxremote 属性,如下所述:stackoverflow.com/questions/726643/…
标签: java monitoring