【问题标题】:How JMX objects are mapped into SNMP OIDs?JMX 对象如何映射到 SNMP OID?
【发布时间】:2011-04-13 17:49:10
【问题描述】:

我有一个用 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?有什么想法吗?

【问题讨论】:

    标签: spring monitoring jmx snmp apache-camel


    【解决方案1】:

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

    根据"JVM Monitoring: JMX or SNMP?",您只能访问JVM-MANAGEMENT-MIB.mib中定义的内容

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

    【讨论】:

    • 很好的发现。谢谢。我看了那篇文章,但不知何故,那句话并没有引起我的注意。从我所做的测试来看,只有标准的 JVM JMX 属性通过 SNMP 公开。太糟糕了:(
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

      【讨论】:

      • 好吧,我认为它确实提供了集成,但我的问题是如何从 JMX id 中找出 OID(SNMP 标识符)? :)
      • 顺便说一句,我并不想回答这个问题。只是希望您可以发表评论,并将其作为与答案相同的“可见性级别”。因为当人们添加 cmets 时,很容易错过。
      • 公平 :) 感谢您的评论。
      猜你喜欢
      • 1970-01-01
      • 2022-01-13
      • 1970-01-01
      • 2020-09-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-11
      • 1970-01-01
      相关资源
      最近更新 更多