Module: check_mk
Branch: master
Commit: c005d17d9023c4c1f8afe0ccff9349221cc9e1a2
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=c005d17d9023c4…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Wed Nov 24 16:34:17 2010 +0100
Added simple pnp template for printer_supply check - thanks to Oliver Borgmann
---
ChangeLog | 1 +
pnp-templates/check_mk-printer_supply.php | 50 +++++++++++++++++++++++++++++
2 files changed, 51 insertions(+), 0 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 21f029b..a432d35 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -84,6 +84,7 @@
* printer_supply: In case of OKI c5900 devices the name of the supply units ins not
unique. The color of the supply unit is reported in a dedicated OID and added to the
check item name to have a unique name now.
+ * prnter_supply: Added simple pnp template to have better graph formating for the check results
Multisite:
* The custom open/close states of custom links are now stored for each
diff --git a/pnp-templates/check_mk-printer_supply.php b/pnp-templates/check_mk-printer_supply.php
new file mode 100644
index 0000000..d08cb49
--- /dev/null
+++ b/pnp-templates/check_mk-printer_supply.php
@@ -0,0 +1,50 @@
+<?php
+# +------------------------------------------------------------------+
+# | ____ _ _ __ __ _ __ |
+# | / ___| |__ ___ ___| | __ | \/ | |/ / |
+# | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
+# | | |___| | | | __/ (__| < | | | | . \ |
+# | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
+# | |
+# +------------------------------------------------------------------+
+#
+# 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.
+
+# Template contributed by Oliver Borgmann, Copyright 2010
+
+$CRITPERC = $CRIT[1]*100/$MAX[1];
+$WARNPERC = $WARN[1]*100/$MAX[1];
+
+$opt[1] = "--vertical-label \"Percent left\" -l -20 -u 100 --title \"$hostname / $servicedesc \" ";
+
+if(preg_match('/black/i', $servicedesc))
+ $color = '000000';
+elseif(preg_match('/magenta/i', $servicedesc))
+ $color = 'fc00ff';
+elseif(preg_match('/yellow/i', $servicedesc))
+ $color = 'ff0000';
+elseif(preg_match('/cyan/i', $servicedesc))
+ $color = '00ffff';
+else
+ $color = 'cccccc';
+
+$def[1] = "DEF:var1=$RRDFILE[1]:$DS[1]:MAX ";
+$def[1] .= "CDEF:perc1=var1,100,* ";
+$def[1] .= "CDEF:perc=perc1,$MAX[1],/ ";
+$def[1] .= "HRULE:$CRITPERC#ff0000:\"Crit\: $CRITPERC%\" ";
+$def[1] .= "HRULE:$WARNPERC#ffff00:\"Warn\: $WARNPERC%\" ";
+$def[1] .= "AREA:perc#$color:\"Percent\:\" ";
+$def[1] .= "GPRINT:perc:MAX:\"%2.0lf%%\\n\" ";
+?>
Module: check_mk
Branch: master
Commit: 8c43bacf1c7c90c63143c41b5f2a52beff867b30
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=8c43bacf1c7c90…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Tue Nov 23 20:48:21 2010 +0100
printer_supply: In case of OKI c5900 devices the name of the supply
units ins not unique. The color of the supply unit is reported in a dedicated
OID and added to the check item name to have a unique name now.
---
ChangeLog | 3 +++
checkman/printer_supply | 9 ++++-----
checks/printer_supply | 43 ++++++++++++++++++++++++++++++++++++++++---
3 files changed, 47 insertions(+), 8 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 4d9241e..009e682 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -81,6 +81,9 @@
* Cleaned up several checks to meet the variable naming conventions
* drbd: Handling unconfigured drbd devices correctly. These devices are
ignored during nventory
+ * printer_supply: In case of OKI c5900 devices the name of the supply units ins not
+ unique. The color of the supply unit is reported in a dedicated OID and added to the
+ check item name to have a unique name now.
Multisite:
* The custom open/close states of custom links are now stored for each
diff --git a/checkman/printer_supply b/checkman/printer_supply
index 2977f6c..7f3118b 100644
--- a/checkman/printer_supply
+++ b/checkman/printer_supply
@@ -13,11 +13,10 @@ description:
how much is remaining in a supply, so the printer says "some remaining".
This value produces a warning.
- Please note, that some manufactures do not have unique names for
- their supply units in the MIB. They for example name all for toner
- units {Toner Cartridge OKI DATA CORP}. In that case, only the first
- unit will be checked (which does not make much sense). A future version
- of the check might handle that problem - the current one not.
+ In case of OKI c5900 devices the name of the supply units ins not unique.
+ One example is {Toner Cartridge OKI DATA CORP}. In this case the color of
+ the supply unit is added to the beginning of the name to get a unique
+ item name.
perfdata:
The remaining filling level in units (pages remaining).
diff --git a/checks/printer_supply b/checks/printer_supply
index 5fc0f35..2c9d742 100644
--- a/checks/printer_supply
+++ b/checks/printer_supply
@@ -30,13 +30,47 @@
# | Peter Lauk <lauk(a)stuttgart-airport.com> Copyright 2010 |
# +------------------------------------------------------------------+
+# In some cases the name of the part is not uniq. e.g. for c5900
+# devices. In this cases add the color from the dedicated OID to
+# the item name.
+#
+# Example output for this case:
+#
+#['Toner Cartridge OKI DATA CORP', '100', '30', 'black']
+#['Toner Cartridge OKI DATA CORP', '100', '10', 'cyan']
+#['Toner Cartridge OKI DATA CORP', '100', '10', 'magenta']
+#['Toner Cartridge OKI DATA CORP', '100', '40', 'yellow']
+#['Image Drum Unit OKI DATA CORP', '20000', '-409', '']
+#['Image Drum Unit OKI DATA CORP', '20000', '7969', '']
+#['Image Drum Unit OKI DATA CORP', '20000', '11597', '']
+#['Image Drum Unit OKI DATA CORP', '20000', '4621', '']
+#['Belt Unit OKI DATA CORP', '60000', '47371', '']
+#['Fuser Unit OKI DATA CORP', '60000', '26174', '']
+#['Waste Toner box OKI DATA CORP', '1', '-2', '']
+
printer_supply_default_levels = (20, 10)
+# Workaround for toners and drum units in c5900 devices
+# which have equal names for the single parts.
+# Add the color description to that item
+def printer_supply_fix_infos(info):
+ colors = []
+ for index, line in enumerate(info):
+ if line[0].startswith('Toner Cartridge') \
+ or line[0].startswith('Image Drum Unit'):
+ if line[3]:
+ colors += [ line[3] ]
+ color = line[3]
+ elif line[3] == '':
+ color = colors[index - len(colors)]
+ info[index][0] = '%s %s' % (color.title(), line[0])
+ return info
+
def inventory_printer_supply(checkname, info):
- return [ (line[0], "printer_supply_default_levels") for line in info ]
+ return [ (line[0], "printer_supply_default_levels") for line in printer_supply_fix_infos(info) ]
def check_printer_supply(item, params, info):
- for line in info:
+ for line in printer_supply_fix_infos(info):
if line[0] == item:
maxlevel = float(line[1])
current = float(line[2])
@@ -61,7 +95,10 @@ def check_printer_supply(item, params, info):
check_info['printer_supply'] = (check_printer_supply, "Supply %s", 1, inventory_printer_supply)
-snmp_info['printer_supply'] = ( ".1.3.6.1.2.1.43.11.1.1", [ 6, 8, 9 ] )
+snmp_info['printer_supply'] = ( ".1.3.6.1.2.1.43", [ '11.1.1.6',
+ '11.1.1.8',
+ '11.1.1.9',
+ '12.1.1.4' ] )
snmp_scan_functions['printer_supply'] = \
lambda oid: not not oid(".1.3.6.1.2.1.43.11.1.1.6.1.1")