HawtIO удивительно смотрится на вашем промежуточном программном обеспечении на основе JVM. Это объединяющая консоль для приложений, которые в противном случае должны были бы создать свою собственную дрянную веб-консоль; и давайте будем честными, все они построены по-разному, с разными технологиями, с разным UX и со всеми ужасными способами управления промежуточным программным обеспечением в средах QA / PROD… Я слышу, как работают люди с «amen brotha».
Так что HawtIO — хорошее решение этой проблемы. Он имеет открытый исходный код , лицензирован Apache 2.0 , и за ним стоит большое сообщество. Написанный с использованием AngularJS и красивой архитектуры плагинов , вы можете расширить его до своего сердца для своих личных приложений.
Возможно, вы заметили, что это также потрясающая консоль для Fabric8, которая является открытой платформой DevOps для промежуточного программного обеспечения JVM — она упрощает управление развертыванием, настройкой, управлением версиями, обнаружением, балансировкой нагрузки и т. Д. Для вашего промежуточного программного обеспечения.
Но какие у вас есть варианты использования HawtIO сегодня?
Многие!
HawtIO — это просто веб-приложение, которое работает в JVM. Итак, вот ваши варианты:
- Разверните его как WAR в вашем любимом контейнере сервлетов (Tomcat, Jetty, JBoss Wildfly / EAP)
- Разверните его как исполняемое приложение Java
- Используйте расширение HawtIO Chrome для подключения к своим приложениям прямо из браузера.
Посетите страницу « Начало работы», чтобы узнать больше об использовании HawtIO, развернутого в различных конфигурациях.
HawtIO имеет отличные плагины для настройки, управления и визуализации брокеров Apache ActiveMQ , маршрутов Apache Camel , пакетов / services / config Apache Karaf OSGI и многих других, таких как Tomcat, Wildfly, Jetty, ElasticSearch, jclouds и т. Д., И т . Д. Например, чтобы управлять брокерами ActiveMQ , взгляните на запись в блоге моего приятеля Деяна .
По мере того как мы в Red Hat внедряем сервисы JBoss Fuse и JBoss Fuse Serviceworks , мы совершенствуемся в интеграции отдельных компонентов. Например, подписка Fuse Service Works предоставляет вам полный доступ к A-MQ, Fuse и всем его компонентам, включая HawtIO. К сожалению, HawtIO «официально» не поддерживается в EAP на сегодняшний день, но это будет исправлено в следующих выпусках. Это не ограничение технологии, просто ее так много, и Red Hat предъявляет строгие требования к тестированию / совместимости, поэтому нам необходимо выполнить все тестирование / сертификацию, прежде чем мы полностью «поддержим» ее.
НО … действительно, нет никакой причины не использовать его в любом случае (по крайней мере, разработка и контроль качества), пока мы ждем поддержки. И многие уже делают это. Только помните, это официально еще не поддерживается!
Поэтому остальная часть этого блога представляет собой пошаговое руководство с рекомендациями по развертыванию и защите HawtIO на сервере приложений JBoss Wildfly 8.1 . Следующая запись (часть II) будет показывать то же самое для дистрибутива JBoss EAP 6.2 . Я буду использовать HawtIO 1.4.11 (последний выпуск от сообщества) для этого руководства.
Начиная
Прежде всего, предполагается, что вы знаете, где скачать Wildfly 8.1 . Но чтобы начать здесь, мы хотим получить последний дистрибутив HawtIO (1.4.11 на момент написания этой статьи) . Мы будем использовать hawtio-default-1.4.11.war, чтобы быть точным. После загрузки дистрибутива рассмотрите следующий шаг:
1. Удалите файл log4j.properties
Мы хотим удалить файл log4j.properties, поставляемый с дистрибутивом, потому что мы хотим использовать встроенную функцию ведения журнала JBoss Wildfly, которая автоматически подключается к журналам log4j, в которые HawtIO пишет. Если бы мы не удалили log4j.properties, мы бы хотели установить для журнала каждого развертывания значение false. , Но так как это не так сложно, давайте просто удалим log4j.properties (ПРИМЕЧАНИЕ. Чтобы получить дополнительную информацию о гибкости подсистемы ведения журнала, вы должны увидеть документацию wildfly по ее компоненту ведения журнала ).
1
2
3
4
5
6
7
8
9
|
ceposta @postamachat (renamed) $ ll total 50936 -rw-r--r--@ 1 ceposta staff 25M Jul 25 14 : 00 hawtio- default - 1.4 . 11 .war ceposta @postamachat (renamed) $ unzip -l hawtio- default - 1.4 . 11 .war | grep log4j.properties 1268 07 - 13 - 14 17 : 23 WEB-INF/classes/log4j.properties ceposta @postamachat (renamed) $ zip -d hawtio- default - 1.4 . 11 .war WEB-INF/classes/log4j.properties deleting: WEB-INF/classes/log4j.properties |
2. Переименуйте дистрибутив
Мы хотим переименовать дистрибутив, чтобы облегчить переход к веб-приложению после его развертывания. Обратите внимание, что это не обязательный шаг, а тонкость, облегчающая использование:
1
|
ceposta @postamachat (renamed) $ mv hawtio- default - 1.4 . 11 .war hawtio.war |
Теперь, когда мы развернем файл WAR, мы сможем поразить контекст следующим образом: http: // localhost: 8080 / hawtio
вместо того, чтобы беспокоиться о номере версии.
3. Расслабьте подсистему CDI
HawtIO использует некоторые аннотации CDI (например, @Inject), но по умолчанию не содержит файл beans.xml . Wildfly 8.1 не нравится это по умолчанию согласно спецификации CDI 1.1, которая вводит неявные архивы бинов. Мы можем попросить Wildfly игнорировать это веб-приложение как приложение CDI, поскольку в него не включен файл beans.xml , и мы можем эффективно отключить неявные архивы bean-компонентов. Для этого отредактируйте ваш файл конфигурации (мы будем использовать standalone.xml, но если вы используете режим домена, отредактируйте соответствующие файлы конфигурации для этого):
1
2
3
|
353 .... 354 < subsystem xmlns = "urn:jboss:domain:weld:2.0" require-bean-descriptor = "true" /> 355 </ profile > |
4. Преднамеренно отключить безопасность
1
2
3
4
5
|
We want to make sure the webapp deployed correctly and you can access all of the HawtIO goodies. So we'll temporarily _disable_ security on the webapp so we can access it. To do this, add this section after the `< extensions />` section: 31 < system-properties > 32 < property name = "hawtio.authenticationEnabled" value = "false" /> 33 </ system-properties > |
Мы восстановим безопасность в следующем разделе
5. Разверните HawtIO
Теперь вы готовы развернуть HawtIO!
Если вы только что распаковали дистрибутив Wildfly, вам нужно добавить некоторых пользователей в свои области управления и приложений:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
ceposta @postamachat (wildfly- 8.1 . 0 .Final) $ ./bin/add-user.sh What type of user do you wish to add? a) Management User (mgmt-users.properties) b) Application User (application-users.properties) (a): Enter the details of the new user to add. Using realm 'ManagementRealm' as discovered from the existing property files. Username : admin The username 'admin' is easy to guess Are you sure you want to add user 'admin' yes/no? yes Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file. - The password should not be one of the following restricted values {root, admin, administrator} - The password should contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), 1 non-alphanumeric symbol(s) - The password should be different from the username Password : Re-enter Password : What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[ ]: admin About to add user 'admin' for realm 'ManagementRealm' Is this correct yes/no? yes Added user 'admin' to file '/Users/ceposta/dev/eap/wildfly-8.1.0.Final/standalone/configuration/mgmt-users.properties' Added user 'admin' to file '/Users/ceposta/dev/eap/wildfly-8.1.0.Final/domain/configuration/mgmt-users.properties' Added user 'admin' with groups admin to file '/Users/ceposta/dev/eap/wildfly-8.1.0.Final/standalone/configuration/mgmt-groups.properties' Added user 'admin' with groups admin to file '/Users/ceposta/dev/eap/wildfly-8.1.0.Final/domain/configuration/mgmt-groups.properties' Is this new user going to be used for one AS process to connect to another AS process? e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls. yes/no? no |
Теперь вы можете запустить Wildfly и развернуть HawtIO! Запустите Wildfly:
1
|
ceposta @postamachat (wildfly- 8.1 . 0 .Final) $ ./bin/standalone.sh |
И перейдите к веб-консоли. Используйте имя пользователя и пароль, которые вы установили в разделе добавления пользователя выше, чтобы получить доступ к веб-консоли. Вы можете получить доступ к веб-консоли, перейдя по адресу http: // localhost: 9990 / . Теперь перейдите на вкладку Runtime и затем управляйте развертыванием . Нажмите «Добавить», перейдите туда, куда вы скачали, и переименуйте дистрибутив HawtIO. После того, как вы добавили его, вы должны нажать кнопку «Включить», чтобы включить его. У вас должен быть экран, который выглядит так:
6. Используйте HawtIO!
Теперь вы сможете перейти на http: // localhost: 8080 / hawtio и начать использовать HawtIO!
ПРИМЕЧАНИЕ. Похоже, что некоторые проблемы с безопасностью / входом в систему соблюдаются в Safari на Mac. Кажется, вам предложат un / pw. Просто попробуйте с Chrome или другим веб-браузером.
7. Настройте безопасность
Поэтому в корпоративной ситуации мы хотим защитить HawtIO независимо от того, является ли это средой разработки или контроля качества. Для этого мы хотим подключиться к подсистеме безопасности Widlfly .
Сначала давайте остановимся на Wildfly и снова отредактируем автономный файл конфигурации. Там же, где мы отключили безопасность, давайте снова включим ее и добавим еще пару опций. Ваш раздел <system-properties>
должен выглядеть так:
1
2
3
4
5
|
31 < system-properties > 32 < property name = "hawtio.authenticationEnabled" value = "true" /> 33 < property name = "hawtio.realm" value = "jboss-web-policy" /> 34 < property name = "hawtio.role" value = "admin" /> 35 </ system-properties > |
Потрясающие! Теперь давайте добавим пользователя, чтобы иметь возможность войти. Мы снова будем использовать ./bin/add-user.sh для этого руководства, но, скорее всего, в ваших средах вы используете более сложные механизмы безопасности (база данных, LDAP и т. Д.), Чем файлы свойств, которые используются по умолчанию. Но тем не менее, давайте добавим нового пользователя в ApplicationRealm:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
ceposta @postamachat (wildfly- 8.1 . 0 .Final) $ ./bin/add-user.sh What type of user do you wish to add? a) Management User (mgmt-users.properties) b) Application User (application-users.properties) (a): b Enter the details of the new user to add. Using realm 'ApplicationRealm' as discovered from the existing property files. Username : ceposta Password recommendations are listed below. To modify these restrictions edit the add-user.properties configuration file. - The password should not be one of the following restricted values {root, admin, administrator} - The password should contain at least 8 characters, 1 alphabetic character(s), 1 digit(s), 1 non-alphanumeric symbol(s) - The password should be different from the username Password : Re-enter Password : What groups do you want this user to belong to? (Please enter a comma separated list, or leave blank for none)[ ]: admin About to add user 'ceposta' for realm 'ApplicationRealm' Is this correct yes/no? yes Added user 'ceposta' to file '/Users/ceposta/dev/eap/wildfly-8.1.0.Final/standalone/configuration/application-users.properties' Added user 'ceposta' to file '/Users/ceposta/dev/eap/wildfly-8.1.0.Final/domain/configuration/application-users.properties' Added user 'ceposta' with groups admin to file '/Users/ceposta/dev/eap/wildfly-8.1.0.Final/standalone/configuration/application-roles.properties' Added user 'ceposta' with groups admin to file '/Users/ceposta/dev/eap/wildfly-8.1.0.Final/domain/configuration/application-roles.properties' Is this new user going to be used for one AS process to connect to another AS process? e.g. for a slave host controller connecting to the master or for a Remoting connection for server to server EJB calls. yes/no? no |
Теперь давайте снова запустим сервер приложений:
1
|
ceposta @postamachat (wildfly- 8.1 . 0 .Final) $ ./bin/standalone.sh |
Когда мы снова перейдем к конечной точке http: // localhost: 8080 / hawtio , нас встретит страница входа:
Как насчет EAP?
Вот оно! У вас есть HawtIO, работающий и защищенный на Wildfly! Теперь вы можете проверить все удивительные вещи, которые вы можете сделать с HawtIO , особенно то, что вы можете сделать с управлением, отладкой, трассировкой, профилированием и мониторингом маршрутов Apache Camel .
Но как насчет того же в JBoss EAP ? Следите за обновлениями к следующей части … Я покажу вам, как это сделать!
Ссылка: | HawtIO о JBoss Wildfly 8.1 от нашего партнера по JCG Кристиана Поста в блоге |