3

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

4

2 回答 2

6

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

如果您想远程访问 JMX 公开的信息,您可以使用 Tomcat 的managerwebapp 以及包含的jmxproxyservlet,它允许您远程执行简单的查询来获取(和设置)JMX 属性。

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

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

我们已经成功地将 Nagios 与 Tomcat 管理器的jmxproxyservlet 结合起来。它可能会在很长一段时间内满足您的需求。

于 2012-06-15T20:50:45.817 回答
1

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

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

这是JmxClient 的 javadocs

于 2012-06-15T19:50:31.747 回答