2016-07-25 22 views
1

Ich habe viel nach diesem gesucht, aber nichts gefunden, das meinen Bedürfnissen noch entspricht. Ich möchte einen eleganten Weg, um mit SNMP-Tabellen in Python zu arbeiten. Ich habe Pysnmp und Net-snmp Python-Bindungen betrachtet.Elegante und portable Möglichkeit, SNMP-Tabellen in Python zu behandeln

Im Moment arbeite ich mit net-snmp Bindings, da es einfacher scheint, Daten abzufragen, und es ist bereits leicht auf CentOS6 verfügbar, wo die Software laufen muss (Python 2.6), aber ich würde nicht Denken Sie daran, Pysnmp entweder zu installieren.

Was ich will ist jede Art von Objekt, das ich meine wichtigen Daten meiner Tabellenstruktur übergeben kann, wie Tabellenbasis OID, Index OID und Namen und Oids der Spalten, die ich interessiert. Ich möchte erhalten eine Datenstruktur zurück, die es sehr einfach macht, über die Zeilen zu iterieren, Listen von Einträgen irgendwelcher der Spalten usw. zu holen, alles ohne sich mit OIDs und Sachen zu beschäftigen, wirklich abstrahierend all dies weg.

Der Zweck davon ist, dass ich so wenig Code wie möglich verwenden möchte, um alle Daten aus einer SNMP-Tabelle abzufragen und damit zu arbeiten, würde ich gerne alle Kesselplatte Code in einem Modul haben, damit ich holen und arbeiten kann mit Daten einer SNMP-Tabelle in nur wenigen Codezeilen.

Was würden Sie mir vorschlagen? Meine eigene Abstraktion basierend auf pysnmp oder netsnmp schreiben? Gibt es etwas in der High Level API von pysnmp, das ich übersehen habe? Vielleicht ein Python-Modul, das eine der oben genannten abstrahiert, um den Zugriff auf die Daten zu erleichtern?

Wäre sehr froh, Ihre Ratschläge zu hören.

+0

Standards wie RFC3416 definieren die Ansätze, um "Tabellen-Traversal" durchzuführen. Sie sollten überprüfen, ob die Bibliothek, die Sie verwenden, etwas Ähnliches hat. Wenn nicht, sind sie immer noch ziemlich einfach zu implementieren. –

Antwort

0

von pysnmp Speaking gibt es zwei Komponenten, die für Sie von Interesse sein könnten:

  • ObjectType/ObjectIdentity Klassen MIB-Objekt darstellt und Handhabung OID < -> Symbol < -> Index und Werttypen Angelegenheiten
  • Hoch -Niveau API Betrieb über Objecttype Instanzen

an der Spitze dieser beiden Komponenten können Sie read/modify MIB-Objekt s beziehen sich auf sie durch ihre MIB-Namen und symbolischen Indizes, z. nichts über die beteiligten OIDs wissen. Die ObjectType-Klasse würde Werte zwischen ihrer benutzerfreundlichen Repräsentation und Basis-SNMP-Typen umwandeln.

Die Pysnmp-Bibliothek würde auf Python 2.6 funktionieren.