在Python中处理SNMP表的优雅且可移植的方式

时间:2016-07-25 19:22:15

标签: python snmp net-snmp pysnmp

我一直在寻找这个,但找不到任何符合我需求的东西。我想要一种优雅的方式来处理Python中的SNMP表。我查看了pysnmp和net-snmp python绑定。

目前我正在使用net-snmp绑定,因为查询数据似乎更容易,而且已经很容易在CentOS6上运行,软件必须运行(Python 2.6),但我不介意安装pysnmp。

我想要的是任何类型的对象,我可以移交我的表结构的重要数据,例如表格基础OID,索引OID以及我感兴趣的列的名称和oid。我想得到一个数据结构返回,可以很容易地对行进行迭代,获取任何列的条目列表等,所有这些都不需要再烦恼OID和东西了,真的抽象出所有这些。

这样做的目的是我希望尽可能少地使用代码来查询SNMP表中的所有数据并使用它,我希望将所有样板代码放在一个模块中,以便我可以获取和使用只需几行代码即可获得SNMP表的数据。

你建议我做什么?基于pysnmp或netsnmp编写自己的抽象?我可能错过了pysnmp的高级API中的任何内容吗?也许是一个python模块,它抽象上面提到的一个,使它更容易访问数据?

很高兴听到您的意见。

1 个答案:

答案 0 :(得分:0)

说到pysnmp,您可能会对以下两个组件感兴趣:

    表示MIB对象和处理OID< - >符号< - >索引和值类型的
  • ObjectType/ObjectIdentity类事项
  • 对ObjectType实例进行操作的高级API

除了这两个组件之外,你可以read / modify MIB对象通过​​它们的MIB名称和符号索引引用它们,例如对所涉及的OID一无所知。 ObjectType类将在人性化表示和基本SNMP类型之间转换值。

pysnmp库可以在Python 2.6上运行。