JMX是正确的选择?

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

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

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

(3)将来我们希望收集更多针对我们应用的信息。 这又相当模糊,但您可以假设我们可能希望通过支持人员可用的应用程序在内部收集某些统计信息。

通常,Web应用程序将部署在Tomcat 5.5或6环境中。 在网络上快速搜索一下,就可以为Tomcat启用JMX,然后可以使用JConsole连接到服务器。 这给了我们许多解决点(1)的基本信息。 此外,“Catalina”的MBeans部分提供了一些信息,并且至少可以深入研究这个问题,例如,查看特定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 6 update 10 JDK或更高版本,再加上同一台机器上),请考虑使用jvisualvm,因为它可以比JConsole挖得更深。

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

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

上一篇: is JMX the right choice?

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