Jolokia对我来说是一个未知的领域,在阅读完文档之后,我仍然不确定它是否适用于我想到的场景。
设定:
可能的问题:
jmxrmi
端点。目标:
我想要做的是将Jolokia WAR文件部署到Tomcat服务器上,然后对其进行配置,以便我可以从其他Web应用程序中读取MBean属性。
我会使用Python(版本3)和Requests HTTP库自己编写客户端代码。
我一直在阅读Jolokia文档(再次,我在这一点上是一个完整的新手),但无法弄清楚这是否可行(因为我似乎无法找到输入JMX / RMI URL或身份验证信息。)
问题:
答案 0 :(得分:5)
首先,Jolokia完全传递了JSR-160连接器,因此不需要任何JMX / RMI身份验证。 Jolokia的整个目的是为内部 JMX子系统提供HTTP / JSON桥接。根据代理,您可以非常轻松地保护Jolokia。对于WAR代理,安全性与任何Java EE Web应用程序相同:为tomcat设置一些角色和用户(例如在tomcat-users.xml
中)并在jolokia.war
&#中的安全约束中引用该角色39; s /WEB-INF/web.xml
。
问题:
是的,你可以。如果您没有任何特定的身份验证需求,只需将jolokia.war放入tomcat的/webapps
目录即可。我建议在添加安全性之前先尝试这个。要卸载代理,只需删除战争。
作为替代方案,您还可以使用JVM代理,该代理在额外端口上打开自己的HTTP服务器(默认值:8778)。有关详情,请参阅reference manual
不需要专门连接到Web应用程序,因为MBean是全局注册的,并且可以从JVM中的任何位置访问。 Webapp当然应该仔细选择它所公开的管理信息。因此,不需要额外的步骤,您可以直接访问WEB应用程序的MBean(除非它在Java安全性方面做了一些不寻常的事情,但我不这么认为)。
要测试安装,只需使用浏览器和上下文/jolokia
(例如" http://localhost:8080/jolokia")连接到Tomcat。您应该看到有关代理本身的版本信息。
下一步是探索JMX命名空间,或者使用浏览器(和操作"列表"像http://localhost:8080/jolokia/list一样,但这很乏味)或者像客户端一样j4psh或hawt.io。希望您能找到您正在寻找的webapp的MBean。