Amazon-Ec2
JMX 連接到在 Amazon EC2 上執行的 Tomcat
CATALINA_OPTS
我在 Amazon EC2 上的伺服器上執行的 Tomcat 7 程序具有如下設置,這些設置應允許我遠端連接以進行 JMX 監控:-Dcom.sun.management.jmxremote.port=8086 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
但是,遠端連接不適用於 jconsole 或 jvisualvm。它只是超時。
我已經三重檢查了 EC2 安全組是否允許從我的 IP(並且只能從我的 IP)訪問 JMX 遠端埠。
是否缺少任何設置?
還要指定java.rmi.server.hostname選項,以便它指向您的 EC2 伺服器的公共 DNS 名稱:
-Djava.rmi.server.hostname=your.public.dns
這足以讓它為我工作,但有關更多提示,請嘗試此部落格文章:
這是關於如何在不破壞組安全性(又名防火牆)的情況下執行此操作的更完整說明:
伺服器端:
- 下載http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.23/bin/extras/catalina-jmx-remote.jar並放入 tomcat/lib
- 將以下偵聽器添加到 server.xml:
<listener classname="org.apache.catalina.mbeans.JmxRemoteLifecycleListener" rmiregistryportplatform="10001" rmiserverportplatform="10002" uselocalports="true" />
- 在 tomcat/bin/setenv.sh 中添加以下設置:
CATALINA_OPTS="-Dcom.sun.management.jmxremote \ -Dcom.sun.management.jmxremote.ssl=假\ -Dcom.sun.management.jmxremote.authenticate=false" 導出 CATALINA_OPTS
重啟tomcat
客戶端:
- 下載相同的 catalina-jmx-remote.jar 並將其放入 JDK/JRE/lib/ext (與在伺服器步驟 1 中下載的文件相同)
- 使用以下命令啟動 ssh 隧道:
ssh 使用者@aws-host -L10001:127.0.0.1:10001 -L10002:127.0.0.1:10002
- 啟動 JConsole 並輸入以下遠端服務 URL:
服務:jmx:rmi://127.0.0.1:10002/jndi/rmi://127.0.0.1:10001/jmxrmi
您已通過 SSH 將 JConsole 連接到在 AWS 上執行的 tomcat。
如發佈在: http: //www.cod.ro/2012/08/monitoring-tomcat-7-on-rhel-aws-using.html