Назад | Перейти на главную страницу

Настройка Jetty JMX для удаленного доступа

У меня возникли проблемы с тем, чтобы JMX работал на Jetty (9.1.3.v20140225), поэтому я прочитал об этом в документации Jetty.

Итак, я добавил в файл 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

и я добавил jmx как часть команды start.jar --add-to-start, как сказал мне doco, как часть подключения Jconsole к Jetty

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

Но опять же то, что в нем говорится, не совсем верно в том, что я вижу в пакете, поэтому я добавил причину, по которой я добавил jetty-jmx-remote, поскольку в нем то, что говорит doco, должно быть в jetty-jmx.xml.

В любом случае, когда я запускаю Jetty, я вижу в файле журнала, что он запускается

ИНФОРМАЦИЯ: oejj.ConnectorServer: main: JMX Remote URL: service: jmx: rmi: // host: 1099 / jndi / rmi: // host: 1099 / jmxrmi

Я могу подключиться к 1099 через telnet с сервера, с моего клиента, я использовал nmap, чтобы дважды проверить, что порт слушает, а также видел это в netstat. Когда я использую VisualVM для подключения, я просто получаю сообщение об ошибке.

Я убедился, что я открыл все порты между моей сетью и местом, где находится Jetty.

Может ли кто-нибудь указать мне в правильном направлении, чтобы начать работу.

Спасибо

Отсортировал, нужно было вручную добавить в 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>

Плюс не нужно было делать то, что я делал с jetty.conf.