web-dev-qa-db-ja.com

AmazonEC2で実行されているTomcatへのJMX接続

AmazonEC2上のサーバーで実行しているTomcat7プロセスのCATALINA_OPTSには、次のような設定がありますshould接続できますリモートでの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リモートポートへのアクセスを許可していることをトリプルチェックしました。

不足している設定はありますか?

3
Jonik

Java.rmi.server.hostnameオプションも指定して、EC2サーバーのパブリックDNS名を指すようにします。

-Djava.rmi.server.hostname=your.public.dns

それで十分に機能しましたが、その他のヒントについては、次のブログ投稿を試してください。
Amazon EC2でのJMXモニタリング

3
Jonik

Java.rmi.server.hostnameの正しいホスト名の設定に問題がある場合は、次のことを試してください。

-Djava.rmi.server.hostname=$(/usr/bin/curl -s --connect-timeout 2 instance-data.ec2.internal/latest/meta-data/public-hostname)

これは、インスタンスが行き来するElasticBeanstalk環境で使用すると便利です。

3
richid

これは、グループセキュリティ(別名ファイアウォール)を台無しにすることなくそれを行う方法のより完全な説明です:

サーバ側:

  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" />
    
  3. tomcat/bin /setenv.shに次の設定を追加します。

 CATALINA_OPTS = "-Dcom.Sun.management.jmxremote\
-Dcom.Sun.management.jmxremote.ssl = false\
-Dcom.Sun.management.jmxremote.authenticate = false "
 export CATALINA_OPTS 

Tomcatを再起動します

クライアント側:

  1. 同じcatalina-jmx-remote.jarをダウンロードし、JDK/JRE/lib/extに配置します(サーバーのステップ1でダウンロードしたものと同じファイル)
  2. 次のコマンドでsshトンネルを開始します。

    ssh user @ aws-Host -L10001:127.0.0.1:10001 -L10002:127.0.0.1:10002

  3. JConsoleを起動し、次のリモートサービスURLを入力します。

    service:jmx:rmi://127.0.0.1:10002/jndi/rmi://127.0.0.1:10001/jmxrmi

AWSで実行されているTomcatにSSH経由で接続されたJConsoleがあります。

投稿されたとおり: http://www.cod.ro/2012/08/monitoring-Tomcat-7-on-rhel-aws-using.html

3
cod

また、JmxRemoteLifecycleListenerを使用してみましたが、機能しませんでした。

これは私のために働いたものです:

  1. JMXポートとして1005を選択し、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. 次のURIを使用してvisualvmを実行します。

    service:jmx:rmi:///jndi/rmi://localhost:10005/jmxrmi
    

さらに詳しい情報が必要な場合は、この投稿をご覧ください: http://ignaciosuay.com/how-to-connect-a-Java-profiler-like-visualvm-or-jconsole-to-a-remote- Tomcat-running-on-Amazon-ec2 /

0
ignacio.suay