Added snell_iqh.
This commit is contained in:
7
src/snell_iqh/baseinfo.ini
Normal file
7
src/snell_iqh/baseinfo.ini
Normal file
@ -0,0 +1,7 @@
|
||||
[info]
|
||||
title = Snell IQH SNMP Checks
|
||||
author = Markus Birth
|
||||
description = SNMP based checks for the Snell IQH series frame controller.
|
||||
version = 2016.06.01.1
|
||||
version.min_required = 1.2.8p2
|
||||
download_url = https://github.com/mbirth/check_mk-plugins
|
46
src/snell_iqh/checks/snell_iqh_cpu
Normal file
46
src/snell_iqh/checks/snell_iqh_cpu
Normal file
@ -0,0 +1,46 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8; py-indent-offset: 4 -*-
|
||||
# _______ __ _ ____ __
|
||||
# | | \ | |___ \ / /
|
||||
# | | \| | __) | / /-,_
|
||||
# | | |\ |/ __/ /__ _|
|
||||
# |_______|_| \__|_____| |_|
|
||||
#
|
||||
# @author Markus Birth <markus.birth@weltn24.de>
|
||||
# MIBs: ftp://ftp.snellgroup.com/RollCall/SNMP_MIBs/
|
||||
|
||||
def inventory_snell_iqh_cpu(info):
|
||||
inventory = []
|
||||
for oidEnd, cpup in info:
|
||||
if cpup != "-":
|
||||
inventory.append( ("CPU Usage", None) )
|
||||
return inventory
|
||||
|
||||
def check_snell_iqh_cpu(item, _no_params, info):
|
||||
for oidEnd, cpup in info:
|
||||
if cpup != "-":
|
||||
cpup = int(cpup)
|
||||
message = "%s%%" % (cpup)
|
||||
if cpup > 98:
|
||||
status = 2
|
||||
elif cpup > 95:
|
||||
status = 1
|
||||
else:
|
||||
status = 0
|
||||
|
||||
perfdata = [ ("CPU_Usage", cpup, 95, 98, 0, 100) ]
|
||||
return status, message, perfdata
|
||||
|
||||
return 3, "%s not found in SNMP data." % item
|
||||
|
||||
check_info["snell_iqh_cpu"] = {
|
||||
"check_function" : check_snell_iqh_cpu,
|
||||
"inventory_function" : inventory_snell_iqh_cpu,
|
||||
"service_description" : "%s",
|
||||
"snmp_info" : (".1.3.6.1.4.1.7995.1.3.1", [ "429.1.1", "475.1.1" ], [
|
||||
OID_END, # "429.1.1.256" (IQH3) or "475.1.1.256" (IQH1)
|
||||
17240, # CPU Usage (%)
|
||||
]),
|
||||
"snmp_scan_function" : lambda oid: oid(".1.3.6.1.2.1.1.2.0").startswith(".1.3.6.1.4.1.7995.1.3"),
|
||||
"has_perfdata" : True
|
||||
}
|
58
src/snell_iqh/checks/snell_iqh_eth
Normal file
58
src/snell_iqh/checks/snell_iqh_eth
Normal file
@ -0,0 +1,58 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8; py-indent-offset: 4 -*-
|
||||
# _______ __ _ ____ __
|
||||
# | | \ | |___ \ / /
|
||||
# | | \| | __) | / /-,_
|
||||
# | | |\ |/ __/ /__ _|
|
||||
# |_______|_| \__|_____| |_|
|
||||
#
|
||||
# @author Markus Birth <markus.birth@weltn24.de>
|
||||
# MIBs: ftp://ftp.snellgroup.com/RollCall/SNMP_MIBs/
|
||||
|
||||
def inventory_snell_iqh_eth(info):
|
||||
inventory = []
|
||||
for oidend, lname, lstate, lspeed, llastchange, lerrors, ltrafficin, ltrafficout in info[0]:
|
||||
if lstate == "Active":
|
||||
inventory.append( ( lname, None) )
|
||||
return inventory
|
||||
|
||||
def check_snell_iqh_eth(item, _no_params, info):
|
||||
for oidend, lname, lstate, lspeed, llastchange, lerrors, ltrafficin, ltrafficout in info[0]:
|
||||
if lname == item:
|
||||
message = "%s with %s, Errors: %s (IN: %s / OUT: %s)" % (lstate, lspeed, lerrors, ltrafficin, ltrafficout)
|
||||
if lstate == "Active":
|
||||
status = 0
|
||||
else:
|
||||
status = 2
|
||||
|
||||
errorcount = int("0"+lerrors.split(" ")[0])
|
||||
tin = savefloat(ltrafficin.split(" ")[0])
|
||||
tout = savefloat(ltrafficout.split(" ")[0])
|
||||
|
||||
perfdata = [
|
||||
("Traffic_In", tin, None, None, 0, 100),
|
||||
("Traffic_Out", tout, None, None, 0, 100),
|
||||
("Errors", errorcount, None, None, 0, 100),
|
||||
]
|
||||
|
||||
return status, message, perfdata
|
||||
|
||||
return 3, "%s not found in SNMP data." % item
|
||||
|
||||
check_info["snell_iqh_eth"] = {
|
||||
"check_function" : check_snell_iqh_eth,
|
||||
"inventory_function" : inventory_snell_iqh_eth,
|
||||
"service_description" : "%s",
|
||||
"snmp_info" : [(".1.3.6.1.4.1.7995.1.3.1", [ "429.1.1", "475.1.1" ], [
|
||||
OID_END,
|
||||
2030, # lan1name ("FastEthernet0/1")
|
||||
2031, # lan1state ("Active")
|
||||
2032, # lan1speed ("100 Mbit/s Full Dup")
|
||||
2033, # lan1lastChange ("000:00:00:00")
|
||||
2034, # lan1errors ("0 in total")
|
||||
2035, # lan1trafficIn ("0.0 KBytes/sec")
|
||||
2036, # lan1trafficOut ("0.0 KBytes/sec")
|
||||
])],
|
||||
"snmp_scan_function" : lambda oid: oid(".1.3.6.1.2.1.1.2.0").startswith(".1.3.6.1.4.1.7995.1.3"),
|
||||
"has_perfdata" : True
|
||||
}
|
58
src/snell_iqh/checks/snell_iqh_fans
Normal file
58
src/snell_iqh/checks/snell_iqh_fans
Normal file
@ -0,0 +1,58 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8; py-indent-offset: 4 -*-
|
||||
# _______ __ _ ____ __
|
||||
# | | \ | |___ \ / /
|
||||
# | | \| | __) | / /-,_
|
||||
# | | |\ |/ __/ /__ _|
|
||||
# |_______|_| \__|_____| |_|
|
||||
#
|
||||
# @author Markus Birth <markus.birth@weltn24.de>
|
||||
# MIBs: ftp://ftp.snellgroup.com/RollCall/SNMP_MIBs/
|
||||
|
||||
def inventory_snell_iqh_fans(info):
|
||||
inventory = []
|
||||
for i in range(0, len(info)):
|
||||
for oidend, fname, fstate in info[i]:
|
||||
if fstate != "Not Used" and fname != "0":
|
||||
inventory.append( (fname, None) )
|
||||
return inventory
|
||||
|
||||
def check_snell_iqh_fans(item, _no_params, info):
|
||||
for i in range(0, len(info)):
|
||||
for oidend, fname, fstate in info[i]:
|
||||
if item == fname:
|
||||
message = "%s" % (fstate)
|
||||
if fstate == "" or fstate[:2] == "OK":
|
||||
status = 0
|
||||
else:
|
||||
status = 2
|
||||
|
||||
# perfdata = [ (("Fan %s" % (i+1)), float(vvolt), None, None, vmin, vmax) ]
|
||||
|
||||
return status, message
|
||||
return 3, "%s not found in SNMP data." % item
|
||||
|
||||
check_info["snell_iqh_fans"] = {
|
||||
"check_function" : check_snell_iqh_fans,
|
||||
"inventory_function" : inventory_snell_iqh_fans,
|
||||
"service_description" : "%s",
|
||||
"snmp_info" : [(".1.3.6.1.4.1.7995.1.3.1", [ "429.1.1", "475.1.1" ], [
|
||||
OID_END,
|
||||
2019, # fan1name
|
||||
2000, # fan1state ("OK:Low", "OK:Medium", "OK:High")
|
||||
]), (".1.3.6.1.4.1.7995.1.3.1", [ "429.1.1", "475.1.1" ], [
|
||||
OID_END,
|
||||
2044, # fan2name
|
||||
2043, # fan2state
|
||||
]), (".1.3.6.1.4.1.7995.1.3.1", [ "429.1.1", "475.1.1" ], [
|
||||
OID_END,
|
||||
2046, # fan3name
|
||||
2045, # fan3state
|
||||
]), (".1.3.6.1.4.1.7995.1.3.1", [ "429.1.1", "475.1.1" ], [
|
||||
OID_END,
|
||||
2048, # fan4name
|
||||
2047, # fan4state
|
||||
])],
|
||||
"snmp_scan_function" : lambda oid: oid(".1.3.6.1.2.1.1.2.0").startswith(".1.3.6.1.4.1.7995.1.3"),
|
||||
"has_perfdata" : False
|
||||
}
|
42
src/snell_iqh/checks/snell_iqh_faults
Normal file
42
src/snell_iqh/checks/snell_iqh_faults
Normal file
@ -0,0 +1,42 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8; py-indent-offset: 4 -*-
|
||||
# _______ __ _ ____ __
|
||||
# | | \ | |___ \ / /
|
||||
# | | \| | __) | / /-,_
|
||||
# | | |\ |/ __/ /__ _|
|
||||
# |_______|_| \__|_____| |_|
|
||||
#
|
||||
# @author Markus Birth <markus.birth@weltn24.de>
|
||||
# MIBs: ftp://ftp.snellgroup.com/RollCall/SNMP_MIBs/
|
||||
|
||||
def inventory_snell_iqh_faults(info):
|
||||
inventory = [("Faults", None)]
|
||||
return inventory
|
||||
|
||||
def check_snell_iqh_faults(item, _no_params, info):
|
||||
faults = False
|
||||
if len(info)>0 and len(info[0])>0:
|
||||
faults = info[0][1]
|
||||
|
||||
if faults:
|
||||
message = "%s" % (faults)
|
||||
if faults[:2] == "OK":
|
||||
status = 0
|
||||
else:
|
||||
status = 2
|
||||
# perfdata = [ ("Sessions", int(sesscount), None, None, 0, 100) ]
|
||||
|
||||
return status, message
|
||||
return 3, "Faults info not found in SNMP data."
|
||||
|
||||
check_info["snell_iqh_faults"] = {
|
||||
"check_function" : check_snell_iqh_faults,
|
||||
"inventory_function" : inventory_snell_iqh_faults,
|
||||
"service_description" : "%s",
|
||||
"snmp_info" : (".1.3.6.1.4.1.7995.1.3.1", [ "429.1.1", "475.1.1" ], [
|
||||
OID_END,
|
||||
2028, # Faults ("OK:None")
|
||||
]),
|
||||
"snmp_scan_function" : lambda oid: oid(".1.3.6.1.2.1.1.2.0").startswith(".1.3.6.1.4.1.7995.1.3"),
|
||||
"has_perfdata" : False
|
||||
}
|
59
src/snell_iqh/checks/snell_iqh_power
Normal file
59
src/snell_iqh/checks/snell_iqh_power
Normal file
@ -0,0 +1,59 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8; py-indent-offset: 4 -*-
|
||||
# _______ __ _ ____ __
|
||||
# | | \ | |___ \ / /
|
||||
# | | \| | __) | / /-,_
|
||||
# | | |\ |/ __/ /__ _|
|
||||
# |_______|_| \__|_____| |_|
|
||||
#
|
||||
# @author Markus Birth <markus.birth@weltn24.de>
|
||||
# MIBs: ftp://ftp.snellgroup.com/RollCall/SNMP_MIBs/
|
||||
|
||||
def inventory_snell_iqh_power(info):
|
||||
inventory = []
|
||||
for oidend, pusage, pmax, pcheck in info:
|
||||
inventory.append( ("Power Usage", None) )
|
||||
return inventory
|
||||
|
||||
def check_snell_iqh_power(item, _no_params, info):
|
||||
for oidend, pusage, pmax, pcheck in info:
|
||||
message = "%s (Max %s) (Check: %s)" % (pusage, pmax, pcheck)
|
||||
if pusage[:2] == "OK" and pcheck == "OK":
|
||||
status = 0
|
||||
elif ( pusage[:2] == "OK" and pcheck == "" ) or ( pusage == "" and pcheck == "OK"):
|
||||
# Don't signal unknown, at least one item is "OK"
|
||||
status = 0
|
||||
else:
|
||||
status = 2
|
||||
|
||||
perfdata = []
|
||||
if pusage != "":
|
||||
pval = pusage.split(":", 2)[1]
|
||||
|
||||
if pval[-2:] == "LU":
|
||||
# IQH3B reports power as LU (Load Units) instead of W (Watts)
|
||||
pvaln = saveint(pval[:-2])
|
||||
pmaxn = saveint(pmax[:-2])
|
||||
else:
|
||||
pvaln = saveint(pval[:-1])
|
||||
pmaxn = saveint(pmax[:-1])
|
||||
|
||||
perfdata = [ ("Power_Usage", pvaln, None, pmaxn, 0, pmaxn) ]
|
||||
|
||||
return status, message, perfdata
|
||||
|
||||
return 3, "%s not found in SNMP data." % item
|
||||
|
||||
check_info["snell_iqh_power"] = {
|
||||
"check_function" : check_snell_iqh_power,
|
||||
"inventory_function" : inventory_snell_iqh_power,
|
||||
"service_description" : "%s",
|
||||
"snmp_info" : (".1.3.6.1.4.1.7995.1.3.1", [ "429.1.1", "475.1.1" ], [
|
||||
OID_END,
|
||||
2056, # Power Usage ("OK:82W")
|
||||
2057, # Power Max ("141W")
|
||||
2058, # Power Check ("OK")
|
||||
]),
|
||||
"snmp_scan_function" : lambda oid: oid(".1.3.6.1.2.1.1.2.0").startswith(".1.3.6.1.4.1.7995.1.3"),
|
||||
"has_perfdata" : True
|
||||
}
|
53
src/snell_iqh/checks/snell_iqh_psu
Normal file
53
src/snell_iqh/checks/snell_iqh_psu
Normal file
@ -0,0 +1,53 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8; py-indent-offset: 4 -*-
|
||||
# _______ __ _ ____ __
|
||||
# | | \ | |___ \ / /
|
||||
# | | \| | __) | / /-,_
|
||||
# | | |\ |/ __/ /__ _|
|
||||
# |_______|_| \__|_____| |_|
|
||||
#
|
||||
# @author Markus Birth <markus.birth@weltn24.de>
|
||||
# MIBs: ftp://ftp.snellgroup.com/RollCall/SNMP_MIBs/
|
||||
|
||||
def inventory_snell_iqh_psu(info):
|
||||
inventory = []
|
||||
for i in range(0, len(info)):
|
||||
for oidend, pname, pstate in info[i]:
|
||||
if pstate != "Not Used" and pname != "0":
|
||||
inventory.append( (pname, None) )
|
||||
return inventory
|
||||
|
||||
def check_snell_iqh_psu(item, _no_params, info):
|
||||
for i in range(0, len(info)):
|
||||
for oidend, pname, pstate in info[i]:
|
||||
if item == pname:
|
||||
message = "%s" % (pstate)
|
||||
if pstate == "OK":
|
||||
status = 0
|
||||
elif pstate == "":
|
||||
status = 3
|
||||
else:
|
||||
status = 2
|
||||
|
||||
# perfdata = [ (("PSU %s" % (i+1)), float(vvolt), None, None, vmin, vmax) ]
|
||||
|
||||
return status, message
|
||||
|
||||
return 3, "%s not found in SNMP data." % item
|
||||
|
||||
check_info["snell_iqh_psu"] = {
|
||||
"check_function" : check_snell_iqh_psu,
|
||||
"inventory_function" : inventory_snell_iqh_psu,
|
||||
"service_description" : "%s",
|
||||
"snmp_info" : [(".1.3.6.1.4.1.7995.1.3.1", [ "429.1.1", "475.1.1" ], [
|
||||
OID_END,
|
||||
2020, # psu1name
|
||||
2001, # psu1state
|
||||
]), (".1.3.6.1.4.1.7995.1.3.1", [ "429.1.1", "475.1.1" ], [
|
||||
OID_END,
|
||||
2021, # psu2name
|
||||
2002, # psu2state
|
||||
])],
|
||||
"snmp_scan_function" : lambda oid: oid(".1.3.6.1.2.1.1.2.0").startswith(".1.3.6.1.4.1.7995.1.3"),
|
||||
"has_perfdata" : False
|
||||
}
|
39
src/snell_iqh/checks/snell_iqh_sessions
Normal file
39
src/snell_iqh/checks/snell_iqh_sessions
Normal file
@ -0,0 +1,39 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8; py-indent-offset: 4 -*-
|
||||
# _______ __ _ ____ __
|
||||
# | | \ | |___ \ / /
|
||||
# | | \| | __) | / /-,_
|
||||
# | | |\ |/ __/ /__ _|
|
||||
# |_______|_| \__|_____| |_|
|
||||
#
|
||||
# @author Markus Birth <markus.birth@weltn24.de>
|
||||
# MIBs: ftp://ftp.snellgroup.com/RollCall/SNMP_MIBs/
|
||||
|
||||
def inventory_snell_iqh_sessions(info):
|
||||
inventory = [("Sessions", None)]
|
||||
# for sesscount in info:
|
||||
# inventory.append( ("Sessions", None) )
|
||||
return inventory
|
||||
|
||||
def check_snell_iqh_sessions(item, _no_params, info):
|
||||
if len(info)>0 and len(info[0])>1:
|
||||
sesscount = info[0][1]
|
||||
message = "%s Gateway Ctrl Session%s" % (sesscount, "s" if sesscount!="1" else "")
|
||||
status = 0
|
||||
perfdata = [ ("Sessions", int("0"+sesscount), None, None, 0, 100) ]
|
||||
|
||||
return status, message, perfdata
|
||||
|
||||
return 3, "Sessions info not found in SNMP data."
|
||||
|
||||
check_info["snell_iqh_sessions"] = {
|
||||
"check_function" : check_snell_iqh_sessions,
|
||||
"inventory_function" : inventory_snell_iqh_sessions,
|
||||
"service_description" : "%s",
|
||||
"snmp_info" : (".1.3.6.1.4.1.7995.1.3.1", [ "429.1.1", "475.1.1" ], [
|
||||
OID_END,
|
||||
2007, # No. of Gateway Ctrl Sessions
|
||||
]),
|
||||
"snmp_scan_function" : lambda oid: oid(".1.3.6.1.2.1.1.2.0").startswith(".1.3.6.1.4.1.7995.1.3"),
|
||||
"has_perfdata" : True
|
||||
}
|
61
src/snell_iqh/checks/snell_iqh_temp
Normal file
61
src/snell_iqh/checks/snell_iqh_temp
Normal file
@ -0,0 +1,61 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8; py-indent-offset: 4 -*-
|
||||
# _______ __ _ ____ __
|
||||
# | | \ | |___ \ / /
|
||||
# | | \| | __) | / /-,_
|
||||
# | | |\ |/ __/ /__ _|
|
||||
# |_______|_| \__|_____| |_|
|
||||
#
|
||||
# @author Markus Birth <markus.birth@weltn24.de>
|
||||
# MIBs: ftp://ftp.snellgroup.com/RollCall/SNMP_MIBs/
|
||||
|
||||
factory_settings["snell_iqh_temp_default_levels"] = {
|
||||
"levels": (36, 39), # levels for system temperature
|
||||
}
|
||||
|
||||
def inventory_snell_iqh_temp(info):
|
||||
inventory = []
|
||||
for i in range(0, len(info)):
|
||||
for oidend, tname, ttemp, tstate in info[i]:
|
||||
if tname != "0":
|
||||
inventory.append( (tname, None) )
|
||||
return inventory
|
||||
|
||||
def check_snell_iqh_temp(item, params, info):
|
||||
for i in range(0, len(info)):
|
||||
for oidend, tname, ttemp, tstate in info[i]:
|
||||
if tname == item:
|
||||
message = u"%s - %s℃" % (tstate, ttemp)
|
||||
# 36°C = warning / 39°C = critical (should be signaled from the system itself)
|
||||
if ( tstate == "OK" or tstate == "" ) and saveint("0"+ttemp)<39:
|
||||
status = 0
|
||||
else:
|
||||
status = 2
|
||||
|
||||
perfdata = []
|
||||
if ttemp != "":
|
||||
perfdata = [ (tname.replace(" ", "_"), saveint(ttemp), None, None, 0, 50) ]
|
||||
|
||||
return status, message, perfdata
|
||||
return 3, "%s not found in SNMP data." % (item)
|
||||
|
||||
check_info["snell_iqh_temp"] = {
|
||||
"check_function" : check_snell_iqh_temp,
|
||||
"inventory_function" : inventory_snell_iqh_temp,
|
||||
"service_description" : "%s",
|
||||
"group" : "temperature",
|
||||
"default_levels_variable" : "snell_iqh_temp_default_levels",
|
||||
"snmp_info" : [(".1.3.6.1.4.1.7995.1.3.1", [ "429.1.1", "475.1.1" ], [
|
||||
OID_END,
|
||||
2022, # temp1name
|
||||
2008, # temp1Celsius
|
||||
2003, # temp1State
|
||||
]), (".1.3.6.1.4.1.7995.1.3.1", [ "429.1.1", "475.1.1" ], [
|
||||
OID_END,
|
||||
2023, # temp2name
|
||||
2009, # temp2Celsius
|
||||
2004, # temp2State
|
||||
])],
|
||||
"snmp_scan_function" : lambda oid: oid(".1.3.6.1.2.1.1.2.0").startswith(".1.3.6.1.4.1.7995.1.3"),
|
||||
"has_perfdata" : True
|
||||
}
|
60
src/snell_iqh/checks/snell_iqh_voltage
Normal file
60
src/snell_iqh/checks/snell_iqh_voltage
Normal file
@ -0,0 +1,60 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8; py-indent-offset: 4 -*-
|
||||
# _______ __ _ ____ __
|
||||
# | | \ | |___ \ / /
|
||||
# | | \| | __) | / /-,_
|
||||
# | | |\ |/ __/ /__ _|
|
||||
# |_______|_| \__|_____| |_|
|
||||
#
|
||||
# @author Markus Birth <markus.birth@weltn24.de>
|
||||
# MIBs: ftp://ftp.snellgroup.com/RollCall/SNMP_MIBs/
|
||||
|
||||
def inventory_snell_iqh_voltage(info):
|
||||
inventory = []
|
||||
for i in range(0, len(info)):
|
||||
for oidend, vname, vvolt, vstate in info[i]:
|
||||
inventory.append( ( ("Voltage %s" % vname), None) )
|
||||
return inventory
|
||||
|
||||
def check_snell_iqh_voltage(item, _no_params, info):
|
||||
for i in range(0, len(info)):
|
||||
for oidend, vname, vvolt, vstate in info[i]:
|
||||
if ("Voltage %s" % vname) == item:
|
||||
message = "%s - %sV" % (vstate, vvolt)
|
||||
if vstate == "OK" or vstate == "":
|
||||
status = 0
|
||||
else:
|
||||
status = 2
|
||||
|
||||
if vvolt != "" and float(vvolt) < 0:
|
||||
vmin = -8
|
||||
vmax = -7
|
||||
else:
|
||||
vmin = 7
|
||||
vmax = 8
|
||||
|
||||
perfdata = []
|
||||
if vvolt != "":
|
||||
perfdata = [ (("Voltage_%s" % (i+1)), float(vvolt), None, None, vmin, vmax) ]
|
||||
|
||||
return status, message, perfdata
|
||||
return 3, "%s not found in SNMP data." % item
|
||||
|
||||
check_info["snell_iqh_voltage"] = {
|
||||
"check_function" : check_snell_iqh_voltage,
|
||||
"inventory_function" : inventory_snell_iqh_voltage,
|
||||
"service_description" : "%s",
|
||||
"snmp_info" : [(".1.3.6.1.4.1.7995.1.3.1" , [ "429.1.1", "475.1.1" ], [
|
||||
OID_END,
|
||||
2024, # volt1name
|
||||
2025, # volt1Volt
|
||||
2005, # volt1State
|
||||
]), (".1.3.6.1.4.1.7995.1.3.1", [ "429.1.1", "475.1.1"], [
|
||||
OID_END,
|
||||
2026, # volt2name
|
||||
2027, # volt2Volt
|
||||
2006, # volt2State
|
||||
])],
|
||||
"snmp_scan_function" : lambda oid: oid(".1.3.6.1.2.1.1.2.0").startswith(".1.3.6.1.4.1.7995.1.3"),
|
||||
"has_perfdata" : True
|
||||
}
|
BIN
src/snell_iqh/web/htdocs/images/icons/snell.png
Normal file
BIN
src/snell_iqh/web/htdocs/images/icons/snell.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 553 B |
31
src/snell_iqh/web/plugins/perfometer/snell_iqh_cpu.py
Normal file
31
src/snell_iqh/web/plugins/perfometer/snell_iqh_cpu.py
Normal file
@ -0,0 +1,31 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8; py-indent-offset: 4 -*-
|
||||
# _______ __ _ ____ __
|
||||
# | | \ | |___ \ / /
|
||||
# | | \| | __) | / /-,_
|
||||
# | | |\ |/ __/ /__ _|
|
||||
# |_______|_| \__|_____| |_|
|
||||
#
|
||||
# @author Markus Birth <markus.birth@weltn24.de>
|
||||
|
||||
def perfometer_snell_iqh_cpu(row, check_command, perfdata):
|
||||
if len(perfdata) < 1:
|
||||
return "", ""
|
||||
|
||||
ccur = int(perfdata[0][1])
|
||||
#cwarn = int(perfdata[0][2])
|
||||
#ccrit = int(perfdata[0][3])
|
||||
|
||||
cwarn = 95
|
||||
ccrit = 98
|
||||
|
||||
if ccur > ccrit:
|
||||
color = "#f88"
|
||||
elif ccur > cwarn:
|
||||
color = "#ff6"
|
||||
else:
|
||||
color = "#8f8"
|
||||
|
||||
return "%i%%" % ccur, perfometer_linear(ccur, color)
|
||||
|
||||
perfometers["check_mk-snell_iqh_cpu"] = perfometer_snell_iqh_cpu
|
23
src/snell_iqh/web/plugins/perfometer/snell_iqh_eth.py
Normal file
23
src/snell_iqh/web/plugins/perfometer/snell_iqh_eth.py
Normal file
@ -0,0 +1,23 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8; py-indent-offset: 4 -*-
|
||||
# _______ __ _ ____ __
|
||||
# | | \ | |___ \ / /
|
||||
# | | \| | __) | / /-,_
|
||||
# | | |\ |/ __/ /__ _|
|
||||
# |_______|_| \__|_____| |_|
|
||||
#
|
||||
# @author Markus Birth <markus.birth@weltn24.de>
|
||||
|
||||
def perfometer_snell_iqh_eth(row, check_command, perfdata):
|
||||
if len(perfdata) < 2:
|
||||
return "", ""
|
||||
|
||||
tin = float(perfdata[0][1])
|
||||
tout = float(perfdata[1][1])
|
||||
|
||||
text = "%-.1fKB/s %-.1fKB/s" % (tin, tout)
|
||||
|
||||
return text, perfometer_logarithmic_dual(
|
||||
tin, "#60e0a0", tout, "#60a0e0", 10, 10)
|
||||
|
||||
perfometers["check_mk-snell_iqh_eth"] = perfometer_snell_iqh_eth
|
22
src/snell_iqh/web/plugins/perfometer/snell_iqh_power.py
Normal file
22
src/snell_iqh/web/plugins/perfometer/snell_iqh_power.py
Normal file
@ -0,0 +1,22 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8; py-indent-offset: 4 -*-
|
||||
# _______ __ _ ____ __
|
||||
# | | \ | |___ \ / /
|
||||
# | | \| | __) | / /-,_
|
||||
# | | |\ |/ __/ /__ _|
|
||||
# |_______|_| \__|_____| |_|
|
||||
#
|
||||
# @author Markus Birth <markus.birth@weltn24.de>
|
||||
|
||||
def perfometer_snell_iqh_power(row, check_command, perfdata):
|
||||
if len(perfdata) < 1:
|
||||
return "", ""
|
||||
|
||||
pcur = int(perfdata[0][1])
|
||||
pmax = int(perfdata[0][6])
|
||||
|
||||
percent = float(pcur)*100.0/float(pmax)
|
||||
|
||||
return "%i%%" % percent, perfometer_linear(percent, "#66a")
|
||||
|
||||
perfometers["check_mk-snell_iqh_power"] = perfometer_snell_iqh_power
|
20
src/snell_iqh/web/plugins/perfometer/snell_iqh_temp.py
Normal file
20
src/snell_iqh/web/plugins/perfometer/snell_iqh_temp.py
Normal file
@ -0,0 +1,20 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8; py-indent-offset: 4 -*-
|
||||
# _______ __ _ ____ __
|
||||
# | | \ | |___ \ / /
|
||||
# | | \| | __) | / /-,_
|
||||
# | | |\ |/ __/ /__ _|
|
||||
# |_______|_| \__|_____| |_|
|
||||
#
|
||||
# @author Markus Birth <markus.birth@weltn24.de>
|
||||
|
||||
def perfometer_snell_iqh_temp(row, check_command, perfdata):
|
||||
if len(perfdata) < 1:
|
||||
return "", ""
|
||||
|
||||
tcur = int(perfdata[0][1])
|
||||
tmax = int(perfdata[0][6])
|
||||
|
||||
return "%i℃" % tcur, perfometer_linear(tcur*100/tmax, "#f82")
|
||||
|
||||
perfometers["check_mk-snell_iqh_temp"] = perfometer_snell_iqh_temp
|
19
src/snell_iqh/web/plugins/perfometer/snell_iqh_voltage.py
Normal file
19
src/snell_iqh/web/plugins/perfometer/snell_iqh_voltage.py
Normal file
@ -0,0 +1,19 @@
|
||||
#!/usr/bin/python
|
||||
# -*- coding: utf-8; py-indent-offset: 4 -*-
|
||||
# _______ __ _ ____ __
|
||||
# | | \ | |___ \ / /
|
||||
# | | \| | __) | / /-,_
|
||||
# | | |\ |/ __/ /__ _|
|
||||
# |_______|_| \__|_____| |_|
|
||||
#
|
||||
# @author Markus Birth <markus.birth@weltn24.de>
|
||||
|
||||
def perfometer_snell_iqh_voltage(row, check_command, perfdata):
|
||||
if len(perfdata) < 1:
|
||||
return "", ""
|
||||
|
||||
vcur = abs(float(perfdata[0][1]))
|
||||
|
||||
return "%.1fV" % vcur, perfometer_linear( (vcur-7.0)*100, "#48f")
|
||||
|
||||
perfometers["check_mk-snell_iqh_voltage"] = perfometer_snell_iqh_voltage
|
Reference in New Issue
Block a user