-
python et SNMP(pySNMP)
Bonjour,
Je suis actuellement sur un projet d'interrogation de switches, je dois donc me servir du protocol SNMP en me servant également du python( je suis en python 3.2.2), aillant pris conscience du protocol SNMP, j'aimerai donc pouvoir tester que l'agent est joignable et que je puisse donc recevoir une information en retour.
Pour m'assurer d'avoir un agent et de pouvoir effectuer cette opération sans problème de configuration j'ai voulu tester sur un agent public sur ce site: http://pysnmp.sourceforge.net/quickstart.html
avec le script proposé :
from pysnmp.entity.rfc3413.oneliner import cmdgen
cmdGen = cmdgen.CommandGenerator()
errorIndication, errorStatus, errorIndex, varBinds = cmdGen.getCmd(
cmdgen.CommunityData('public'),
cmdgen.UdpTransportTarget(('10.137.48.1', 161)),
cmdgen.MibVariable('SNMPv2-MIB', 'sysName', 0)
)
# Check for errors and print out results
if errorIndication:
print(errorIndication)
else:
if errorStatus:
print('%s at %s' % (
errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex)-1] or '?'
)
)
else:
for name, val in varBinds:
print('%s = %s' % (name.prettyPrint(), val.prettyPrint()))
Seulement lorsque que je run sur le shell :
>>> ================================ RESTART ================================
>>>
No SNMP response received before timeout
Etant débutant dans ce qui est réseau, scripts, SNMP etc... Je n'arrive pas à comprendre d'où l'erreur pourrait provenir, ai-je mal compris comment fonctionne un agent ?
Merci d'avance.
-
Bonjour,
tu dis vouloir tester sur un agent public, mais l'adresse IP de l'agent est une adresse privée, non routable sur internet. Le script fonctionne sur "demo.snmplabs.com".
Donc à mon avis le problème est que tu n'as pas d'agent SNMP activé à l'adresse 10.137.48.1 sur ton LAN...
-
Bonsoir, merci de votre réponse. Oui en effet j'ai testé sur un autre IP, mais j'avais également tester avec "demo.snmplabs.com", et je ne reçois aucune réponse. Serait-il possible que le proxy me bloque la réception des info ? que je puisse simplement envoyé ? Je précise que j'ai testé sous windows et que je passe sur linux bientot, serait-il par exemple possible de tester son agent sur sa machine local ? j'étais confu lors de l'installation de pySNMP, car j'avais 'touché' au SNMP via l'installation des composants windows et du coup je ne sais pas comment l'agent agis par rapport à cela. Désolé de ne pas être plus claire que cela, j'ai moi même quelques problèmes à comprendre le fonctionnement de ce système d'agent.
-
Si tu es sur un réseau d'entreprise, c'est tout à fait possible (je dirais même probable) que le SNMP vers Internet soit bloqué par un firewall. Même sur le réseau local, il se peut que l'accès SNMP soit filtré par une ACL sur les équipements, c'est à voir avec ton administrateur réseau.
Sinon, la communication avec un agent local devrait fonctionner, je ne vois pas de raison pour que ça pose un problème.
Mais tout cela n'a pas grand chose à voir avec Python.
-
En effet le problème était bien la ! Merci pour l'aide, je suis maintenant en train d'essayer TKMIB sous ubuntu avec le protocol snmpv3 vers un switch, il semblerait qu'il ne faut pas définir le groupe est-ce normal ?