-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathjuniper_cpu
46 lines (39 loc) · 1.69 KB
/
juniper_cpu
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/python
# OIDs used:
# JUNIPER-MIB::jnxOperatingDescr .1.3.6.1.4.1.2636.3.1.13.1.5
# JUNIPER-MIB::jnxOperatingCPU .1.3.6.1.4.1.2636.3.1.13.1.8
# JUNIPER-MIB::jnxBoxDescr.0 .1.3.6.1.4.1.2636.3.1.2.0
# Scan function looks for 'Juniper' in jnxBoxDescr
# Author: Mike Julian - [email protected] - http://mikejulian.com
juniper_cpu_default_levels = (80.0, 90.0)
def inventory_juniper_cpu(info):
fruTypesCPU = ['PIC', 'FPC', 'Routing Engine']
inventory = []
for line in info:
for fru in fruTypesCPU:
if line[0].startswith(fru):
inventory.append((line[0], "juniper_cpu_default_levels"))
return inventory
def check_juniper_cpu(item, params, info):
for cpu, utilization in info:
if item == cpu:
util = float(utilization)
infotext = " - %2.1f%% Utilization" % util
warn, crit = params
perfdata = [("util", util, warn, crit, 0, 100)]
if util >= crit:
return (2, "CRIT" + infotext + " (critical at %d%%)" % crit, perfdata)
elif util >= warn:
return (1, "WARN" + infotext + " (warning at %d%%)" % warn, perfdata)
else:
return (0, "OK" + infotext, perfdata)
return (3, "UNKNOWN")
check_info["juniper_cpu"] = {
"check_function" : check_juniper_cpu,
"inventory_function" : inventory_juniper_cpu,
"service_description" : "CPU Utilization: ",
"has_perfdata" : True,
"group" : "cpu_utilization",
"snmp_scan_function" : lambda oid: "Juniper" in oid(".1.3.6.1.4.1.2636.3.1.2.0"),
"snmp_info" : ( ".1.3.6.1.4.1.2636.3.1.13.1", [ 5, 8 ] ),
}