Module: check_mk
Branch: master
Commit: 4e71ea6d9b60d848ff517f7b4a1cff330d0a7ae5
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=4e71ea6d9b60d8…
Author: Bastian Kuhn <bk(a)mathias-kettner.de>
Date: Fri Aug 24 14:56:44 2012 +0200
Extended ups checks
---
checks/ups_capacity | 41 +++++++++++++++++++++++++++--------------
checks/ups_power | 4 ++--
2 files changed, 29 insertions(+), 16 deletions(-)
diff --git a/checks/ups_capacity b/checks/ups_capacity
index 1ba7e9f..deed33d 100644
--- a/checks/ups_capacity
+++ b/checks/ups_capacity
@@ -35,25 +35,38 @@
# SNMPv2-SMI::mib-2.33.1.2.2.0 = INTEGER: 0
# ==> Remaining capacity in estimated minutes
# SNMPv2-SMI::mib-2.33.1.2.3.0 = INTEGER: 150
-# SNMPv2-SMI::mib-2.33.1.2.4.0 = INTEGER: 100
+# SNMPv2-SMI::mib-2.33.1.2.4.0 = INTEGER: 100 <-- Battery percentages
# SNMPv2-SMI::mib-2.33.1.2.5.0 = INTEGER: 4080
# SNMPv2-SMI::mib-2.33.1.2.6.0 = INTEGER: 0
# SNMPv2-SMI::mib-2.33.1.2.7.0 = INTEGER: 23
# SNMPv2-SMI::mib-2.33.1.3.1.0 = Counter32: 13
# SNMPv2-SMI::mib-2.33.1.3.2.0 = INTEGER: 3
-def inventory_ups_capacity(info):
- if len(info) > 0:
- return [ (None, "", None) ]
+ups_capacity_defaul_levels = (0, 0)
+def check_ups_capacity(item, params, info):
+ #To support inventorys with the old version
+ if params != None:
+ warn, crit = params
+ else:
+ warn, crit = ups_capacity_defaul_levels
-def check_ups_capacity(item, _no_params, info):
- minutes = int(info[0][0])
- return (0, "OK - remaining capacity is estimated %d minutes" % minutes,
[("capacity", minutes, None, None, 0) ])
+ time_on_bat, minutes_left, percent_fuel = map(int, info[0])
+ perf = [
+ ('capacity', minutes_left)
+ ]
+ info_text = "remaining capacity %d minutes (%d%%)" % (minutes_left,
percent_fuel)
+ if time_on_bat > crit:
+ return(2, "CRIT - On battery since %ds(!!) " % time_on_bat + info_text,
perf)
+ elif time_on_bat > warn:
+ return(1, "WARN - On battery since %ds(!) " % time_on_bat + info_text,
perf)
+ else:
+ return(0, "OK - " + info_text, perf)
-check_info['ups_capacity'] = ( check_ups_capacity, "Battery capacity",
1, inventory_ups_capacity )
-snmp_info['ups_capacity'] = ( ".1.3.6.1.2.1.33.1.2", [ "3.0"
] )
-# .1.3.6.1.2.1.33.1.1.1.0 "RPS SpA": Some usvs only support the UPS-MIB
-snmp_scan_functions['ups_capacity'] = \
- lambda oid: oid(".1.3.6.1.2.1.1.2.0") in \
- [ ".1.3.6.1.4.1.818.1.100.1.1", ".1.3.6.1.2.1.33.2" ] \
- or oid('.1.3.6.1.2.1.33.1.1.1.0').startswith('RPS')
+check_info["ups_capacity"] = {
+ "check_function" : check_ups_capacity,
+ "inventory_function" : lambda info: [(None,
'ups_capacity_defaul_levels')],
+ "service_description" : "Battery capacity",
+ "has_perfdata" : True,
+ "snmp_scan_function" : lambda oid:
(".1.3.6.1.2.1.33.1.2.3.0"),
+ "snmp_info" : ( ".1.3.6.1.2.1.33.1.2", [
"2.0" , "3.0" ,"4.0" ] )
+}
diff --git a/checks/ups_power b/checks/ups_power
index b9927f4..2f8a48c 100644
--- a/checks/ups_power
+++ b/checks/ups_power
@@ -90,7 +90,7 @@ def check_ups_power(item, params, info):
if power < 0:
power *= -1
perfdata = [ ( "power", power, warn, crit, 0 ) ]
- infotext = " - current power: %d W, warn/crit at and below %d/%d W"
% \
+ infotext = " - current power: %dW, (levels at %dW/%dW)" % \
(power, warn, crit)
if power <= crit:
@@ -108,5 +108,5 @@ snmp_info['ups_power'] = (
".1.3.6.1.2.1.33.1.4.4.1", [ 0, 4 ] )
# .1.3.6.1.2.1.33.1.1.1.0 "RPS SpA": Some usvs only support the UPS-MIB
snmp_scan_functions['ups_power'] = \
lambda oid: oid(".1.3.6.1.2.1.1.2.0") in \
- [ ".1.3.6.1.4.1.818.1.100.1.1", ".1.3.6.1.2.1.33.2" ] \
+ [ ".1.3.6.1.4.1.818.1.100.1.1", ".1.3.6.1.2.1.33.2",
".1.3.6.1.2.1.33" ] \
or oid('.1.3.6.1.2.1.33.1.1.1.0').startswith('RPS')