使用JMX监视Tomcat服务器的简单工具

时间:2012-06-15 19:44:58

标签: eclipse tomcat jmx

我是一名正在实习的计算机科学专业的学生。我的老板让我写一个简单的工具来监控Tomcat服务器。我刚刚开始这个项目,所以我基本上只是在玩,看看事情是如何运作的。我想创建一个简单的jsp页面,显示一些基本的JMX查询的结果。我正在使用Eclipse IDE。有人可以给我一些入门提示吗?

2 个答案:

答案 0 :(得分:5)

你绝对不需要在这里重新发明轮子。您可以从JDK附带的jconsole开始:只需运行jconsole [pid]jconsole将连接到(本地)正在运行的进程,让您通过JMX观察所有内容。

如果要远程访问暴露于JMX的信息,可以使用Tomcat的manager webapp以及包含的jmxproxy servlet,它允许您远程执行简单查询以获取(和设置)JMX属性

还有其他功能更全面的项目,例如Jolokia(http://www.jolokia.org/)可以做类似的事情。

假设您正在使用类似Nagios的东西来自动观察您的Tomcat实例,那么您肯定不想这样做就可以启动JVM并建立远程(甚至本地)JMX连接以检查单个JMX属性(然后这样做5次观察5种不同的属性,然后每5分钟,或1分钟,或其他什么做5个样本)。相反,您可能希望使用如上所述的代理。

我们在将Nagios与Tomcat管理器的jmxproxy servlet相结合方面取得了巨大成功。它可能会在很长一段时间内满足您的需求。

答案 1 :(得分:1)

在以编程方式使用JMX方面,有许多客户端类。这是我的SimpleJMX project。有了它,您可以使用JmxClient对象连接并询问远程JVM:

JmxClient client = new JmxClient("remote.sever.name", remotePortNumber);
Set<ObjectName> objectNameSet = client.getBeanNames();
...

以下是javadocs for JmxClient