Module: check_mk
Branch: master
Commit: 8ce7b83deeb42d7f66fa910b29d8a7dfa6898219
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=8ce7b83deeb42d…
Author: Simon Betz <si(a)mathias-kettner.de>
Date: Thu Nov 17 12:11:33 2016 +0100
adapted netgear checks
---
checks/netgear_fans | 63 ++++++++++++++++++++++++++++++++++++++++++-----------
checks/netgear_temp | 40 +++++++++++++++++++++++++++-------
2 files changed, 82 insertions(+), 21 deletions(-)
diff --git a/checks/netgear_fans b/checks/netgear_fans
index 5fe5b2c..170204e 100644
--- a/checks/netgear_fans
+++ b/checks/netgear_fans
@@ -57,9 +57,50 @@ factory_settings["netgear_fans_default_levels"] = {
}
+def netgear_map_state_txt_to_int(state_nr, version):
+ map_state_txt_to_int = {
+ "operational" : 0,
+ "failed" : 2,
+ "powering" : 0,
+ "not powering" : 1,
+ "not present" : 1,
+ "no power" : 2,
+ "incompatible" : 2,
+ }
+
+ if version.startswith("8."):
+ map_states = {
+ "1" : "operational",
+ "2" : "failed",
+ "3" : "powering",
+ "4" : "not powering",
+ "5" : "not present",
+ }
+ elif version.startswith("10."):
+ map_states = {
+ "1" : "notpresent",
+ "2" : "operational",
+ "3" : "failed",
+ "4" : "powering",
+ "5" : "no power",
+ "6" : "not powering",
+ "7" : "incompatible",
+ }
+ else:
+ map_states = {
+ "1" : "not present",
+ "2" : "operational",
+ "3" : "failed",
+ }
+
+ state_txt = map_states.get(state_nr, "unknown(%s)" % state_nr)
+ return map_state_txt_to_int.get(state_txt, 3), state_txt
+
+
def parse_netgear_fans(info):
- parsed = {}
- for oid_end, sstate, reading_str in info:
+ versioninfo, sensorinfo = info
+ parsed = { "__version__" : versioninfo[0][0] }
+ for oid_end, sstate, reading_str in sensorinfo:
parsed.setdefault("%s" % oid_end.replace(".", "/"),
{
"state" : sstate,
"reading_str" : reading_str,
@@ -76,17 +117,12 @@ def inventory_netgear_fans(parsed):
def check_netgear_fans(item, params, parsed):
- map_states = {
- "1" : (1, "not present"),
- "2" : (0, "operational"),
- "3" : (2, "failed"),
- }
if item in parsed:
data = parsed[item]
reading_str = data["reading_str"]
if reading_str != "Not Supported":
yield check_fan(int(data["reading_str"]), params)
- yield map_states[data["state"]]
+ yield netgear_map_state_txt_to_int(data["state"],
parsed["__version__"])
check_info['netgear_fans'] = {
@@ -94,11 +130,12 @@ check_info['netgear_fans'] = {
'inventory_function' : inventory_netgear_fans,
'check_function' : check_netgear_fans,
'service_description' : 'Fan %s',
- 'snmp_info' : ('.1.3.6.1.4.1.4526.10.43.1.6.1', [
- OID_END,
- "3", #
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesFanItemState
- "4", #
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesFanSpeed
- ]),
+ 'snmp_info' : [('.1.3.6.1.4.1.4526.10.1.1.1.13',
['']),
+ ('.1.3.6.1.4.1.4526.10.43.1.6.1', [
+ OID_END,
+ "3", #
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesFanItemState
+ "4", #
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesFanSpeed
+ ])],
'snmp_scan_function' : lambda oid:
oid(".1.3.6.1.2.1.1.2.0").startswith(".1.3.6.1.4.1.4526.100"),
'default_levels_variable' : 'netgear_fans_default_levels',
'includes' : [ 'fan.include' ],
diff --git a/checks/netgear_temp b/checks/netgear_temp
index 17137fe..4170eda 100644
--- a/checks/netgear_temp
+++ b/checks/netgear_temp
@@ -43,6 +43,22 @@
# .1.3.6.1.4.1.4526.10.43.1.8.1.4.2.0 58 -->
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorTemperature.2.0
# .1.3.6.1.4.1.4526.10.43.1.8.1.4.2.1 37 -->
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorTemperature.2.1
# .1.3.6.1.4.1.4526.10.43.1.8.1.4.2.2 30 -->
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorTemperature.2.2
+# .1.3.6.1.4.1.4526.10.43.1.8.1.5.1.0 1 -->
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorsEntry.5.1.0
+# .1.3.6.1.4.1.4526.10.43.1.8.1.5.1.1 1 -->
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorsEntry.5.1.1
+# .1.3.6.1.4.1.4526.10.43.1.8.1.5.1.2 1 -->
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorsEntry.5.1.2
+# .1.3.6.1.4.1.4526.10.43.1.8.1.5.2.0 2 -->
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorsEntry.5.2.0
+# .1.3.6.1.4.1.4526.10.43.1.8.1.5.2.1 2 -->
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorsEntry.5.2.1
+# .1.3.6.1.4.1.4526.10.43.1.8.1.5.2.2 2 -->
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorsEntry.5.2.2
+
+# BUT (!!)
+# .1.3.6.1.4.1.4526.10.43.1.8.1.2.1.0 0 -->
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorType.1.0
+# .1.3.6.1.4.1.4526.10.43.1.8.1.2.2.0 0 -->
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorType.2.0
+# .1.3.6.1.4.1.4526.10.43.1.8.1.3.1.0 1 -->
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorState.1.0
+# .1.3.6.1.4.1.4526.10.43.1.8.1.3.2.0 1 -->
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorState.2.0
+# .1.3.6.1.4.1.4526.10.43.1.8.1.4.1.0 1 -->
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorTemperature.1.0
+# .1.3.6.1.4.1.4526.10.43.1.8.1.4.2.0 1 -->
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorTemperature.2.0
+# .1.3.6.1.4.1.4526.10.43.1.8.1.5.1.0 35 -->
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorsEntry.5.1.0
+# .1.3.6.1.4.1.4526.10.43.1.8.1.5.2.0 37 -->
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorsEntry.5.2.0
def parse_netgear_temp(info):
@@ -51,12 +67,18 @@ def parse_netgear_temp(info):
"2" : "removable",
}
+ versioninfo, sensorinfo = info
parsed = {}
- for oid_end, sensor_ty, sstate, reading_str in info:
+ for oid_end, sensor_ty, sstate, reading_str, reading_str_10 in sensorinfo:
+ if versioninfo[0][0].startswith("10."):
+ reading = float(reading_str_10)
+ else:
+ reading = float(reading_str)
+
parsed.setdefault("Sensor %s" % oid_end.replace(".",
"/"), {
"type" : map_types.get(sensor_ty),
"state" : sstate,
- "reading" : float(reading_str),
+ "reading" : reading,
})
return parsed
@@ -91,12 +113,14 @@ check_info['netgear_temp'] = {
'check_function' : check_netgear_temp,
'service_description' : 'Temperature %s',
'has_perfdata' : True,
- 'snmp_info' : ('.1.3.6.1.4.1.4526.10.43.1.8.1', [
- OID_END,
- "2", #
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorType
- "3", #
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorState
- "4", #
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorTemperature
- ]),
+ 'snmp_info' : [('.1.3.6.1.4.1.4526.10.1.1.1.13',
['']),
+ ('.1.3.6.1.4.1.4526.10.43.1.8.1', [
+ OID_END,
+ "2", #
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorType
+ "3", #
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorState
+ "4", #
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorTemperature
+ "5", #
FASTPATH-BOXSERVICES-PRIVATE-MIB::boxServicesTempSensorTemperature
+ ])],
'snmp_scan_function' : lambda oid:
oid(".1.3.6.1.2.1.1.2.0").startswith(".1.3.6.1.4.1.4526.100"),
'includes' : [ 'temperature.include' ],
'group' : 'temperature',