java - Tomcat 6、JMX 和动态端口问题

标签 java monitoring tomcat6 jmx tomcat

在阅读并尝试了很多之后,我不得不问问是否有人能解决我的问题。

我正在尝试在防火墙后面设置一些 Tomcats (V6)。这没什么大不了的 - 但我想通过 JMX 监视它们。

我阅读了 TC 文档并遇到了 JMXRemoteLifecycleListener .我的测试 TC 安装完全按照上面链接中的说明进行设置。 因此,我无法从我们网络中的一台主机连接到另一台主机。此外,每次我启动 TC 时都会打开第三个随机端口。

在我的 server.xml 中激活了监听器

<Listener className="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"
rmiRegistryPortPlatform="8050" rmiServerPortPlatform="8060" />

catalina.out 表示一切正常。

2011-06-14 16:46:48,819 [main] INFO org.apache.catalina.mbeans.JmxRemoteLifecycleListener-
The JMX Remote Listener has configured the registry on port 8050 and the server on port 8060 for the Platform server

端口是开放的,我可以从任何其他主机通过 telnet 连接到它们。我可以使用 ( service:jmx:rmi://<hostname>:8xxx/jndi/rmi://<hostname>:8xxxx/jmxrmi ) 在本地连接到虚拟机

Netstats输出如下:

tcp6       0      0 :::8080                 :::*                    LISTEN      11291/java
tcp6       0      0 :::8050                 :::*                    LISTEN      11291/java
tcp6       0      0 :::8060                 :::*                    LISTEN      11291/java
tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      11291/java
tcp6       0      0 :::60901                :::*                    LISTEN      11291/java
tcp6       0      0 127.0.0.1:8009          :::*                    LISTEN      11291/java

Tomcat 甚至以所有足够的 VM 选项启动

CATALINA_OPTS="-Dcom.sun.management.jmxremote -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"

有没有人知道我为什么被困在这里?提前致谢!

最佳答案

答案是将 -Djava.rmi.server.hostname=xxx.xxx.xxx.xxx 放在一般的 JMX 选项中。

自动设置主机名的例子:

IP=`ifconfig eth0  | grep 'inet '| grep -v '127.0.0.1' | cut -d: -f2 | awk '{ print $1}'``;

CATALINA_OPTS="-Dcom.sun.management.jmxremote
-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
-Djava.rmi.server.hostname=$IP"

关于java - Tomcat 6、JMX 和动态端口问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6345752/

相关文章:

类似于 python 的 matplotlib 的 Java 绘图库

tomcat - Grails - 无需登录 Tomcat

从 https 切换到 http 时 session 丢失 (tomcat 6.0.26)

java - 试图获取请求参数以访问登录tomcat

java - 迭代器会对它的对象状态产生任何副作用吗?

Java - 如何删除谷歌云中的非空桶?

amazon-web-services - AWS CloudWatch 指标 RequestCount 是什么意思?

iphone - 使用 kqueue() 监视目录中的更改的最佳方法是什么?

java:有哪些库可以管理/监控进程?

java - 为什么java int允许使用|运算符(operator) ?其评价如何?