我正在寻找有关如何最好地监控在Tomcat中运行的应用程序的想法。我没有引用Tomcat监控,而是检查“Web应用程序”是否处于活动状态。
我知道有几种工具可以监控Tomcat(lamdbaprobe,Nagios等),但我想监视Tomcat中运行的实际应用程序。原因是有几种情况下Tomcat可以运行但应用程序无法使用
我正在考虑的一个解决方案是编写一个可以尝试访问应用程序的工具。例如,编写一个java工具来发送和HTTP请求并监视响应。
最佳方法是什么?我听说JMX提到了很多,但我不太了解它。它可以用于做上述事情吗?你知道其他任何现有的工具吗?或者你知道更好的方法吗?
答案 0 :(得分:1)
您是否尝试过使用JVisualVM?它随Oracle SDK一起提供,可能会为您提供所需的功能。
答案 1 :(得分:1)
你应该选择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();
}
编写一个ContextListener,在web app start上注册这个MBEan。
因此,如果您需要以任何方式更改您的申请,取决于您想要发布的信息是否容易获得。
答案 2 :(得分:1)
我曾经使用过AppDynamics Lite,这对于监控Tomcat上部署的应用程序的性能非常有帮助。有一个高级版本,但我认为它不是免费的。精简版可免费使用。
答案 3 :(得分:0)
我刚刚打开一个新的应用程序性能监控工具
https://github.com/scouter-project/scouter/
服务监控与Tomcat监控完全不同。 SCOUTER是一个Web应用程序服务监视工具。 您可以在响应散点图(XLOG图表)上检查每个事务(服务请求)的性能(也是profole / sqls)