2013-07-01 2 views
0

Im новичка в SNMP, но я собираюсь сделать несколько простых приложения мониторинга с помощью SNMP и PYSNMPКак сделать пользовательский MIB PYSNMP

Я хочу, чтобы следить за мой агент с моим обычаем MIB (потому что, когда я запустить некоторый MIB , он не может работать с PYSNMP), я прочитал документацию PYSNMP, но, похоже, мне не помогает,

Можете ли вы показать мне, как легко настроить пользовательский MIB PYSNMP? так что я могу использовать его как в менеджера и агента стороны :)

Спасибо


спасибо за ваш ответ я уже читал эти Tuts, но мой МИБ до сих пор не может попасть в цель,

Я хочу, чтобы прочитать мой диск Total на мой раздел, так вот мой MIB кОД:

DISKTOTAL-MIB DEFINITIONS ::= BEGIN 

IMPORTS 
     OBJECT-TYPE, Integer32, NOTIFICATION-TYPE 
        FROM SNMPv2-SMI 
; 

internet OBJECT IDENTIFIER ::= { iso(1) org(3) dod(6) 1 } 
enterprises OBJECT IDENTIFIER ::= { internet private(4) 1 } 
ucdavis OBJECT IDENTIFIER ::= { enterprises 2021 } 
diskcheck OBJECT IDENTIFIER ::= { ucdavis 9 } 
snmpdiskcheck OBJECT IDENTIFIER ::= { diskcheck 1 } 
totaldisk OBJECT IDENTIFIER ::= { snmpdiskcheck 6 } 

diskTotal OBJECT-TYPE 
    SYNTAX Integer32 
    MAX-ACCESS read-only 
    STATUS current 
    DESCRIPTION "Total size of disk on partition." 
    ::= { totaldisk 1 } 

END 

после генерации этого кода, вот мой МИБ в ру

# PySNMP SMI module. Autogenerated from smidump -f python DISKTOTAL-MIB 
# by libsmi2pysnmp-0.1.3 at Wed Jul 3 01:30:48 2013, 
# Python version sys.version_info(major=2, minor=7, micro=3, releaselevel='final', serial=0) 

# Imports 

(Integer, ObjectIdentifier, OctetString,) = mibBuilder.importSymbols("ASN1", "Integer", "ObjectIdentifier", "OctetString") 
(NamedValues,) = mibBuilder.importSymbols("ASN1-ENUMERATION", "NamedValues") 
(ConstraintsIntersection, ConstraintsUnion, SingleValueConstraint, ValueRangeConstraint, ValueSizeConstraint,) = mibBuilder.importSymbols("ASN1-REFINEMENT", "ConstraintsIntersection", "ConstraintsUnion", "SingleValueConstraint", "ValueRangeConstraint", "ValueSizeConstraint") 
(Bits, Integer32, Integer32, MibIdentifier, NotificationType, MibScalar, MibTable, MibTableRow, MibTableColumn, TimeTicks,) = mibBuilder.importSymbols("SNMPv2-SMI", "Bits", "Integer32", "Integer32", "MibIdentifier", "NotificationType", "MibScalar", "MibTable", "MibTableRow", "MibTableColumn", "TimeTicks") 

# Objects 

internet = MibIdentifier((1, 3, 6, 1)) 
enterprises = MibIdentifier((1, 3, 6, 1, 4, 1)) 
ucdavis = MibIdentifier((1, 3, 6, 1, 4, 1, 2021)) 
diskcheck = MibIdentifier((1, 3, 6, 1, 4, 1, 2021, 9)) 
snmpdiskcheck = MibIdentifier((1, 3, 6, 1, 4, 1, 2021, 9, 1)) 
totaldisk = MibIdentifier((1, 3, 6, 1, 4, 1, 2021, 9, 1, 6)) 
diskTotal = MibScalar((1, 3, 6, 1, 4, 1, 2021, 9, 1, 6, 1), Integer32()).setMaxAccess("readonly") 
if mibBuilder.loadTexts: diskTotal.setDescription("Total size of disk on partition.") 

# Augmentions 

# Exports 

# Objects 
mibBuilder.exportSymbols("DISKTOTAL-MIB", internet=internet, enterprises=enterprises, ucdavis=ucdavis, diskcheck=diskcheck, snmpdiskcheck=snmpdiskcheck, totaldisk=totaldisk, diskTotal=diskTotal) 

Но, когда я попытался вызвать snmpget: snmpget -v 2c -c public localhost .1.3.6.1.4.1.2021.9.1.6.1

я нашел:

iso.3.6.1.4.1.2021.9.1.6.1 = No Such Instance currently exists at this OID 

спасибо

ответ

1

С PySNMP у вас есть MIB текстовый файл преобразуется в код Python, который обслуживает обе стороны менеджера и агента вашего SNMP-приложения. Преобразование выполняются с smidump & libsmi2pysnmp инструментами, как это:

$ cat YOUR-MIB.txt | smidump -f python | libsmi2pysnmp > YOUR-MIB.py 

распределения См PySNMP для небольшого скрипта автоматизации (инструменты/встроенного pysnmp-МВБ).

Как только вы используете Pythonized MIB, сторона менеджера может использовать его для целей визуализации (представлять OID в словах, преффицировать значения). Приложение-агент может расширить Pythonized MIB, добавив листовые объекты, которые имеют доступ к значениям в хост-системе, которой вы хотите управлять.

Вот similar question on Agent-side implementation и a blog post on PySNMP MIB conversion process

вам действительно нужно реализовать как менеджер & Агент Apps ли?

Смежные вопросы