我正在寻找关于如何最好地监控运行在Tomcat中的应用程序的想法。我指的不是Tomcat监控,而是检查"web应用程序“是否处于活动/活动状态。
我知道有几个工具可以监控Tomcat (lamdbaprobe、Nagios等),但我想监控在Tomcat中运行的实际应用程序。这是因为在某些情况下,Tomcat可能正在运行,但应用程序不可用
我正在考虑的一种解决方案是编写一个尝试访问应用程序的工具。例如,编写一个java工具来发送和HTTP请求并监控响应。
解决这一问题的最佳方法是什么?我听说过很多关于JMX的事情,但我对它知之甚少。它可以用来做上面的事情吗?你知道有没有其他现有的工具可以做到这一点,或者你知道有更好的方法?
发布于 2010-12-30 03:14:04
JMX是您应该选择的。
在最简单的形式中,它只不过是编写一个接口,即用于访问信息的相应类,然后在MBeanServer中部署此实例。这是一件轻而易举的事情--只要用一点谷歌,你就可以在一个小时内拿出一个解决方案。
使用此appraoch,您可以与Tomcat本身无缝集成。Tomcat还使用JMX发布其信息。
通信是基于一个标准的,周围有很多使用"JMX over RMI“的工具,例如jconsole或jvisualVM。大多数监控软件都有JMX插件(Nagios和其他插件-我们使用Hyperic)。
编辑
好吧,让我们换个角度看一下。编写一个收集要发布的信息的类。这些信息肯定会在某个地方公开。
class MyInfo {
public int getCurrentValue() {
// lookup this value wherever yoy want
return 42;
}
}编写一个接口
interface MyInfoMBean {
public int getCurrentValue();
}编写在web应用启动时注册此MBEan的ContextListener。
因此,您是否需要以任何方式更改您的应用程序取决于您想要发布的信息是否容易获得。
发布于 2010-12-30 02:26:18
你试过使用JVisualVM吗?它随Oracle SDK一起提供,可能会满足您的需求。
发布于 2010-12-30 04:12:01
我曾经使用过AppDynamics Lite,它对监控部署在Tomcat上的应用程序的性能非常有帮助。有一个高级版本,但我不认为它是免费的。精简版可以免费使用。
https://stackoverflow.com/questions/4556574
复制相似问题