3

我有一个用 Apache Camel 编写的独立 Java 应用程序,我想通过 SNMP 对其进行监控。我认为 Camel 使用 Spring 的 JMX(@ManagedAttribute、@ManagedResource 等),我可以在 JDK jconsole 中看到各种与 Camel 相关的对象。当我在启用 SNMP 的情况下运行我的应用程序时:

-Dcom.sun.management.snmp.interface=127.0.0.1
-Dcom.sun.management.snmp.port=16101 
-Dcom.sun.management.snmp.acl=false

我可以用 SNMP 浏览器连接到它,我也可以在那里看到很多东西。到目前为止一切顺利,但为了让我使用它,我需要知道或弄清楚 JMX 对象是如何映射到 SNMP OID 的。有没有办法找出它是如何完成的,或者至少是由谁完成的——Spring、JVM?有什么想法吗?

4

3 回答 3

1

我不是 100% 确定我在 Google 上找到的信息(顺便说一句……第一次击中嗯!;))是否仍然相关,我也没有办法四处寻找和验证(公司,锁定工作站……叹息!)但是,看起来默认的 SNMP 实现不是很可扩展。

根据“JVM 监控:JMX 还是 SNMP?” 您只能访问JVM-MANAGEMENT-MIB.mib中定义的内容

如果事情同时发生变化,我会很感兴趣...

于 2011-04-19T10:43:11.000 回答
1

我认为您不能只通过 SNMP 公开带注释的 Spring 管理的 bean。您列出的命令行参数仅用于监控有关 JVM 本身的指标,请参阅SNMP 监控和管理;因此可能没有办法找出OID,但您必须自己定义它们,大概是使用另一个成熟的 SNMP 框架或库。

于 2012-07-19T08:52:54.907 回答
0

Camel 使用 javax.management.MBeanServer 来注册 mbean。我不记得我们对 SNMP 做过任何事情。我假设 JMX 将提供开箱即用的集成,因为 JVM 有一个 SNMPAgent 应该桥接到 JMX。

于 2011-04-14T15:58:48.463 回答