dinsdag 20 april 2010

Week 8 (27/03 - 03/04)

Deze week ben ik begonnen met SNMP. SNMP is een manier om informatie zoals netwerkinterfaces, uptime, system time, beschrijving, naam, enz... op te halen van een bepaalde asset in het netwerk.

Het CMDB zal bij het opvragen van de informatie van een asset die aanvraag uitvoeren en zo de system time & de uptime gaan invullen in het management systeem.

Hieronder ziet u hoe het CMDB toont of de info werd opgehaald of niet:



















De aanvragen van de info gebeuren via OID's. Dit zijn een reeks getallen waaraan de asset weet welke info hij moet teruggeven. Enkele voorbeelden:
  • .1.3.6.1.2.1.1.3 = System Uptime (TimeTicks)
  • .1.3.6.1.2.1.1.1 = System Description
  • .1.3.6.1.2.1.1.5 = System Name
Met behulp van de klasse SNMPWalk.py en de klasse SNMPGet.py (hieronder weergegeven) werd het dan mogelijk om die informatie te gaan opvragen aan een asset.

SnmpGet.py:

from pysnmp import role, v2c, asn1

class SNMPGet:

def __init__(self, host, port, community):
self.host = host
self.port = port
self.community = community

def snmpget (self, oid):
req = v2c.GETREQUEST ()
encoded_oids = map (asn1.OBJECTID().encode, [oid,])
req['community'] = self.community
tr = role.manager ((self.host, self.port))
rsp = v2c.RESPONSE ()
(rawrsp, src) = tr.send_and_receive (req.encode (encoded_oids=encoded_oids))
rsp.decode (rawrsp)
oids = map (lambda x: x[0], map(asn1.OBJECTID ().decode, rsp['encoded_oids']))
vals = map (lambda x: x[0] (), map(asn1.decode, rsp['encoded_vals']))
return vals

Geen opmerkingen:

Een reactie posten