我刚刚发布了一篇关于在JBoss Wildfly 8.1上运行HawtIO的条目 。 从那篇文章中,您将了解HawtIO多么出色 ,以及它必须具备的所有 出色 插件,才能从单个仪表板管理基于JVM的技术……好吧…… hawt ……。
但是,出于上一篇文章中概述的相同原因,我想专门发布一篇在JBoss EAP上运行HawtIO的文章:
当我们在Red Hat推出JBoss Fuse和JBoss Fuse Serviceworks时 ,我们在集成各个组件方面变得越来越好。 例如,通过Fuse Service Works订阅,您可以完全访问A-MQ,Fuse及其所有组件,包括HawtIO。 不幸的是,到目前为止,EAP尚未“正式”支持HawtIO,但是在下一发行版中将对此进行修复。 这不是技术的局限性,而是存在着太多的东西,并且Red Hat具有严格的测试/兼容性要求,因此我们需要在完全“支持”它之前完成所有测试/认证。
但是……在我们等待支持的过程中,实际上没有理由不使用它(至少是Development和QA)。 而且已经有很多人这样做了。 请记住,它尚未得到官方支持!
因此,本博客的其余部分是分步指南,其中包含有关如何在您的JBoss EAP 6.x应用服务器上部署和保护HawtIO的最佳实践。 本指南将使用HawtIO 1.4.11(社区的最新版本)。
在JBoss EAP 6.1上的HawtIO
第一部分将讨论EAP 6.1,因为按照与在Wildfly 8.1上部署HawtIO相似的指导,它似乎可以很好地工作。 基本上,如果您按照博客文章中关于在Wildfly上运行的说明进行操作 ,则可以正常运行 。 具体来说,请执行以下操作:
- 删除log4j.properties文件以使用EAP日志记录子系统
- 将发行版重命名为hawtio.war
- 在ApplicationRealm中创建具有“管理员”角色的用户
- 编辑
standalone.xml
文件以说明以下设置:
我还添加了[这些说明到HawtIO文档中] [http://hawt.io/getstarted/index.html](网站应该很快会随着这些更改进行更新)。
在将HawtIO成功部署到JBoss EAP 6.1之后 ,应该在以下URL上找到登录页面: http:// localhost:8080 / hawtio
在JBoss EAP 6.2上的HawtIO
因此,不幸的是,让HawtIO在JBoss EAP 6.2 上运行存在JAAS的一些问题 ,我无法弄清。 如果您是Wildfly 7 / EAP 6.x向导,并希望看一眼,请查看我已打开的github问题 。
值得庆幸的是,HawtIO用途广泛,不必在您要管理的容器上并置一个Web应用程序即可运行。 您可以将其作为Chrome扩展程序 独立运行,也可以在非JBoss EAP的单独容器中运行。 有效地,您可以使用HawtIO的“ 连接”页面远程连接到您要管理的容器。
例如, 下载HawtIO的独立发行版,该发行版最终只是一个可执行jar。 像这样运行(确保添加用于端口更改的参数,因为如果在同一台计算机上运行,我们不想与EAP端口冲突):
ceposta@postamachat(standalone) $ java -jar hawtio-app-1.4.11.jar --port 9091
这将启动独立运行(带有内部Jetty服务器!Woohoo!)的HawtIO。
然后单击“连接”选项卡,您应该看到如下页面:
只是连接?
你问:“这怎么工作?” “我们如何连接到EAP并让HawtIO对其进行管理?”
好吧,神奇的是这个名叫Jolokia的超赞小图书馆。
Jolokia提供对您的JMX树的REST访问。 因此,让HawtIO管理您的JBoss EAP 6.2容器的方法是在其上启用Jolokia,然后使用HawtIO的“连接”选项卡登录。如果您没有看过Jolokia,那么您就错过了! 不再需要复杂的JMX API /客户端和查询/过滤器API。 只需使用REST端点并卷曲即可。 简单。
Jolokia有一些用于部署/启用的选项 。 最直接的是Web应用程序,但是您也可以在启动时附加为JVM代理。 我们将采用简单的方法并将Jolokia部署为Web应用程序:
重命名发行版
对于此博客文章,我使用的是Jolokia 1.2.2。 因此,当您下载它时,它的名称类似于jolokia-1.2.2.war
。 让我们重命名发行版,以便我们不考虑版本号来更轻松地访问URL:
ceposta@postamachat(rename) $ mv jolokia-war-1.2.2.war jolokia.war
为Jolokia启用安全性
接下来,我们要为jolokia Web应用程序启用安全性。 我们将按照Jolokia文档中的说明进行操作 。 我们需要编辑Jolokia jar中的web.xml文件,并取消注释出于安全考虑而被屏蔽的部分:
ceposta@postamachat(rename) $ vi jolokia.war
您在WEB-INF / web.xml中的配置应具有如下安全性部分:
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 ),然后输入connect参数(路径如下):
单击“连接到远程服务器”,然后中提琴! 你真受不了
从这往哪儿走
您也可以尝试通过http连接启用SSL,也可以使用DIGEST身份验证代替默认的BASIC身份验证。 我将其留给读者练习!
翻译自: https://www.javacodegeeks.com/2014/08/hawtio-on-jboss-eap-part-ii.html