在 tomcat 8 运行 EC2 上使用 VisualVM
Using VisualVM on tomcat 8 running on EC2
我正在尝试在我的系统中使用 VisualVM 来监控 EC2 上的 Tomcat 实例 运行ning。我尝试了多个博客中提供的有关如何配置它的步骤,但是当我尝试 运行 tomcat 时仍然出现以下错误。
./catalina.sh: 5: /home/gvr/apache-tomcat-8.0.18/bin/setenv.sh: -Dcom.sun.management.jmxremote: not found
我在 server.xml
中添加了以下语句
<listener classname="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"
rmiregistryportplatform="10001"
rmiserverportplatform="10002"
uselocalports="true" />
而我的setenv.sh
如下
CATALINA_OPTS="-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=ec2-xx-xxx-xx-xx.ap-southeast-1.compute.amazonaws.com"
$CATALINA_OPTS
除此之外,我在 tomcat 的 lib 目录
中添加了 catalina-jmx-remote.jar
谁能给我一些提示,可能出了什么问题。我尝试了我发现的与配置 VisualVM
相关的所有内容
我 运行宁 Tomcat 8.0.18,java 8 超过 ubuntu
我认为有两个问题
- 格式化setenv.sh,你需要\来跨行分割
- 最后一行 $CATALINA_OPTS 试图执行参数,因此 -Dcom.sun.management.jmxremote 未找到...
建议的修复
CATALINA_OPTS="-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Djava.rmi.server.hostname=ec2-xx-xxx-xx-xx.ap-southeast-1.compute.amazonaws.com"
echo $CATALINA_OPTS
我也尝试过使用 JmxRemoteLifecycleListener,但它对我不起作用。
这是我的做法:
1) 我选择 1005 作为 jmx 端口,我的 setenve.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) 运行 visualvm 使用以下 uri: service:jmx:rmi:///jndi/rmi://localhost:10005/jmxrmi
如果您需要更多信息,请查看此 post:
http://ignaciosuay.com/how-to-connect-a-java-profiler-like-visualvm-or-jconsole-to-a-remote-tomcat-running-on-amazon-ec2/
我正在尝试在我的系统中使用 VisualVM 来监控 EC2 上的 Tomcat 实例 运行ning。我尝试了多个博客中提供的有关如何配置它的步骤,但是当我尝试 运行 tomcat 时仍然出现以下错误。
./catalina.sh: 5: /home/gvr/apache-tomcat-8.0.18/bin/setenv.sh: -Dcom.sun.management.jmxremote: not found
我在 server.xml
<listener classname="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"
rmiregistryportplatform="10001"
rmiserverportplatform="10002"
uselocalports="true" />
而我的setenv.sh
如下
CATALINA_OPTS="-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=ec2-xx-xxx-xx-xx.ap-southeast-1.compute.amazonaws.com"
$CATALINA_OPTS
除此之外,我在 tomcat 的 lib 目录
中添加了catalina-jmx-remote.jar
谁能给我一些提示,可能出了什么问题。我尝试了我发现的与配置 VisualVM
相关的所有内容我 运行宁 Tomcat 8.0.18,java 8 超过 ubuntu
我认为有两个问题
- 格式化setenv.sh,你需要\来跨行分割
- 最后一行 $CATALINA_OPTS 试图执行参数,因此 -Dcom.sun.management.jmxremote 未找到...
建议的修复
CATALINA_OPTS="-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.authenticate=false \
-Djava.rmi.server.hostname=ec2-xx-xxx-xx-xx.ap-southeast-1.compute.amazonaws.com"
echo $CATALINA_OPTS
我也尝试过使用 JmxRemoteLifecycleListener,但它对我不起作用。
这是我的做法: 1) 我选择 1005 作为 jmx 端口,我的 setenve.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) 运行 visualvm 使用以下 uri: service:jmx:rmi:///jndi/rmi://localhost:10005/jmxrmi
如果您需要更多信息,请查看此 post: http://ignaciosuay.com/how-to-connect-a-java-profiler-like-visualvm-or-jconsole-to-a-remote-tomcat-running-on-amazon-ec2/