2016-10-19 13 views
0

Мы пытаемся контролировать JBoss с помощью JMX с удаленного компьютера с помощью JConsole:Мониторинг JBoss с помощью JMX удаленного

jboss Version: jboss-eap-6.4 jdk version: 1.7.079

Чтобы достичь этого, я сделал ниже изменения в конфигурации JBoss:

Добавлен ниже параметров в Domain.sh:

JAVA_OPTS="$JAVA_OPTS - Djavax.management.builder.initial=org.jboss.system.server.jmx.MBeanServerBuilderImpl" 
JAVA_OPTS="$JAVA_OPTS -Djboss.platform.mbeanserver" 
JAVA_OPTS="$JAVA_OPTS -Djava.rmi.server.hostname=IP.of.machine" 
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.port=4847" 
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.ssl=false" 
JAVA_OPTS="$JAVA_OPTS -Dcom.sun.management.jmxremote.authenticate=false" 

Белу ш настраивается в domain.xml

 <subsystem xmlns="urn:jboss:domain:jmx:1.3"> 
      <expose-resolved-model/> 
      <expose-expression-model/> 
      <remoting-connector use-management-endpoint="false"/> 
     </subsystem> 

Defined an ApplicationRealm user with the help of add-user.sh

После этого много, я могу контролировать JBoss через JMX через локальный сервер (на котором JBoss запущен), используя ниже URL:

service:jmx:remoting-jmx://ip.of.machine:4847

Однако, когда я пытаюсь предоставить тот же URL-адрес с удаленной машины, я получаю ниже исключения.

`Соединение с xxxxx не получилось".

Мне нужна помощь в этом, чтобы знать, не делаю ли я что-то неправильное. так что я могу удаленно контролировать jboss с помощью консоли JMX.

обновление Между источником и пунктом назначения нет брандмауэра.

+0

Вы уже подтвердили, что нет брандмауэра, который блокирует связь на порту с удаленной машины на главный компьютер? –

+0

@ M.Rizzo, да, это уже согласовано. Я обновил свой вопрос. – user2607367

ответ

0

У вас установлен JBOSS на удаленной машине? JBOSS отмечает, что «Если вы используете jconsole на машине, отличной от сервера, вам нужна локальная установка JBoss: jconsole Java JRE не будет работать из коробки (т. Е. Без дополнительных банок в пути к классам). Кроме того, если вы находитесь на удаленной машине, а целевой компьютер не находится в DNS, вам придется добавить его в файл hosts ».

  • Затем убедитесь, что у вас установлен JAVA_HOME и он указывает на ваш JDK 1.7.
  • запустите соответствующий сценарий jBOsole JBOSS: сценарий JBOSS_HOME/bin/jconsole.sh (linux) или JBOSS_HOME/bin/jconsole.bat (windows). Затем вам будет предложено ввести нормальное диалоговое окно подключения и ввести соответствующую информацию.

Если вы не хотите идти по этому маршруту, я мог бы провести некоторое исследование, чтобы выяснить соответствующие банки, которые необходимо включить для jconsole JDK.

+0

yes У меня установлен jboss в удаленной машине, и мы запускаем jboss в режиме домена. Как-то нам не удается установить локальный jboss. Не могли бы вы предоставить соответствующие банки, которые необходимо добавить для консоли JDK? – user2607367

+0

Ну нет краткого списка, который я мог найти. Вы можете посмотреть скрипт jconsole.sh, находящийся под папкой bin установки EAP. Он добавляет jboss-cli-client.jar к пути к классам, но также добавляет все модули jboss к пути к модулю (jconsole -J-Dmodule.path =).Это не похоже на то, что все они требуются. Это похоже только на модули под JBOSS_HOME/modules/system/layers/base. Таким образом, вы можете попробовать скопировать jboss-cli-client.jar и модули, а затем настроить путь к классам и путь к модулю для jconsole. –

+0

Еще одна вещь (я уверен, что вы уже знаете), которая также может повлиять на вас: по умолчанию JBoss AS привязан к 127.0.0.1. Чтобы изменить адрес для привязки, вы можете использовать ключ -b при запуске JBoss AS. Вы использовали бы -b0.0.0.0 при запуске, чтобы разрешить подключение всех удаленных IP-адресов. –

 Смежные вопросы

  • Нет связанных вопросов^_^