0

我可以在没有安全选项的情况下使用以下 CATALINA_OPTS 将 jconsole 与 Amazon EC2 实例上的 tomcat 连接起来

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=XYZM -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.file=$CATALINA_HOME/conf/jmxremote.access -Xms150M -Xmx350M"

但是当我使用 Security 选项启动 tomcat 时,我无法从远程机器上连接 jconsole。

我从以下 oracle 链接在 catalina.policy 中为 JMX 添加了以下权限: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

4

1 回答 1

1

这对我有用 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-在亚马逊-ec2/

于 2016-09-07T14:29:32.720 回答