簡體   English   中英

Tomcat 6、JMX和動態端口問題

[英]Tomcat 6, JMX and the dynamic port problem

在閱讀並嘗試了很多之后,我不得不問是否有人可以解決我的問題。

我正在嘗試在防火牆后面設置一些 Tomcat(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 output如下:

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"

問題可能是在啟用 jmx 監控時 java 本身打開的第二個隨機端口。 從 Java 7 開始,也可以設置此端口:

-Dcom.sun.management.jmxremote.rmi.port=7091

所以結合起來 - 可以使用相同的端口:

-Dcom.sun.management.jmxremote.port=7091 -Dcom.sun.management.jmxremote.rmi.port=7091

這就是我的問題的解決方案。 一旦端口設置為固定編號,就可以在防火牆中輕松設置。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM