0

我有托管 Tomcat 应用程序的 EC2 实例。它内部安装了JVM。

我正在尝试从我的工作站监控 VisualGC。在所有这些应用程序实例中,我们都能够在可视化 vm 工具中建立 JMX 连接,但对于插件 - Visual gc,对于所有实例,它都显示“此 JVM 不支持”

  • 我们可以通过添加 JMX 连接来连接到实例
  • 当我尝试添加 jstatd 连接时,它显示“此 JVM 不支持”。

我还按照 Internet 中其他其他解决方案的建议创建了一个策略文件 - 'jstatd.all.policy' 并尝试像下面那样启动 jstatd。使用的命令 - ./jstatd -J-Djava.security.policy=jstatd.all.policy

我确定当时 jstatd 正在实例中运行,并且我们能够在命令行中获取实例中的统计信息,但是我们无法在工具、实例和可视 gc 插件中显示这些统计信息视觉 vm 工具没有相互连接。有趣的是,我们可以看到其他监控图。

有什么理由让我无法查看它?

我也已经尝试过这个命令,就是这样 -sudo ./jstatd -J-Djava.security.policy=/tmp/jstatd.all.policy -J-Djava.rmi.server.hostname=<host ip> -J-Djava.rmi.server.logCalls=true & 但它并没有解决问题

4

1 回答 1

0

希望您的安全策略文件 (tools.policy) 缺少tools.jar的权限

grant codebase “file:/usr/lib/jvm/java-8-openjdk-amd64/lib/tools.jar” {
 permission java.security.AllPermission;
};

一旦添加了上述权限运行 jstatd,

sudo jstatd -J-Djava.security.policy=/tmp/tools.policy -J-Djava.rmi.server.hostname=10.101.32.110 -p 7198

根据您的环境替换 JDK 文件夹、主机名和端口。

于 2021-11-01T14:08:43.350 回答