Я недавно опубликовал запись о запуске HawtIO на JBoss Wildfly 8.1 . Из этого поста вы узнаете, насколько великолепен HawtIO и все классные плагины, которые он делает для управления технологиями, основанными на JVM, с единой панели… ну… как …
Тем не менее, я хотел посвятить пост запуску 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 (последний выпуск от сообщества) для этого руководства.
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
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!).
Затем нажмите вкладку «Подключиться», и вы должны увидеть страницу, подобную этой:
Чего ждать? Просто подключиться?
«Как это вообще сработает?» — спросите вы. «Как мы можем подключиться к EAP и заставить HawtIO просто управлять им?»
Ну, магия в том, что это просто потрясающая маленькая библиотека по имени Джолокия .
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 ) и введите параметры соединения (путь указан ниже):
Нажмите «Подключиться к удаленному серверу» и альт! Вы связаны
Куда пойти отсюда
Вы также можете попробовать включить SSL через соединение http, а также использовать аутентификацию DIGEST вместо аутентификации по умолчанию BASIC. Я оставлю это как упражнение для читателя!
Ссылка: | HawtIO о JBoss EAP (часть II) от нашего партнера JCG Кристиана Поста в блоге |