#!/usr/bin/python # 2017-4-14 first version # Author: DiXingYu import sys import getopt import netsnmp import time opts, args = getopt.getopt(sys.argv[1:], 'H:C:', [ 'host=', 'community=', 'help' ] ) for option, value in opts: if option in ['--help']: print """ usage:%s -H host ip address -C snmpv2 community """ sys.exit() elif option in ['--host', '-H']: hosts = value elif option in ['--community', '-C']: communitys = value WarningNum = 0 CriticalNum = 0 # Check_WLC_TEMP # The CISCO WLC datasheet show the wlc operating tempture is 0-40, so the min is 5, and the max is 40 temp_min = 5.0 temp_max = 40.0 temp_raw = netsnmp.snmpget(netsnmp.Varbind('.1.3.6.1.4.1.14179.2.3.1.13.0'),Version = 2,DestHost=(hosts),Community=(communitys)) temp = float(temp_raw[0]) # Check_WLC_CPU cpu_warn = 60.0 cpu_crit = 90.0 cpu_raw = netsnmp.snmpget(netsnmp.Varbind('.1.3.6.1.4.1.14179.1.1.5.1.0'),Version = 2,DestHost=(hosts),Community=(communitys)) cpu = float(cpu_raw[0]) # Check_WLC_MEMORY mem_warn = 70.0 mem_crit = 95.0 mem_used = netsnmp.snmpget(netsnmp.Varbind('.1.3.6.1.4.1.14179.1.1.5.3.0'),Version = 2,DestHost=(hosts),Community=(communitys)) mem_util = round(float(mem_used[0]) / 710816.0, 2) * 100 # The Exit if mem_util > mem_warn and mem_util < mem_crit: WarningNum = WarningNum + 1 print "Warning: The WLC Memory utilization is high, the utilization is %.1f%%"%mem_util,'|' "CPU_utilization=%.1f%%"%cpu, "Memory_utilization=%.1f%%"%mem_util,"Tempture=%.1f"%temp if mem_util > mem_crit: CriticalNum = CriticalNum + 1 print "Critical: The WLC Memory utilization is too high, the utilization is %.1f%%"%mem_util,'|' "CPU_utilization=%.1f%%"%cpu, "Memory_utilization=%.1f%%"%mem_util,"Tempture=%.1f"%temp if temp < temp_min: WarningNum = WarningNum + 1 print "Warning: The WLC temp is low, temp is %.1f"%temp ,'|' "CPU_utilization=%.1f%%"%cpu, "Memory_utilization=%.1f%%"%mem_util,"Tempture=%.1f"%temp if temp > temp_max: WarningNum = WarningNum + 1 print "Warning: The WLC temp is high, temp is %.1f"%temp ,'|' "CPU_utilization=%.1f%%"%cpu, "Memory_utilization=%.1f%%"%mem_util,"Tempture=%.1f"%temp if cpu > cpu_warn and cpu < cpu_crit: WarningNum = WarningNum + 1 print "Warning: The WLC CPU utilization is high, the utilization is %.1f%%"%cpu,'|' "CPU_utilization=%.1f%%"%cpu, "Memory_utilization=%.1f%%"%mem_util,"Tempture=%.1f"%temp if cpu > cpu_crit: CriticalNum = CriticalNum + 1 print "Critical: The WLC CPU utilization is too high, the utilization is %.1f%%"%cpu,'|' "CPU_utilization=%.1f%%"%cpu, "Memory_utilization=%.1f%%"%mem_util,"Tempture=%.1f"%temp # THE OK OUTPUT if CriticalNum > 0: sys.exit(2) if WarningNum > 0: sys.exit(1) else: print "OK: The WLC CPU utilization is %.1f%%,"%cpu,"Memory utilization is %.1f%%,"%mem_util,"Tempture is %.1f,"%temp,'|' "CPU_utilization=%.1f%%"%cpu, "Memory_utilization=%.1f%%"%mem_util,"Tempture=%.1f"%temp sys.exit(0)