9

AmazonのクラウドのLinuxサーバーでTomcat6を実行しています。オフィスのMacからVisualVMで接続しようとしています。デスクトップとサーバー間のすべてのTCPポートを開くことを許可しましたが、VisualVMに何も実行させることができません。

Linuxボックスでは、Tomcatを次のコマンドで起動しました。

-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=9191
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false

Macで、VisualVMを起動し、[ファイル]->[新しいJMX接続...]を選択します。

ボックスにamazonhostname.com:9191と入力します。「amazonhostname.com:9191を追加しています...」と表示され、タイムアウトする前に数分間そこに留まります。

私のMacからは、「telnet amazonhostname.com 9191」で問題なく動作し、他のランダムなポートをいくつか試しましたが、すべて機能しました。UDPやICMPなどを開く必要がない限り、ファイアウォールの問題ではないと確信しています。(本当に??)

サーバーのcatalina.log、または私のMacのシステムコンソールには、jmxに関連するものは何もありません。サーバー上のnetstatは、すべてのインターフェースで9191と他のいくつかのポートが開いていることを示しています。

リモートサーバーにjstatdはありません。それはJMXの前提条件ですか?(私はJavaにまったく慣れていないので、それらが何を意味するのかさえわかりませんが、どこかのブログ投稿で見ました。今はストローを把握しています。)

4

2 に答える 2

20

VMが起動する前にhostnameプロパティを設定します。

java -Dcom.sun.management.jmxremote \
     -Dcom.sun.management.jmxremote.port=9191 \
     -Dcom.sun.management.jmxremote.authenticate=false \
     -Dcom.sun.management.jmxremote.ssl=false \
     -Djava.rmi.server.hostname=the.public.ip \
     -jar program.jar

関連するルールをセキュリティグループに追加します。

于 2012-05-29T10:47:12.567 に答える
0

RHEL7環境でうまく機能したのは、ドキュメントに記載されている例を使用して、TomcatにJmxRemoteLifecycleListenerを実装することです。また、ファイアウォールでポート10001と10002を開きました。 JMXリモートライフサイクルリスナー

于 2020-02-14T18:48:48.307 に答える