Amazon-Ec2

JMX 連接到在 Amazon EC2 上執行的 Tomcat

  • September 8, 2016

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

這足以讓它為我工作,但有關更多提示,請嘗試此部落格文章:

Amazon EC2 上的 JMX 監控

這是關於如何在不破壞組安全性(又名防火牆)的情況下執行此操作的更完整說明:

伺服器端:

  1. 下載http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.23/bin/extras/catalina-jmx-remote.jar並放入 tomcat/lib
  2. 將以下偵聽器添加到 server.xml:
<listener classname="org.apache.catalina.mbeans.JmxRemoteLifecycleListener"
    rmiregistryportplatform="10001" 
    rmiserverportplatform="10002" 
    uselocalports="true" />
  1. 在 tomcat/bin/setenv.sh 中添加以下設置:
CATALINA_OPTS="-Dcom.sun.management.jmxremote \
-Dcom.sun.management.jmxremote.ssl=假\
-Dcom.sun.management.jmxremote.authenticate=false"
導出 CATALINA_OPTS

重啟tomcat

客戶端:

  1. 下載相同的 catalina-jmx-remote.jar 並將其放入 JDK/JRE/lib/ext (與在伺服器步驟 1 中下載的文件相同)
  2. 使用以下命令啟動 ssh 隧道:

ssh 使用者@aws-host -L10001:127.0.0.1:10001 -L10002:127.0.0.1:10002

  1. 啟動 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

引用自:https://serverfault.com/questions/350049