8

我被要求调查 Oracle Java Mission Control,以便在某些条件下可以监视服务器端 Java 应用程序并采取行动(例如,发出和记录警报、保存飞行记录)。Java Mission Control 的触发系统(您可以在其中指定条件和操作)满足我们的需求,但它似乎取决于正在运行的 GUI 应用程序(“Oracle Java Mission Control”),这意味着触发器不是受监控的 JMX 服务器的责任。是这样吗?通常通过终端访问许多服务器...

有没有一种方法可以在无人参与的情况下从终端会话将 Java Mission Control 作为守护程序运行,同时保留并遵守任何指定的触发规则(例如,从 XML 文件导入)?

如果没有,是否有具有类似触发系统的竞争工具可以填补空白?

谢谢!:)

4

2 回答 2

4

目前没有,没有 GUI 就无法运行 JMC。你不是第一个想要这样做的人。

一种选择是在另一台机器上运行 JMC,并使其连接到许多服务器,这当然需要运行远程 JMX 代理等。

我们一直在讨论服务器端触发器/规则,但是 AFAIK,它没有计划用于任何 JDK 版本。

可以从代码中转储飞行记录,因此您可以编写自己的小代理,使用 DiagnosticMBean 在同一台机器上的另一个 JVM 上或远程执行此操作。我很确定有些人如何解决同样的问题。也可以在代码中解析和分析飞行记录。如果您对这种方法感兴趣,我敢肯定有一些示例代码,当然它比 JMC 可以作为守护程序运行更多的工作:/

于 2016-05-13T07:33:52.520 回答
0

您可能应该看看 APM 工具,而不是使用 JMC 进行监控。该产品非常薄弱,引入了大量开销(使其不适合生产)并产生很多问题。还有一些以开发人员为中心的工具可用。

APM:AppDynamics(最深的)、New Relic、Ruxit Java 开发工具:Takipi、Fusion Reactor、Javosize

于 2016-05-14T14:09:25.123 回答