web-dev-qa-db-ja.com

リモートアクセス用のJetty JMXセットアップ

Jetty(9.1.3.v20140225)でJMXを動作させるのにいくつか問題があるので、Jetty docoについて読んでみました。

だから私はjetty.confに以下を追加しました

# ========================================================
# jetty.conf Configuration for jetty.sh script
# --------------------------------------------------------
# This file is used by the jetty.sh script to provide
# extra configuration arguments for the start.jar command
# created by that script.
#
# Each line in this file becomes an arguement to start.jar
# in addition to those found in the start.ini file
# =======================================================
jetty-logging.xml
jetty-started.xml
etc/jetty.xml
etc/jetty-jmx.xml
etc/jetty-jmx-remote.xml

jconsoleをJettyに接続する一環としてdocoが教えてくれたように、start.jar --add-to-startコマンドの一部としてjmxを追加しました

http://www.Eclipse.org/jetty/documentation/current/jetty-jconsole.html

[mybase]$ Java /opt/jetty-dist/start.jar --add-to-start=jmx
INFO: jmx-remote      initialised in ${jetty.base}/start.ini (appended)
INFO: jmx             initialised transitively

私がこれを行ったとき、確かにjmxが追加され、jmx-remoteは追加されませんでした。理由は不明ですが、誰かが理由を教えてくれることを願っています。

私が読んだドキュメントからこれらすべてを言うことで、私は彼らがこれを実現したいことをカバーしました。

http://www.Eclipse.org/jetty/documentation/current/jmx-chapter.html

しかし、ここでも、パッケージに表示されているものについては完全に正しくありません。そのため、doctyの内容がjetty-jmx.xmlにあるため、jetty-jmx-remoteを追加したのはそのためです。

いずれにせよ、Jettyを起動すると、ログファイルにそれが開始されていることがわかります。

INFO:oejj.ConnectorServer:main:JMXリモートURL:service:jmx:rmi:// Host:1099/jndi/rmi:// Host:1099/jmxrmi

サーバーから、クライアントから1099にtelnetできます。nmapを使用して、ポートがリッスンされていることを再確認し、netstatでも確認しました。 VisualVMを使用して接続すると、エラーが発生します。

ネットワークと桟橋の場所の間のすべてのポートを開いたことを確認しました。

これを実現するために、誰かが私を正しい方向に向けることができますか?.

ありがとう

6
djo

並べ替え、これをstart.iniに手動で追加する必要があります

--module=jmx-remote
## JMX Configuration
## Enable for an open port accessible by remote machines
jetty.jmxrmihost=localhost
jetty.jmxrmiport=1099
## Strictly speaking you shouldn't need --exec to use this in most environments.
## If this isn't working, make sure you enable --exec as well
-Dcom.Sun.management.jmxremote

そして、jetty-jmx.xmlでこれを更新しました。

<Call class="Java.lang.System" name="setProperty">
    <Arg>Java.rmi.server.hostname</Arg>
    <Arg>IP-Address</Arg>
  </Call>

Plusは私がjetty.confに対してしたことをする必要はありませんでした。

5
djo