Статьи

HawtIO на JBoss EAP (Часть II)

Я недавно опубликовал запись о запуске HawtIO на JBoss Wildfly 8.1 . Из этого поста вы узнаете, насколько великолепен HawtIO и все классные плагины, которые он делает для управления технологиями, основанными на JVM, с единой панели… ну… как

Логотип-450px

Тем не менее, я хотел посвятить пост запуску HawtIO на JBoss EAP по тем же причинам, что и в предыдущем посте:

По мере того как мы в Red Hat внедряем сервисы JBoss Fuse и JBoss Fuse Serviceworks , мы совершенствуемся в интеграции отдельных компонентов. Например, подписка Fuse Service Works предоставляет вам полный доступ к A-MQ, Fuse и всем его компонентам, включая HawtIO. К сожалению, HawtIO «официально» не поддерживается в EAP на сегодняшний день, но это будет исправлено в следующих выпусках. Это не ограничение технологии, просто ее так много, и Red Hat предъявляет строгие требования к тестированию / совместимости, поэтому нам необходимо выполнить все тестирование / сертификацию, прежде чем мы полностью «поддержим» ее.

НО … действительно, нет никакой причины не использовать его в любом случае (по крайней мере, разработка и контроль качества), пока мы ждем поддержки. И многие уже делают это. Только помните, это официально еще не поддерживается!

Поэтому остальная часть этого блога представляет собой пошаговое руководство с рекомендациями по развертыванию и защите HawtIO на сервере приложений JBoss EAP 6.x. Я буду использовать HawtIO 1.4.11 (последний выпуск от сообщества) для этого руководства.

as7_to_eap

HawtIO на JBoss EAP 6.1

В этом первом разделе будет обсуждаться EAP 6.1, потому что он, кажется, отлично работает, следуя указаниям, аналогичным указанным для развертывания HawtIO на Wildfly 8.1 . По сути, если вы будете следовать инструкциям из блога по запуску на Wildfly, у вас все получится . Чтобы быть очень конкретным, сделайте эти кусочки:

  • Удалите файл log4j.properties для использования подсистемы ведения журнала EAP.
  • Переименуйте дистрибутив в hawtio.war
  • Создайте пользователей в ApplicationRealm с ролями, включая «admin»
  • Отредактируйте файл standalone.xml чтобы учесть следующие параметры:

Я также добавил [эти инструкции в документацию HawtIO] [http://hawt.io/getstarted/index.html] (сайт должен скоро обновиться с этими изменениями).

После успешного развертывания HawtIO в JBoss EAP 6.1 вы должны увидеть страницу входа по следующему адресу: http: // localhost: 8080 / hawtio

02-hawtio обеспеченных

HawtIO на JBoss EAP 6.2

Так что, к сожалению, при запуске HawtIO на JBoss EAP 6.2 есть некоторые проблемы с JAAS, которые я не смог выяснить. Если вы мастер Wildfly 7 / EAP 6.x и хотите взглянуть , посмотрите на проблему с github, которую я открыл .

Однако, к счастью, HawtIO достаточно универсален и не должен запускаться как веб-приложение, расположенное в контейнере, которым вы хотите управлять. Вы можете запустить его отдельно как расширение Chrome или в отдельном контейнере, который не является JBoss EAP. По сути, вы можете использовать страницу Connect HawtIO для удаленного подключения к контейнеру, которым вы хотите управлять.

Например, загрузите автономный дистрибутив HawtIO, который в итоге станет просто исполняемым файлом jar. Запустите его следующим образом (обязательно добавьте параметры для изменения порта, потому что мы не хотим конфликтовать с портами EAP, если работают на той же машине):

1
ceposta@postamachat(standalone) $ java -jar hawtio-app-1.4.11.jar --port 9091

Это приведет к тому, что HawtIO будет работать автономно (с внутренним сервером Jetty! Woohoo!).

Затем нажмите вкладку «Подключиться», и вы должны увидеть страницу, подобную этой:

03-hawtio-подключения

Чего ждать? Просто подключиться?

«Как это вообще сработает?» — спросите вы. «Как мы можем подключиться к EAP и заставить HawtIO просто управлять им?»

Ну, магия в том, что это просто потрясающая маленькая библиотека по имени Джолокия .

687474703a2f2f6c6162732e636f6e736f6c2e64652f77702d636f6e74656e742f75706c6f6164732f323031302f31302f6a6f6c6f6b69615f6c6f676f2e706e67

Jolokia предоставляет REST-доступ к вашему дереву JMX. Таким образом, способ заставить HawtIO управлять вашим контейнером JBoss EAP 6.2 — включить Jolokia на нем, а затем использовать вкладку HawtIO Connect для входа в систему. Если вы еще не взглянули на Jolokia, вы пропускаете !! Нет более сложного JMX API / клиенты и API запросов / фильтров. Просто используйте конечные точки REST и curl. Просто.

У Jolokia есть несколько вариантов развертывания / включения . Самое простое — это веб-приложение, но вы также можете подключиться в качестве агента JVM во время запуска. Мы возьмем легкий подход и развернем Jolokia как веб-приложение:

Переименовать дистрибутив

В этом сообщении я использую Jolokia 1.2.2. Поэтому, когда вы загружаете его, у него есть имя, подобное этому jolokia-1.2.2.war . Давайте переименуем дистрибутив, чтобы мы не учитывали номера версий, чтобы упростить доступ к URL:

1
ceposta@postamachat(rename) $ mv jolokia-war-1.2.2.war jolokia.war

Включить безопасность для Джолокии

Далее мы хотим включить защиту для веб-приложения jolokia. Мы сделаем это, как описано в документации Jolokia . Нам нужно отредактировать файл web.xml, который находится в Jolokia jar, и раскомментировать раздел, заблокированный для безопасности:

1
ceposta@postamachat(rename) $ vi jolokia.war

Ваша конфигурация в WEB-INF / web.xml должна иметь такой раздел безопасности:

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
163   <!--
164   Example Configuration for switching on BASIC security. The role 'Jolokia'
165   must be mapped to real users with passwords on the Appserver side:
166   -->
167   <login-config>
168     <auth-method>BASIC</auth-method>
169     <realm-name>Jolokia</realm-name>
170   </login-config>
171
172   <security-constraint>
173     <web-resource-collection>
174       <web-resource-name>Jolokia-Agent Access</web-resource-name>
175       <url-pattern>/*</url-pattern>
176     </web-resource-collection>
177     <auth-constraint>
178       <role-name>Jolokia</role-name>
179     </auth-constraint>
180   </security-constraint>
181
182   <security-role>
183     <role-name>Jolokia</role-name>
184   </security-role>
185
186 </web-app>

Теперь добавьте пользователя, как мы делали в предыдущем блоге, который играет роль Jolokia. Обратите внимание, что этот пользователь добавлен в ApplicationRealm.

Подключиться к EAP 6.2

Теперь вернитесь к автономному HawtIO (мы развернули его на предыдущем шаге по адресу http: // localhost: 9091 / hawtio ) и введите параметры соединения (путь указан ниже):

04-hawtio-connect2

Нажмите «Подключиться к удаленному серверу» и альт! Вы связаны

Куда пойти отсюда

Вы также можете попробовать включить SSL через соединение http, а также использовать аутентификацию DIGEST вместо аутентификации по умолчанию BASIC. Я оставлю это как упражнение для читателя!

Ссылка: HawtIO о JBoss EAP (часть II) от нашего партнера JCG Кристиана Поста в блоге