用于Java Mission Control的基于命令行的守护程序?备择方案?

时间:2016-05-12 18:30:08

标签: java monitoring daemon jmx jmc

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

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

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

谢谢! :)

2 个答案:

答案 0 :(得分:4)

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

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

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

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

答案 1 :(得分:0)

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

APM:AppDynamics(最深的一群),New Relic,Ruxit Java开发人员工具:Takipi,Fusion Reactor,Javosize