我们有一个Java web应用程序,我们希望设置一些基本的监控,并计划以后扩展这些监控。我们的计划如下:
(1) 收集关于运行应用程序的web容器的虚拟机的通用信息(例如内存和线程)。
(2) 监控应用程序的“状态”。 这比较模糊,但至少我们想知道Web应用程序是否仍然存活并能够响应请求。
(3) 将来,我们希望收集更多特定于我们的应用程序的信息。 同样,这也很模糊,但可以假设我们可能希望将应用程序内部收集的某些统计信息提供给支持人员。
通常,Web应用程序将部署在Tomcat 5.5或6环境中。 在网上快速搜索后发现,可以为Tomcat启用JMX,然后可以使用JConsole连接到服务器。 这给了我们许多基本信息,解决了第(1)点。 此外,在“Catalina”的MBeans部分中可以获得一些信息,并钻取其中,例如可以看到某个Servlet收到了多少个请求。 这不完全符合我们对第(2)项的要求,但至少给我们提供了一些信息。 那里似乎有很多信息,但使用JConsole难以解释。 也许有更好的工具可以解释Tomcat公开的MBeans。
(1) 收集关于运行应用程序的web容器的虚拟机的通用信息(例如内存和线程)。
(2) 监控应用程序的“状态”。 这比较模糊,但至少我们想知道Web应用程序是否仍然存活并能够响应请求。
(3) 将来,我们希望收集更多特定于我们的应用程序的信息。 同样,这也很模糊,但可以假设我们可能希望将应用程序内部收集的某些统计信息提供给支持人员。
通常,Web应用程序将部署在Tomcat 5.5或6环境中。 在网上快速搜索后发现,可以为Tomcat启用JMX,然后可以使用JConsole连接到服务器。 这给了我们许多基本信息,解决了第(1)点。 此外,在“Catalina”的MBeans部分中可以获得一些信息,并钻取其中,例如可以看到某个Servlet收到了多少个请求。 这不完全符合我们对第(2)项的要求,但至少给我们提供了一些信息。 那里似乎有很多信息,但使用JConsole难以解释。 也许有更好的工具可以解释Tomcat公开的MBeans。
对于第(3)点,乍一看似乎我们可以编写自己的MBeans并将其提供给类似JConsole这样的工具。就我个人而言,这需要我学习有关JMX的知识,这是我很乐意做的,但我有一个顾虑。经过查找,我发现该主题的大多数教科书都已经好几年没有更新了,开源工具似乎也缺乏最新的更新。因此我的主要问题很简单。您对JMX有何意见?它是否有未来,或者它/已被其他东西取代?考虑到我们已经拥有了Web应用程序,但我们正在从头开始为管理控制台构建,我们应该选择JMX还是有更合适且前景更好的东西?
我问这个问题并没有自己的利益,我只是想听听您的意见和经验。我相信没有一个正确的答案,但我认为进行有知情的讨论会很有用。
提前感谢,
亚当。