监控Java Web应用程序 - JMX是正确的选择吗?

时间:2010-01-07 21:28:12

标签: java web-applications tomcat monitoring jmx

我们有一个Java Web应用程序,我们希望设置一些基本监控,以便将来扩展此监控。我们的计划如下:

(1)收集有关运行应用程序的Web容器的虚拟机的通用信息(例如内存和线程)。

(2)监控应用程序的“状态”。这是相当模糊的,但至少我们想看看Web应用程序是否还活着并且可以响应请求。

(3)将来我们希望收集更多特定于我们申请的信息。同样,这是相当模糊的,但您可以假设我们可能希望由支持人员提供的应用程序在内部收集某些统计信息。

通常,Web应用程序将部署在Tomcat 5.5或6环境中。在Web上快速搜索一下,可以为Tomcat启用JMX,然后可以使用JConsole连接到服务器。这为我们提供了许多解决要点(1)的基本信息。此外,“Catalina”的MBeans部分提供了一些信息,并且至少可以深入了解这一点,例如,查看特定servlet收到的请求数量。这不是我们想要的第(2)点,但至少给了我们一些信息。那里似乎有很多信息,但使用JConsole解释相当困难。也许有一个更好的工具来解释Tomcat暴露的MBean。

对于第(3)点,乍一看似乎我们可以编写自己的MBean,然后将它们提供给像JConsole这样的东西。就个人而言,这将涉及我学习JMX,我很乐意这样做,但我有一个担忧。环顾四周后,我注意到这个主题的大部分教科书已经好几年没有更新,开源工具似乎在没有最新更新的情况下萎靡不振。所以我的主要问题很简单。您对JMX有何看法?它有未来还是被其他东西取代?鉴于我们已经拥有了我们的Web应用程序,但是我们从头开始管理控制台,我们是应该选择JMX,还是有更合适的东西,以及更好的未来呢?

我毫不吝啬地问这个问题,我只想听听你的意见和经验。我确信没有一个正确的答案,但我认为一个明智的讨论会有用。

提前致谢,

亚当。

2 个答案:

答案 0 :(得分:9)

JMX肯定是一个很好的解决方案。我不担心它会萎缩。我最近工作过的大多数企业都使用(或者有计划使用)JMX,在Java世界中选择其他东西之前,我必须听到一个非常有说服力的论点。为它编写客户端(监控解决方案)很容易,并且您可以非常轻松地返回复杂数据。大多数第三方组件也支持通过JMX进行监控。

请注意,您可能还需要考虑与任何现有管理解决方案(例如Nagios,BNC Patrol,HP Openview等)集成。它们可能不具有Java感知能力,但更喜欢简单的HTTP连接等测试,用于测试网站是否正常运行(使用Nagios容易),还是使用SNMP进行集成(Openview本身就是这样)。

答案 1 :(得分:1)

如果适用于您的情况(Java 6更新10 JDK或更高版本,再加上同一台机器),那么请考虑使用jvisualvm,因为它可以比JConsole更深入地挖掘。

你可能会发现做你需要的最简单方法是jvisualvm知道你的应用程序的插件

相关问题