#!/usr/bin/python # # 2011.05.17 # Vadim Nosovsky # vlad@nobulus.com # cisco_mem_default_values = (90, 95) def inventory_cisco_mem(checkname, info): #return [ (line[0], None) for line in info if len(line) == 2 ] #for line in info: # print len(line) #print info #return [ (line[0], None) for line in info if len(line) == 4 ] inventory = [] #inventory.append(("CPUTotalMonIntervalValue", "", "cisco_mem_default_values")) inventory.append(("Memory", "", "cisco_mem_default_values")) return inventory #return [ (line[0], None) for line in info ] def check_cisco_mem(item, params, info): warn, crit = params for line in info: #this_item = line[0] != '' and line[0] or line[5] #if this_item == item: mem_used = int(line[0]) mem_free = int(line[1]) percent_used = mem_used*100/(mem_used+mem_free) perfdata = [ ("mem_used", mem_used), ("mem_free", mem_free) ] memtext = "used: %.f Kb (%.f %%), free: %.f Kb" % (mem_used/1024, percent_used, mem_free/1024) if percent_used >= crit: return (2, "CRITICAL - Memory: %s (critical at %d %%)" % (memtext, crit), perfdata) elif percent_used >= warn: return (1, "WARNING - Memory: %s (warning at %d %%)" % (memtext, warn), perfdata) else: return (0, "OK - Memory: %s (warning at %d %%)" % (memtext, warn), perfdata) #return (0, "OK - Memory: %s" % (memtext), perfdata) #return (0, "OK - Memory", perfdata) #return (0, "OK - Memory") return (3, "UNKNOWN - oh no! no Memory found. how is that possible???") check_info['cisco_mem'] = (check_cisco_mem, "%s", 1, inventory_cisco_mem) snmp_info['cisco_mem'] = ( ".1.3.6.1.4.1.9.9.48.1.1.1", [ 5, 6 ] ) snmp_scan_functions['cisco_mem'] = \ lambda oid: "cisco" in oid(".1.3.6.1.2.1.1.1.0").lower() and \ oid(".1.3.6.1.4.1.9.9.48.1.1.1.2.1") != None