【问题标题】:Howto Monitor several web applications (with JMX) on a Tomcat server?如何在 Tomcat 服务器上监控多个 Web 应用程序(使用 JMX)?
【发布时间】:2011-12-25 13:07:31
【问题描述】:

有没有办法监控Tomcat 服务器上单个 Web 应用程序的 CPU 和内存消耗?

我有Tomcat在它的JVM下打开了所有的web应用,所以我只看到一个JVM并且不能单独监控每个web-app。
Web 应用程序是密封的 WAR 文件,我也无法篡改 Java 代码。

【问题讨论】:

    标签: web-applications tomcat jmx


    【解决方案1】:

    看起来官方的答案(对一个非常相似的问题/建议)是run multiple Tomcat instances

    【讨论】:

      【解决方案2】:

      您想在 Web 应用程序中监控什么? Servlet、ejbs....?如果您将相应的 objectname 字符串作为 jmx 查询的一部分传递,它将列出来自 jvm 上托管的所有应用程序的所有 servlet。这样您就可以监控该 jvm 上的单个应用程序。

      【讨论】:

      • 好的。但是我可以监控 JVM 中每个对象的 CPU 使用率和内存消耗,还是可以获得整个 JVM 的统计信息?
      • Servlet、ejb 等,它们是每个对象的。您还可以获得整个 JVM 统计信息。
      • 我无法监控 servlet 的信息。假设tomcat的IP是10.0.0.1,我会通过10.0.0.1:8999监控它。 servlet 是一个名为 MyServlet 的 web 应用程序。位置:10.0.0.1/MyServlet。我得到了这个 obj 名称:Catalina:j2eeType=Servlet,name=appServlet,WebModule=//localhost/MyServlet,J2EEApplication=none,J2EEServer=none。现在呢?