2

我想使用 JMX 监控在 tomcat 下运行的 Web 应用程序。

我不想只使用 Tomcat 的内置 JMX 实现,我想为实际的 Web 应用程序实现一个 mbean,以便获取有关应用程序特定设置的信息并对其进行监视。

Web 应用程序和在线监控的问题在于,Web 应用程序并不总是处于活动状态,而是“唤醒”以处理服务器的请求,因此监控它们不仅仅是插入 JMX,就像我对正常运行的进程所做的那样。

你如何让 Tomcat 在后台运行应用程序(像单例一样),以便我可以随时连接到它?

有没有办法做到这一点,这是常见的,我不知道?

谢谢!

4

3 回答 3

3

在您的应用程序中,您需要在部署应用程序时向 MBean 服务器注册 MBean。在部署 Web 应用程序时,MBean 将被公开。我已经使用Spring Framework JMX 支持在 Tomcat 中执行此操作 - 但有一些方法可以在没有 Spring 的情况下执行此操作。

于 2009-08-17T12:44:40.303 回答
2

您可以创建一个实现类,ServletContextListener然后在 web.xml 中加载该侦听器。

班上:

public class ServerListener implements ServletContextListener {

    public void contextDestroyed(ServletContextEvent pSce) {
    }

    public void contextInitialized(ServletContextEvent pSce) {
        // TODO Register MBean here.
    }
}

web.xml:

<listener>
  <listener-class>com.example.ServerListener</listener-class>
</listener>
于 2009-08-17T12:49:28.647 回答
0

如果您熟悉 Nagios 并且您的公司正在使用它,那可能是一个更好的选择

这些插件看起来很有帮助 https://exchange.nagios.org/directory/Plugins/Java-Applications-and-Servers/Apache-Tomcat

正如@teabot 所说,使用 Spring JMX 支持。使它非常容易。

于 2017-03-23T13:46:34.487 回答