Module: check_mk
Branch: master
Commit: 58a346aa1923929e7f717f36ecdef7e96a004ab2
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=58a346aa192392…
Author: Florian Heigl <fh(a)mathias-kettner.de>
Date: Tue Aug 14 12:31:30 2012 +0200
megaraid_pdisks: prepare fix for inventory on systems with active backplanes. Backplane ID was not being inventorized
---
checks/megaraid_pdisks | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/checks/megaraid_pdisks b/checks/megaraid_pdisks
index 53abb49..bb2f843 100644
--- a/checks/megaraid_pdisks
+++ b/checks/megaraid_pdisks
@@ -47,6 +47,9 @@
# On new inventory runs the enclosure number is used as
# index and item part.
megaraid_pdisks_legacy_mode = False
+# This makes service descriptions backward compatible to match
+# inventory made by older versions that didn't support multiple
+# controllers
megaraid_pdisks_adapterstr = ['e','f','g','h','i','j','k','l']
def megaraid_pdisks_parse(info):
@@ -68,6 +71,9 @@ def megaraid_pdisks_parse(info):
elif line[0] == "Enclosure" and line[1] == "Device":
try:
enclosure_devid = int(line[-1])
+ # this should fix inventory problems.
+ #adapters[adapter][enclosure_devid] = enclosure_devid
+
except: # no enclosure device
enclosure_devid = 0
adapters[adapter][0] = 0
Module: check_mk
Branch: master
Commit: 478c787777997c3c5acf8aa4a6a8eda3e72e318d
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=478c787777997c…
Author: Florian Heigl <fh(a)mathias-kettner.de>
Date: Tue Aug 14 11:58:25 2012 +0200
Add new bug entry
---
.bugs/722 | 14 ++++++++++++++
1 files changed, 14 insertions(+), 0 deletions(-)
diff --git a/.bugs/722 b/.bugs/722
new file mode 100644
index 0000000..b0c30e3
--- /dev/null
+++ b/.bugs/722
@@ -0,0 +1,14 @@
+Title: Megaraid pdisks/ldisks naming scheme makeover
+Component: checks
+State: open
+Date: 2012-08-14 11:57:03
+Targetversion: future
+Class: cleanup
+
+after the 1.2 series we should redo the item names for the megaraid devices.
+currently we have not something sane like c0e0s0 (controller, enclosure, slot)
+but instead inject the controller id into a letter that prefixes the enclosure id.
+this is undocumented and not helpful for the end-user - but needed to stay compatible.
+We should just stop being compatible at some point.
+
+If in doubt, see megaraid_pdisks_adapterstr in megaraid_pdisks ;)
Module: check_mk
Branch: master
Commit: e47403b88a274c161923bc184884d908100bb9e5
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=e47403b88a274c…
Author: Florian Heigl <fh(a)mathias-kettner.de>
Date: Mon Aug 13 12:53:46 2012 +0200
Add new bug entry
---
.bugs/720 | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/.bugs/720 b/.bugs/720
new file mode 100644
index 0000000..b65ea1f
--- /dev/null
+++ b/.bugs/720
@@ -0,0 +1,13 @@
+Title: ps and ps.perf output would be much improved if it contained the search filter
+Component: checks
+State: open
+Date: 2012-08-13 12:38:53
+Targetversion: future
+Class: feature
+
+joerg suggested that ps and ps.perf could add another line of output containing the
+the search filter used for finding the process.
+That way a unix admin can immediately determine what process to fix, look for
+and if the monitoring config is correct.
+
+sounds like a great feature.
Module: check_mk
Branch: master
Commit: 7ec34bfafa123ba46a76b1545ef8627f143b03d9
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=7ec34bfafa123b…
Author: Florian Heigl <fh(a)mathias-kettner.de>
Date: Fri Aug 10 16:49:21 2012 +0200
add new bug entries
---
.bugs/717 | 135 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
.bugs/718 | 13 ++++++
.bugs/719 | 11 +++++
3 files changed, 159 insertions(+), 0 deletions(-)
diff --git a/.bugs/717 b/.bugs/717
new file mode 100644
index 0000000..478c3a4
--- /dev/null
+++ b/.bugs/717
@@ -0,0 +1,135 @@
+Title: MegaRaid BBU check should handle learning state
+Component: checks
+State: open
+Date: 2012-08-10 16:35:33
+Targetversion: 1.2.0
+Class: feature
+
+Most MegaRAID controllers come with a rechargable Li battery for the backup voltage.
+This voltage is used to sustain power to the cache ram should the power fail or the OS crash.
+Once the system comes up, the outstanding writes are flushed to disk before OS boot starts.
+
+The newest models use a flash memory bank instead that is fed using a supercap that lasts
+long enough to copy the ram onto flash.
+
+All non-flash models need to do maintenance on their batteries to avoid gas buildup and
+to test remaining capacity. This is called a learn cycle and occurs roughly once a month
+,but the controller does not support setting a schedule.
+
+During the learn cycle, the controller is set to write-through and then the battery is
+discharged a few times, and our check starts to look like a christmas tree.
+
+We need to handle the learn cycle which is detectable.
+If the agent reports "learn cycle requested: yes" then it will sstart at some time,
+and if it says "learn cycle active: yes" then it is running already.
+
+
+Output 1:
+BBU status for Adapter: 0
+
+BatteryType: iBBU
+Voltage: 3251 mV
+Current: -375 mA
+Temperature: 30 C
+
+Battery State : Operational
+
+BBU Firmware Status:
+
+ Charging Status : Discharging
+ Voltage : Low
+ Temperature : OK
+ Learn Cycle Requested : Yes
+ Learn Cycle Active : Yes
+ Learn Cycle Status : OK
+ Learn Cycle Timeout : No
+ I2c Errors Detected : No
+ Battery Pack Missing : No
+ Battery Replacement required : No
+ Remaining Capacity Low : No
+ Periodic Learn Required : No
+ Transparent Learn : No
+ No space to cache offload : No
+ Pack is about to fail & should be replaced : No
+ Cache Offload premium feature required : No
+ Module microcode update required : No
+
+
+
+GasGuageStatus:
+ Fully Discharged : Yes
+ Fully Charged : No
+ Discharging : Yes
+ Initialized : Yes
+ Remaining Time Alarm : Yes
+ Remaining Capacity Alarm: Yes
+ Discharge Terminated : Yes
+ Over Temperature : No
+ Charging Terminated : No
+ Over Charged : No
+
+Relative State of Charge: 0 %
+Charger System State: 49169
+Charger System Ctrl: 0
+Charging current: 100 mA
+Absolute state of charge: 0 %
+Max Error: 8 %
+
+Exit Code: 0x00
+
+
+
+Output 2:
+
+
+BBU status for Adapter: 0
+
+BatteryType: iBBU
+Voltage: 4048 mV
+Current: 139 mA
+Temperature: 27 C
+
+Battery State : Operational
+
+BBU Firmware Status:
+
+ Charging Status : Charging
+ Voltage : OK
+ Temperature : OK
+ Learn Cycle Requested : Yes
+ Learn Cycle Active : No
+ Learn Cycle Status : OK
+ Learn Cycle Timeout : No
+ I2c Errors Detected : No
+ Battery Pack Missing : No
+ Battery Replacement required : No
+ Remaining Capacity Low : No
+ Periodic Learn Required : No
+ Transparent Learn : No
+ No space to cache offload : No
+ Pack is about to fail & should be replaced : No
+ Cache Offload premium feature required : No
+ Module microcode update required : No
+
+
+
+GasGuageStatus:
+ Fully Discharged : No
+ Fully Charged : No
+ Discharging : No
+ Initialized : Yes
+ Remaining Time Alarm : No
+ Remaining Capacity Alarm: No
+ Discharge Terminated : No
+ Over Temperature : No
+ Charging Terminated : No
+ Over Charged : No
+
+Relative State of Charge: 1 %
+Charger System State: 49168
+Charger System Ctrl: 0
+Charging current: 512 mA
+Absolute state of charge: 25 %
+Max Error: 8 %
+
+Exit Code: 0x00
diff --git a/.bugs/718 b/.bugs/718
new file mode 100644
index 0000000..c40b25d
--- /dev/null
+++ b/.bugs/718
@@ -0,0 +1,13 @@
+Title: WATO tags menue has issues when deleting tags
+Component: wato
+State: open
+Date: 2012-08-10 16:42:19
+Targetversion: future
+Class: bug
+
+If you create an empty tag (desc. and tag id) and then another one the empty tag will
+corrupt the tag id's.
+It seems this faulty state is also saved:
+If you delete another tag later on, all tags below the tag you're deleting are also lost.
+
+It's already verified to be a bug ;)
diff --git a/.bugs/719 b/.bugs/719
new file mode 100644
index 0000000..765c771
--- /dev/null
+++ b/.bugs/719
@@ -0,0 +1,11 @@
+Title: if Check should track separate levels for in and out traffic bytes / levels
+Component: checks
+State: open
+Date: 2012-08-10 16:44:48
+Targetversion: future
+Class: feature
+
+Certain customers (ISP, or people with asymetric speeds on an inteface) put different focus
+on interface monitoring - they don't need to detect the 1 out of 10000 clients that has heavy
+traffic, but they need to detect bw excess in either of two directions.
+The check already tracks rx and tx but doesn't allow separate alerting like disk io would.
Module: check_mk
Branch: master
Commit: 0260a7f6fa83ddec81d14d3b3b19fdf40c04a4ab
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=0260a7f6fa83dd…
Author: Bastian Kuhn <bk(a)mathias-kettner.de>
Date: Fri Aug 10 16:30:07 2012 +0200
Added Check for masterguard out voltage
---
checkman/masterguard_out_voltage | 26 ++++++++++++++++++
checks/masterguard_out_voltage | 55 ++++++++++++++++++++++++++++++++++++++
2 files changed, 81 insertions(+), 0 deletions(-)
diff --git a/checkman/masterguard_out_voltage b/checkman/masterguard_out_voltage
new file mode 100644
index 0000000..e6b0113
--- /dev/null
+++ b/checkman/masterguard_out_voltage
@@ -0,0 +1,26 @@
+title: Show the out voltage of masterguard ups devices
+agents: snmp
+author: Bastian Kuhn <bk(a)mathias-kettner.de>
+license: GPL
+distribution: check_mk
+description:
+ Out Voltage
+
+item:
+ ID of the phase
+
+perfdata:
+ The current Voltage
+
+inventory:
+ One service per phase will be created
+
+[parameters]
+parameters (tuple): A pair of numbers for warning and critical level
+
+ warning (int): The lower limit which triggers an WARNING state
+
+ critical (int): The lower limit which triggers an CRITICAL state
+
+[configuration]
+masterguard_out_voltage_default_levels (tuple): Default warning and critical level
diff --git a/checks/masterguard_out_voltage b/checks/masterguard_out_voltage
new file mode 100644
index 0000000..0e441ab
--- /dev/null
+++ b/checks/masterguard_out_voltage
@@ -0,0 +1,55 @@
+#!/usr/bin/python
+# -*- encoding: utf-8; py-indent-offset: 4 -*-
+# +------------------------------------------------------------------+
+# | ____ _ _ __ __ _ __ |
+# | / ___| |__ ___ ___| | __ | \/ | |/ / |
+# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
+# | | |___| | | | __/ (__| < | | | | . \ |
+# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
+# | |
+# | Copyright Mathias Kettner 2012 mk(a)mathias-kettner.de |
+# +------------------------------------------------------------------+
+#
+# This file is part of Check_MK.
+# The official homepage is at http://mathias-kettner.de/check_mk.
+#
+# check_mk is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation in version 2. check_mk is distributed
+# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
+# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE. See the GNU General Public License for more de-
+# ails. You should have received a copy of the GNU General Public
+# License along with GNU Make; see the file COPYING. If not, write
+# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+# Boston, MA 02110-1301 USA.
+
+
+masterguard_out_voltage_default_levels = (210, 180) # warning / critical
+
+def check_masterguard_out_voltage(item, params, info):
+ warn, crit = params
+ for line in info:
+ if line[0] == item:
+ power = int(line[1])
+ perfdata = [ ( "out_voltage", power, warn, crit, 200, 240 ) ]
+ infotext = " - current in voltage: %dV (warn/crit at %dV/%dV)" % \
+ (power, warn, crit)
+
+ if power <= crit:
+ return (2, "CRIT" + infotext, perfdata)
+ elif power <= warn:
+ return (1, "WARN" + infotext, perfdata)
+ else:
+ return (0, "OK" + infotext, perfdata)
+
+ return (3, "UNKNOWN - Phase %s not found in SNMP output" % item)
+
+check_info['masterguard_out_voltage'] = {
+ "inventory_function" : lambda info: [ ( x[0], "masterguard_out_voltage_default_levels") for x in info ],
+ "check_function" : check_masterguard_out_voltage,
+ "service_description" : "OUT voltage phase %s",
+ "has_perfdata" : True,
+ "snmp_info" : ( ".1.3.6.1.2.1.33.1.4.4.1", [ 0, 2 ] ),
+ "snmp_scan_function" : lambda oid: "masterguard" in oid('.1.3.6.1.2.1.1.1.0').lower(),
+}
Module: check_mk
Branch: master
Commit: 11fa2a43d52b4fd4d2411c27ecd9ae3a76262b39
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=11fa2a43d52b4f…
Author: Bastian Kuhn <bk(a)mathias-kettner.de>
Date: Fri Aug 10 16:23:11 2012 +0200
Added check for masterguard out load
---
checkman/masterguard_out_load | 26 +++++++++++++++++++
checks/masterguard_out_load | 56 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 82 insertions(+), 0 deletions(-)
diff --git a/checkman/masterguard_out_load b/checkman/masterguard_out_load
new file mode 100644
index 0000000..081e859
--- /dev/null
+++ b/checkman/masterguard_out_load
@@ -0,0 +1,26 @@
+title: Show the OUT load masterguard ups devices
+agents: snmp
+author: Bastian Kuhn <bk(a)mathias-kettner.de>
+license: GPL
+distribution: check_mk
+description:
+ OUT load
+
+item:
+ ID of the phase
+
+perfdata:
+ The current Load
+
+inventory:
+ One service per phase will be created
+
+[parameters]
+parameters (tuple): A pair of numbers for warning and critical level
+
+ warning (int): The lower limit which triggers an WARNING state
+
+ critical (int): The lower limit which triggers an CRITICAL state
+
+[configuration]
+masterguard_out_load_default_levels (tuple): Default warning and critical level
diff --git a/checks/masterguard_out_load b/checks/masterguard_out_load
new file mode 100644
index 0000000..bc3dc2e
--- /dev/null
+++ b/checks/masterguard_out_load
@@ -0,0 +1,56 @@
+#!/usr/bin/python
+# -*- encoding: utf-8; py-indent-offset: 4 -*-
+# +------------------------------------------------------------------+
+# | ____ _ _ __ __ _ __ |
+# | / ___| |__ ___ ___| | __ | \/ | |/ / |
+# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
+# | | |___| | | | __/ (__| < | | | | . \ |
+# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
+# | |
+# | Copyright Mathias Kettner 2012 mk(a)mathias-kettner.de |
+# +------------------------------------------------------------------+
+#
+# This file is part of Check_MK.
+# The official homepage is at http://mathias-kettner.de/check_mk.
+#
+# check_mk is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation in version 2. check_mk is distributed
+# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
+# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE. See the GNU General Public License for more de-
+# ails. You should have received a copy of the GNU General Public
+# License along with GNU Make; see the file COPYING. If not, write
+# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+# Boston, MA 02110-1301 USA.
+
+
+masterguard_out_load_default_levels = (85, 90) # warning / critical
+
+
+def check_masterguard_out_load(item, params, info):
+ warn, crit = params
+ for line in info:
+ if line[0] == item:
+ power = int(line[1])
+ perfdata = [ ( "out_load", power, warn, crit, 100 ) ]
+ infotext = " - current load: %d (warn/crit at %d/%d) " % \
+ (power, warn, crit)
+
+ if power >= crit:
+ return (2, "CRIT" + infotext, perfdata)
+ elif power >= warn:
+ return (1, "WARN" + infotext, perfdata)
+ else:
+ return (0, "OK" + infotext, perfdata)
+
+ return (3, "UNKNOWN - Phase %s not found in SNMP output" % item)
+
+check_info['masterguard_out_load'] = {
+ "inventory_function" : lambda info: [ ( x[0], "masterguard_out_load_default_levels") for x in info ],
+ "check_function" : check_masterguard_out_load,
+ "service_description" : "OUT load phase %s",
+ "has_perfdata" : True,
+ "snmp_info" : ( ".1.3.6.1.2.1.33.1.4.4.1", [ 0, 5 ] ),
+ "snmp_scan_function" : lambda oid: "masterguard" in oid('.1.3.6.1.2.1.1.1.0').lower(),
+}
Module: check_mk
Branch: master
Commit: 829bba9e1654c176bb7870983b64b461ad940605
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=829bba9e1654c1…
Author: Bastian Kuhn <bk(a)mathias-kettner.de>
Date: Fri Aug 10 16:45:13 2012 +0200
Added check for masterguard ups power state
---
checkman/masterguard_bat_temp | 2 +-
checkman/masterguard_power | 29 ++++++++++++++++++++
checks/masterguard_power | 59 +++++++++++++++++++++++++++++++++++++++++
3 files changed, 89 insertions(+), 1 deletions(-)
diff --git a/checkman/masterguard_bat_temp b/checkman/masterguard_bat_temp
index bae9619..85da1b0 100644
--- a/checkman/masterguard_bat_temp
+++ b/checkman/masterguard_bat_temp
@@ -1,4 +1,4 @@
-title: Check temperature sensor on a Mastergurad UPS Device
+title: Check temperature sensor on a Masterguard UPS Device
agents: snmp
author: Bastian Kuhn <bk(a)mathias-kettner.de>
license: GPL
diff --git a/checkman/masterguard_power b/checkman/masterguard_power
new file mode 100644
index 0000000..a082a84
--- /dev/null
+++ b/checkman/masterguard_power
@@ -0,0 +1,29 @@
+title: Check used power of masterguard UPS Device
+agents: snmp
+author: Bastian Kuhn <bk(a)mathias-kettner.de>
+license: GPL
+distribution: check_mk
+description:
+ This check monitors the current used power
+ per phase in watt
+ on Emmerson Masterguard UPS devices.
+
+
+item:
+ The used phase
+
+perfdata:
+ The actual power in watt
+
+inventory:
+ One check for each phase is created by the inventory
+
+[parameters]
+parameters (tuple): A pair of numbers for warning and critical level
+
+ warning (int): The max power (watt) that triggers an WARNING state
+
+ critical (int): The power (watt) that triggers an CRITICAL state
+
+[configuration]
+masterguard_power_default_levels (tuple): Default warning and critical level
diff --git a/checks/masterguard_power b/checks/masterguard_power
new file mode 100644
index 0000000..b611694
--- /dev/null
+++ b/checks/masterguard_power
@@ -0,0 +1,59 @@
+#!/usr/bin/python
+# -*- encoding: utf-8; py-indent-offset: 4 -*-
+# +------------------------------------------------------------------+
+# | ____ _ _ __ __ _ __ |
+# | / ___| |__ ___ ___| | __ | \/ | |/ / |
+# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
+# | | |___| | | | __/ (__| < | | | | . \ |
+# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
+# | |
+# | Copyright Mathias Kettner 2012 mk(a)mathias-kettner.de |
+# +------------------------------------------------------------------+
+#
+# This file is part of Check_MK.
+# The official homepage is at http://mathias-kettner.de/check_mk.
+#
+# check_mk is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation in version 2. check_mk is distributed
+# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
+# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE. See the GNU General Public License for more de-
+# ails. You should have received a copy of the GNU General Public
+# License along with GNU Make; see the file COPYING. If not, write
+# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+# Boston, MA 02110-1301 USA.
+
+masterguard_power_default_levels = (20, 1) # warning / critical
+
+def check_masterguard_power(item, params, info):
+ warn, crit = params
+ for line in info:
+ if line[0] == item:
+ power = saveint(line[1])
+ # Some "RPS SpA" systems are not RFC conform in this value.
+ # The values can get negative but should never be.
+ if power < 0:
+ power *= -1
+ perfdata = [ ( "power", power, warn, crit, 0 ) ]
+ infotext = " - current power: %dW (warn/crit at %dW/%dW)" % \
+ (power, warn, crit)
+
+ if power <= crit:
+ return (2, "CRIT" + infotext, perfdata)
+ elif power <= warn:
+ return (1, "WARN" + infotext, perfdata)
+ else:
+ return (0, "OK" + infotext, perfdata)
+
+ return (3, "UNKNOWN - Phase %s not found in SNMP output" % item)
+
+check_info['masterguard_power'] = {
+ "inventory_function" : lambda info: [ ( x[0], "masterguard_power_default_levels") for x in info ],
+ "check_function" : check_masterguard_power,
+ "service_description" : "Power phase %s",
+ "has_perfdata" : True,
+ "group" : "hw_temperature",
+ "snmp_info" : ( ".1.3.6.1.2.1.33.1.4.4.1", [ 0, 4 ] ),
+ "snmp_scan_function" : lambda oid: "masterguard" in oid('.1.3.6.1.2.1.1.1.0').lower(),
+}
Module: check_mk
Branch: master
Commit: 2debeacce37730d0e2ace7c92b8020b6921fe37c
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=2debeacce37730…
Author: Bastian Kuhn <bk(a)mathias-kettner.de>
Date: Fri Aug 10 15:47:25 2012 +0200
Addded check for masterguard in voltage
---
checkman/masterguard_in_voltage | 26 ++++++++++++++++++
checks/masterguard_in_freq | 4 +-
checks/masterguard_in_voltage | 56 +++++++++++++++++++++++++++++++++++++++
3 files changed, 84 insertions(+), 2 deletions(-)
diff --git a/checkman/masterguard_in_voltage b/checkman/masterguard_in_voltage
new file mode 100644
index 0000000..c60e9b9
--- /dev/null
+++ b/checkman/masterguard_in_voltage
@@ -0,0 +1,26 @@
+title: Show the in voltage of masterguard ups devices
+agents: snmp
+author: Bastian Kuhn <bk(a)mathias-kettner.de>
+license: GPL
+distribution: check_mk
+description:
+ In Voltage
+
+item:
+ ID of the phase
+
+perfdata:
+ The current Voltage
+
+inventory:
+ One service per phase will be created
+
+[parameters]
+parameters (tuple): A pair of numbers for warning and critical level
+
+ warning (int): The lower limit which triggers an WARNING state
+
+ critical (int): The lower limit which triggers an CRITICAL state
+
+[configuration]
+masterguard_in_voltage_default_levels (tuple): Default warning and critical level
diff --git a/checks/masterguard_in_freq b/checks/masterguard_in_freq
index 660d8f5..68944c5 100644
--- a/checks/masterguard_in_freq
+++ b/checks/masterguard_in_freq
@@ -25,7 +25,7 @@
# Boston, MA 02110-1301 USA.
-masterguard_in_freq_default_levels = (45,40) # warning / critical *below* those levels (Watt)
+masterguard_in_freq_default_levels = (45, 40) # warning / critical
def check_masterguard_in_freq(item, params, info):
warn, crit = params
@@ -49,7 +49,7 @@ def check_masterguard_in_freq(item, params, info):
check_info['masterguard_in_freq'] = {
"inventory_function" : lambda info: [ ( x[0], "masterguard_in_freq_default_levels") for x in info ],
"check_function" : check_masterguard_in_freq,
- "service_description" : "In freqenz phase %s",
+ "service_description" : "IN frequenz phase %s",
"has_perfdata" : True,
"snmp_info" : ( ".1.3.6.1.2.1.33.1.3.3.1", [ 0, 2 ] ),
"snmp_scan_function" : lambda oid: "masterguard" in oid('.1.3.6.1.2.1.1.1.0').lower(),
diff --git a/checks/masterguard_in_voltage b/checks/masterguard_in_voltage
new file mode 100644
index 0000000..5d9ca0a
--- /dev/null
+++ b/checks/masterguard_in_voltage
@@ -0,0 +1,56 @@
+#!/usr/bin/python
+# -*- encoding: utf-8; py-indent-offset: 4 -*-
+# +------------------------------------------------------------------+
+# | ____ _ _ __ __ _ __ |
+# | / ___| |__ ___ ___| | __ | \/ | |/ / |
+# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
+# | | |___| | | | __/ (__| < | | | | . \ |
+# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
+# | |
+# | Copyright Mathias Kettner 2012 mk(a)mathias-kettner.de |
+# +------------------------------------------------------------------+
+#
+# This file is part of Check_MK.
+# The official homepage is at http://mathias-kettner.de/check_mk.
+#
+# check_mk is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation in version 2. check_mk is distributed
+# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
+# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE. See the GNU General Public License for more de-
+# ails. You should have received a copy of the GNU General Public
+# License along with GNU Make; see the file COPYING. If not, write
+# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+# Boston, MA 02110-1301 USA.
+
+
+masterguard_in_voltage_default_levels = (210, 180) # warning / critical
+
+def check_masterguard_ups_in_voltage(item, params, info):
+ warn, crit = params
+ for line in info:
+ if line[0] == item:
+ power = int(line[1])
+ perfdata = [ ( "in_voltage", power, warn, crit, 150 ) ]
+ infotext = " - current in voltage: %dV, (warn/crit at %dV/%dV)" % \
+ (power, warn, crit)
+
+ if power <= crit:
+ return (2, "CRIT" + infotext, perfdata)
+ elif power <= warn:
+ return (1, "WARN" + infotext, perfdata)
+ else:
+ return (0, "OK" + infotext, perfdata)
+
+ return (3, "UNKNOWN - Phase %s not found in SNMP output" % item)
+
+check_info['masterguard_in_voltage'] = {
+ "inventory_function" : lambda info: [ ( x[0], "masterguard_in_voltage_default_levels") for x in info ],
+ "check_function" : check_masterguard_ups_in_voltage,
+ "service_description" : "IN voltage phase %s",
+ "has_perfdata" : True,
+ "group" : "hw_temperature",
+ "snmp_info" : ( ".1.3.6.1.2.1.33.1.3.3.1", [ 0, 3 ] ),
+ "snmp_scan_function" : lambda oid: "masterguard" in oid('.1.3.6.1.2.1.1.1.0').lower(),
+}
Module: check_mk
Branch: master
Commit: 8e7b9090c2bd23eaa15ff9b849b2cbdf1039d803
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=8e7b9090c2bd23…
Author: Bastian Kuhn <bk(a)mathias-kettner.de>
Date: Fri Aug 10 14:00:30 2012 +0200
Added new check for masterguard battery capacity
---
checkman/masterguard_capacity | 27 +++++++++++++++++++++
checks/masterguard_capacity | 52 +++++++++++++++++++++++++++++++++++++++++
2 files changed, 79 insertions(+), 0 deletions(-)
diff --git a/checkman/masterguard_capacity b/checkman/masterguard_capacity
new file mode 100644
index 0000000..747282b
--- /dev/null
+++ b/checkman/masterguard_capacity
@@ -0,0 +1,27 @@
+title: Check the remaining battery capacity of a Mastergurad UPS Device
+agents: snmp
+author: Bastian Kuhn <bk(a)mathias-kettner.de>
+license: GPL
+distribution: check_mk
+description:
+ This check monitors the remaining battery capacity in
+ minutes for an Masterguard UPS Device
+
+item:
+ none
+
+perfdata:
+ The remaining time in minutes
+
+inventory:
+ One service will be created
+
+[parameters]
+parameters (tuple): A pair of numbers for warning and critical level
+
+ warning (int): The amount of minutes left which triggers an WARNING state
+
+ critical (int): The amount of minutes left wich triggers an WARNING state
+
+[configuration]
+masterguard_capacity_default_levels (tuple): Default warning and critical level
diff --git a/checks/masterguard_capacity b/checks/masterguard_capacity
new file mode 100644
index 0000000..9727c80
--- /dev/null
+++ b/checks/masterguard_capacity
@@ -0,0 +1,52 @@
+#!/usr/bin/python
+# -*- encoding: utf-8; py-indent-offset: 4 -*-
+# +------------------------------------------------------------------+
+# | ____ _ _ __ __ _ __ |
+# | / ___| |__ ___ ___| | __ | \/ | |/ / |
+# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
+# | | |___| | | | __/ (__| < | | | | . \ |
+# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
+# | |
+# | Copyright Mathias Kettner 2010 mk(a)mathias-kettner.de |
+# +------------------------------------------------------------------+
+#
+# This file is part of Check_MK.
+# The official homepage is at http://mathias-kettner.de/check_mk.
+#
+# check_mk is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation in version 2. check_mk is distributed
+# in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
+# out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE. See the GNU General Public License for more de-
+# ails. You should have received a copy of the GNU General Public
+# License along with GNU Make; see the file COPYING. If not, write
+# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+# Boston, MA 02110-1301 USA.
+
+
+# ==> Remaining capacity in estimated minutes
+# SNMPv2-SMI::mib-2.33.1.2.3.0 = INTEGER: 150
+
+masterguard_capacity_default_levels = (20, 10)
+
+def check_masterguard_capacity(item, params, info):
+ warn, crit = params
+ minutes = int(info[0][0])
+ message = " - remaining capacity is estimated %d minutes" % minutes
+ state = 0
+ if minutes <= warn:
+ state = 1
+ if minutes <= crit:
+ state = 2
+ perf = [("capacity", minutes, warn, crit)]
+ return (state, nagios_state_names[state] + message, perf )
+
+check_info['masterguard_capacity'] = {
+ "inventory_function" : lambda info: [( None, "masterguard_capacity_default_levels")],
+ "check_function" : check_masterguard_capacity,
+ "service_description" : "Battery capacity",
+ "has_perfdata" : True,
+ "snmp_info" : ( ".1.3.6.1.2.1.33.1.2", [ "3.0" ] ),
+ "snmp_scan_function" : lambda oid: "masterguard" in oid('.1.3.6.1.2.1.1.1.0').lower(),
+}