【问题标题】:pySNMP Agent with custom mib loaded from file具有从文件加载的自定义 mib 的 pySNMP 代理
【发布时间】:2018-09-13 13:31:00
【问题描述】:

我这几天一直在寻找解决问题的方法。

我应该实现一个与 SNMP v2c 兼容的 SNMP 代理,但在我实现目标的过程中,我一直坚持编写一个可以为具有预定义 MIB 文件的管理器提供服务的代理。

有什么方法可以让我将 mib 文件加载到我的 python 程序中并让它为 mib 中的 OID 提供服务。当然,我知道我需要实现一些机制来随着现实世界中的值的变化而更新 OID 的值。

我一直在查看示例并阅读http://snmplabs.com/pysnmp/ 的文档,但我似乎无法找到一个好的解决方案,并且 git 存储库中的一些示例似乎已损坏。此外,我在堆栈溢出方面发现的所有类似问题似乎也已过时。

希望有人能给我指出一个可以帮助我的例子。

【问题讨论】:

    标签: python snmp pysnmp mib


    【解决方案1】:

    要记住的一点是,MIB 文件确实包含您可以为您的经理提供的任何值。 MIB 只是一个模式,可以这么说。

    因此,您可能需要做的是“实例化” MIB,例如做两件事:

    1. 根据 MIB 中描述的 OID 创建一堆 OID
    2. 将一些静态值或回调附加到 pull the actual values 到管理器

    让我们看看 pysnmp 存储库中有什么问题?我很想解决这个问题。 ;-)

    【讨论】:

    • 网站上有没有很好的例子?如果我有自定义数据类型 NonNegativeInteger ::= TEXTUAL-CONVENTION 甚至只是 DisplayString 我该如何定义这些?
    • 请记住,TEXTUAL-CONVENTION 主要用于在接收端(例如 SNMP 管理器)漂亮地呈现值。以 MAC 地址为例。在 SNMP 级别上,它被定义为八位字节序列,而 SNMP 管理器将使用 MIB 定义将其格式化为传统的人类友好形式(xx:xx:xx:xx:xx:xx)。您的代理会更好地处理“原始”值(属于基本 SNMP 类型,例如字符串或整数),而不是漂亮地格式化。所以你可以完全忽略 TEXTUAL-CONVENTION。 ;-)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-29
    相关资源
    最近更新 更多