【问题标题】:Trying to understand what snmp4jAgentJMX does and if it suits what I need试图了解 snmp4jAgentJMX 的作用以及它是否适合我的需要
【发布时间】:2009-11-30 12:09:02
【问题描述】:

我一直在尝试为我的 JMX Enabled 应用程序编写一个 snmp 包装代理,它将把 JMX MBean 中布局的所有信息转换为 SNMP 属性。

在尝试了解从哪里开始以及使用什么时,我有点不知所措。根据我的阅读,snmp4j 可能是 Java 的 snmp 库,但我无法理解 Snmp4jAgent 中的代码示例。

另外,通过阅读作者网站上的description for SNMP4JAgentJMX,我认为 Snmp4jAgentJMX 可以帮助我编写这个代理,但我不明白如何使用它。实际上,查看示例代码(org.snmp4j.agent.mo.jmx.example.JMXTestAgent)我找不到代码向任何 MBean 或 JMX 工厂注册的部分,这导致我假设我不明白这段代码的作用是正确的。

对于没有 SNMP 经验的人,我非常感谢代码示例和/或一些教程或文档。

谢谢!!

【问题讨论】:

    标签: java jmx snmp


    【解决方案1】:

    jmx2snmp 提供的 SNMP 代理不完整,有错误。编写 SNMP 代理几乎没有什么工作要做。例如,不正确支持 SNMPv1(错误状态)。不支持 GETBULK(对于 SNMPv2 是必需的)。 GETNEXT 调用代理中不存在的 OID,不返回下一个 OID,而是返回 noSuchObject(绝不能在 GETNEXT 上返回),根本不支持 SET,很可能还有许多其他问题。

    因此,我建议将 SNMP4J-AgentJMX 与 SNMP4J-Agent 和 SNMP4J(作为其中的作者)结合使用。示例代理在方法 addJvmManagementMibInstrumentaton 中的 MIB 检测类 JvmManagementMibInst 的初始化期间执行 JMX 和 SNMP 之间的映射。

    您将在此处找到大量如何进行描述性映射的示例。如果您已经有了 MIB 规范,那么您可以使用 AgenPro 生成 Mib 存根类,并且您基本上只需要执行示例 JvmManagementMibInst.java 类中所示的映射。

    如果您还没有 MIB,那么我还建议您使用 MIB 设计器工具(如 MIB Designer)来创建 MIB,因为这很可能是一个交互过程,并且您必须在创建 MIB 时重新构建 MIB发现映射到 JMX 的更简单方法。

    【讨论】:

    • 哇。这是3.5年前!但我喜欢你的回答:-)
    【解决方案2】:

    经过大量研究,我发现this 包使用 snmp4j 代理来包装 JMX 并提供 SNMP 服务。

    使用这个包,您所要做的就是注册 MBean 并更改 JMX-SNMP 映射。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多