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

前端之家收集整理的这篇文章主要介绍了监控Java Web应用程序 – JMX是正确的选择吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我们有一个 Java Web应用程序,我们想设置一些基本的监控,以便将来扩展这个监控.我们的计划如下:

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

(2)监控应用程序的“状态”.这是相当模糊的,但至少我们想看看Web应用程序是否仍然存在并可以响应请求.

(3)将来我们会收集更多与我们应用相关的信息.再次,这是相当模糊的,但您可以假设我们可能希望通过应用程序在内部收集一些统计信息给支持人员.

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

对于第(3)点,乍看起来我们可以编写自己的MBean,然后将它们提供给JConsole.就个人而言,这将涉及到我学习JMX,我很乐意做,但我有一个问题.环顾四周,我注意到大多数关于这个问题的教科书尚未更新几年,开源工具似乎在没有最新更新的情况下变得越来越糟糕.所以我的主要问题是一个简单的问题.你对JMX有什么看法?它有未来还是它被其他东西所取代?鉴于我们已经有了我们的Web应用程序,但是我们从零开始就为管理控制台开始,我们应该选择JMX还是在更好的未来提供更适合的东西?

我问这个问题,没有人的斧头研磨,我只是有兴趣听到你的意见和经验.我相信没有一个正确的答案,但我认为一个知情的讨论将是有用的.

提前致谢,

亚当.

解决方法

JMX当然是一个很好的解决方案.我不用担心它的痛苦.我最近一直在使用(或有计划使用)JMX的企业,在Java世界中选择别的东西之前,我必须听到一个非常有说服力的论据.为它编写客户端(监控解决方案)很容易,您可以很容易地返回复杂的数据.大多数第三方组件都支持通过JMX进行监控.

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

猜你在找的Java相关文章