我能够将 jconsole 与 Amazon EC2 实例上的 tomcat 连接起来,而无需使用以下 CATALINA_OPTS 的安全选项
CATALINA_OPTS="-Dcom.sun.management.jmxremote=true -Djava.net.preferIPv4Stack=true -Dcom.sun.management.jmxremote.port=15000 -Dcom.sun.management.jmxremote.rmi.port=15001 -Djava.rmi.server.hostname=X.Y.Z.M -Dcom.sun.management .jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=true -Dcom.sun.management.jmxremote.password.file=$CATALINA_HOME/conf/jmxremote.password -Dcom.sun.management.jmxremote.access。文件=$CATALINA_HOME/conf/jmxremote.access -Xms150M -Xmx350M"
但是当我使用安全选项启动 tomcat 时,我无法从远程机器连接 jconsole。
我从下面的 oracle 链接中为 JMX 在 catalina.policy 中添加了以下权限:https://docs.oracle.com/javase/8/docs/technotes/guides/jmx/examples/Security/fine_grained/config/java.policy
如果我在 catalina.policy 中遗漏了一些关于 jmx 的权限,请帮助我,如果是,请评论。
机器上的Java版本: Java 版本“1.7.0_65”
OpenJDK 运行时环境 (IcedTea 2.5.3) (7u71-2.5.3-0ubuntu0.14.04.1) OpenJDK 64 位服务器 VM(构建 24.65-b04,混合模式)
Tomcat 版本:tomcat-6.0.36
最佳答案
这就是它对我有用的地方 1)我选择 1005 作为 jmx 端口,我的 setenv.sh 是这样的:
CATALINA_OPTS="$CATALINA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=10005 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate =false -Dcom.sun.management.jmxremote.local.only=false -Djava.rmi.server.hostname=localhost"
2) 使用 ssh 重定向 jmx 端口和 rmi
3) 使用以下 uri 运行 Jconsole:service:jmx:rmi:///jndi/rmi://localhost:10005/jmxrmi
如果您需要更多信息,请查看这篇文章: http://ignaciosuay.com/how-to-connect-a-java-profiler-like-visualvm-or-jconsole-to-a-remote-tomcat-running-on-amazon-ec2/
关于tomcat - Jconsole 无法连接到在 AWS EC2 上使用安全选项运行的 tomcat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36005175/