8

次のリンクの手順に従って、Tomcat内の単一のポートに独自のRMIレジストリとjmxサーバーを作成しました。コメントによると、-Djava.rmi.server.hostname=localhostを設定する必要があります。そうすれば、sshポートフォワーディングを使用してjconsole経由でサーバーに接続できます。

http://blogs.oracle.com/jmxetc/entry/connecting_through_firewall_using_jmx

ただし、RMIを使用するehcacheレプリケーションを壊すという非常に悪い副作用があることがわかりました。リモートピアローカルホストからブートストラップできないという文句は失敗します。ピアはすべて、-Djava.rmi.server.hostname = localhostの設定から、rmiサーバーのホスト名がlocalhostに設定されているためだと思います。

誰かがこの問題の可能な回避策を持っていますか?

4

3 に答える 3

1

使いやすく、ファイアウォールに適した JMX リモート処理の代替手段を探している場合は、jmx4perlを試してみる価値があります。これは、HTTP/Rest 経由で JMX MBean をエクスポートするエージェント ベースのアプローチです。

その主な焦点は、監視目的でスクリプト環境 (つまり perl) で使用することに向けられていますが、予定されているバージョン 0.70 では、Java クライアント ライブラリが追加されています (ベータ品質)。

于 2010-06-04T20:39:17.470 に答える
1

申し訳ありませんが、私の最初の答えは間違っていました。しかし、tomcat6 では JmxRemoteLifecycleListener のオプションがあると思います:

public boolean getUseLocalPorts()

Get the flag that indicates that local ports should be used for all
connections. If using SSH tunnels, or
similar, this should be set to true to
ensure the RMI client uses the tunnel.

http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/catalina/mbeans/JmxRemoteLifecycleListener.html

于 2011-02-01T08:16:40.673 に答える
1

問題に遭遇しました。問題は、java.rmi.servername.hostname プロパティがグローバルであることです。ehcache と jmx サーバーを調和させるには、VisualVM を実行しているマシンでいくつかのハックを実行する必要があります。

これがあなたがする必要があることです。これは、クライアントに Mac を使用することに基づいているため、必要に応じてコマンドを変更します。

  1. -Djava.rmi.server.hostname=localhost を削除します。

  2. プロファイリングするサーバー マシンの InetAddress.getLocalHost().getHostAddress() の値を提供するテスター アプリケーションを作成します。これにより、ローカル IP (nat の場合はプライベート) が得られます。ローカル マシンでこの IP を参照する必要があります。以下のコマンドで IP と表示されている場合は、この IP を使用します。

  3. さて、これは楽しい部分です。内部 IP をマシンのループバック インターフェイスに追加します。(ifconfig lo0 IP ネットマスク 255.255.255.0 アップ)

  4. これが実際にトラフィックをループバックに転送することをテストします。ループバックを返す必要があります。(経路取得IP)

  5. SSH トンネルを開始します: ssh -C -L IP:PORT:localhost:PORT -L IP:OTHER_PORT:localhost:OTHER_PORT user@host.

ssh トンネルの IP が実際にはループバックに関連付けられていることに注意してください。localhost を参照するのではなく、すべてのマシンの IP を参照します。また、ローカルホストではなくこの IP を参照するように JMX URL を変更する必要があります。

于 2010-05-19T01:06:28.707 に答える