Java 使用Jolokia监视同一Tomcat服务器上webapp的JMX端点

Java 使用Jolokia监视同一Tomcat服务器上webapp的JMX端点,java,python,tomcat,jmx,jolokia,Java,Python,Tomcat,Jmx,Jolokia,对我来说,这是一个未知的领域,在阅读了文档之后,我仍然不确定它是否能与我心目中的场景相匹配 设置: Tomcat应用服务器(版本范围从6.x到7.x),通常在Windows平台上,偶尔也有Linux的味道 已部署第三方Java web应用程序(SAP BusinessObjects),并启用JMX监控(可通过RMI访问) 可能的问题: 要监视的JavaWeb应用程序是商业的、封闭源代码的,因此不可能进行修改。唯一可以更改的是JMX端口号 JMX端点是一个自定义端点,因此不是默认的jmxrm

对我来说,这是一个未知的领域,在阅读了文档之后,我仍然不确定它是否能与我心目中的场景相匹配

设置:

  • Tomcat应用服务器(版本范围从6.x到7.x),通常在Windows平台上,偶尔也有Linux的味道
  • 已部署第三方Java web应用程序(SAP BusinessObjects),并启用JMX监控(可通过RMI访问)
可能的问题:

  • 要监视的JavaWeb应用程序是商业的、封闭源代码的,因此不可能进行修改。唯一可以更改的是JMX端口号
  • JMX端点是一个自定义端点,因此不是默认的
    jmxrmi
    端点
  • JMX连接需要身份验证
目标:

我想做的是将Jolokia WAR文件部署到Tomcat服务器上,然后对其进行配置,以便可以从其他web应用程序读取MBean属性

我将自己使用Python(版本3)和HTTP库编写客户机代码

我一直在阅读Jolokia文档(同样,在这一点上我是一个完全的新手),但不知道这是否可能(因为我似乎找不到在哪里输入JMX/RMI url或身份验证信息)

问题:

  • 我可以使用WAR代理进行此设置吗
  • 如果没有,请你解释一下原因(这样我才能理解,不是因为我不相信你)。还有,是否有其他代理更适合这种情况
  • 如果是,您能告诉我如何将Jolokia配置为要连接的web应用程序的正确方向吗

  • 首先,Jolokia完全绕过JSR-160连接器,因此不需要任何JMX/RMI身份验证。Jolokia的全部目的是为内部JMX子系统提供HTTP/JSON上的桥梁。根据代理的不同,你可以很容易地获得Jolokia。对于WAR代理,安全保护与任何Java EE web应用程序相同:为tomcat设置一些角色和用户(例如在
    tomcat users.xml
    中),并在
    jolokia.WAR
    /web-INF/web.xml
    中的安全约束中引用角色

    关于你的问题:

  • 是的,你可以。如果您没有任何特定的身份验证需求,只需将jolokia.war放到tomcat的
    /webapps
    目录中即可。我建议在添加安全性之前先尝试一下。要卸载代理,只需删除war

  • 作为替代方案,您也可以使用JVM代理,它在一个额外的端口上打开自己的HTTP服务器(默认值:8778)。更多关于这方面的信息,请访问

  • 不需要专门连接到web应用程序,因为MBean是全局注册的,可以从JVM中的任何位置访问。当然,webapp应该仔细选择它公开的管理信息。因此,不需要额外的步骤,您可以直接访问WEB应用程序的MBean(除非它在Java安全方面做了一些不寻常的事情,但我不这么认为)

  • 要测试安装,只需使用浏览器和上下文
    /jolokia
    (例如“”)连接到Tomcat即可。您应该看到有关代理本身的版本信息


    下一步将是探索JMX名称空间,或者使用浏览器(以及类似于中的操作“list”,但这很繁琐),或者使用类似于或的客户端。希望您能找到正在寻找的Web应用程序的MBean。

    首先,Jolokia完全绕过JSR-160连接器,因此不需要任何JMX/RMI身份验证。Jolokia的全部目的是为内部JMX子系统提供HTTP/JSON上的桥梁。根据代理的不同,你可以很容易地获得Jolokia。对于WAR代理,安全保护与任何Java EE web应用程序相同:为tomcat设置一些角色和用户(例如在
    tomcat users.xml
    中),并在
    jolokia.WAR
    /web-INF/web.xml
    中的安全约束中引用角色

    关于你的问题:

  • 是的,你可以。如果您没有任何特定的身份验证需求,只需将jolokia.war放到tomcat的
    /webapps
    目录中即可。我建议在添加安全性之前先尝试一下。要卸载代理,只需删除war

  • 作为替代方案,您也可以使用JVM代理,它在一个额外的端口上打开自己的HTTP服务器(默认值:8778)。更多关于这方面的信息,请访问

  • 不需要专门连接到web应用程序,因为MBean是全局注册的,可以从JVM中的任何位置访问。当然,webapp应该仔细选择它公开的管理信息。因此,不需要额外的步骤,您可以直接访问WEB应用程序的MBean(除非它在Java安全方面做了一些不寻常的事情,但我不这么认为)

  • 要测试安装,只需使用浏览器和上下文
    /jolokia
    (例如“”)连接到Tomcat即可。您应该看到有关代理本身的版本信息


    下一步将是探索JMX名称空间,或者使用浏览器(以及类似于中的操作“list”,但这很繁琐),或者使用类似于或的客户端。希望您能找到您正在寻找的Web应用程序的MBean。

    非常好的信息,谢谢。本教程不够IMHO,因为它没有提到如何浏览数据——或者我错过了什么?Nvm我错过了。信息在这里:非常好的信息,谢谢。本教程不够IMHO,因为它没有提到如何浏览数据——或者我错过了什么?Nvm我错过了。信息如下: