PySNMP Ответ не получен до истечения времени ожидания - даже с примерами документации - PullRequest
0 голосов
/ 19 марта 2019

Я установил PySNMP (версия 4.4.6) и пытаюсь вызвать следующую функцию (часть более крупного класса):

def walk(self):
    #Walks OID to scavenge for information.
    oids={}
    for (errorIndication,
         errorStatus,
         errorIndex,
         varBinds) in nextCmd(SnmpEngine(),
                              CommunityData(self.cs),
                              UdpTransportTarget((self.device.split(".")[0], 161), timeout=60, retries=0),
                              ContextData(),
                              ObjectType(ObjectIdentity("1.3.6.1.4.1.14179.1.2.5.5"))):
        print((errorIndication,
         errorStatus,
         errorIndex,
         varBinds))

и неоднократно получаю следующий вывод:

(RequestTimedOut('No SNMP response received before timeout',),

Я провел тройную проверку, чтобы убедиться в правильности строки моего сообщества, версии SNMP, имени устройства, порта и OID.Я изменил переменную тайм-аута транспорта 60 секунд без удачи.Сначала я подумал, что это может быть проблема с брандмауэром, но затем я попытался запустить простой пример, включенный в документацию:

from pysnmp.hlapi import *

g = getCmd(SnmpEngine(),
       CommunityData('public'),
       UdpTransportTarget(('demo.snmplabs.com', 161)),
       ContextData(),
       ObjectType(ObjectIdentity('SNMPv2-MIB', 'sysDescr', 0)))

print(next(g))

и получить точно такой же вывод.Кто-нибудь знает, что может быть причиной этого?К сожалению, я на сервере с несколькими правами администратора, поэтому я не могу копаться в файлах модуля, меняя что-либо.Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 20 марта 2019

Ваш код выглядит хорошо. Пока вы получаете правильное имя хоста / IP из self.device.split(".")[0].

Возможно, вы не получаете ответ от агента SNMP по той или иной причине. Я бы попробовал публичный агент SNMP:

$ snmpwalk -v2c -c public demo.snmplabs.com 1.3.6
SNMPv2-MIB::sysDescr.0 = STRING: Linux zeus 4.8.6.5-smp #2 SMP Sun Nov 13 14:58:11 CDT 2016 i686
...

Чтобы убедиться, что у вас нет проблем с подключением / брандмауэром. Попробуйте также snmpwalk против вашего местного агента SNMP. Если вы не можете установить Net-SNMP, попробуйте snmpclitools для проведения этого эксперимента.

...