Faire une interrogation SNMP basique

pour jouer avec une super carte areca, je me suis dis que j'allais lui pythoner les yeux.

dans un premier temps, voici ma fonction qui envoit l'iod et retournes les infos kivonbien

from pysnmp import asn1, v2c
from pysnmp import role
 
def request_send(oid):
    client = role.manager((sys.argv[2], int(PORT)))
    client.timeout = 5
    req = v2c.GETREQUEST()
    req['encoded_oids'] = [ asn1.OBJECTID().encode(oid) ]
    (rawrsp, src) = client.send_and_receive(
           req.encode(community=sys.argv[1])
    )
    rsp = v2c.GETRESPONSE()
    rsp.decode(rawrsp)
    vals = map(lambda x: x[0](), map(asn1.decode, rsp['encoded_vals']))
    return vals

du coup pour recup la temperature c'est :

def check_raid_state():
    state_oid = ".1.3.6.1.4.1.18928.1.1.4.1.1.4.0"
    ret = request_send(state_oid)
    if ret[0].lower() != 'normal':
    »   raise(2, "ALERT : Raid State changed to %s" % ret[0])

Apres suivent les OID on peut imaginer tout un tas de choses …

python/snmp.txt · Last modified: 2010/01/12 13:29 (external edit)
www.chimeric.de Creative Commons License Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0