我应该如何使用JMX监视tomcat上的Web应用程序?

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

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

Web应用程序和在线监控的问题在于,Web应用程序不总是处于活动状态,而是被“唤醒”来处理服务器的请求,因此监视它们不仅仅是像使用JMX一样正常运行的进程一样插入。

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

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

谢谢!


您可以创建一个实现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>

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


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

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

否则如@teabot所述,使用Spring JMX支持。 使它非常容易。

链接地址: http://www.djcxy.com/p/59705.html

上一篇: How should I monitor a web application on tomcat using JMX?

下一篇: Web application monitoring best practices