Module: check_mk
Branch: master
Commit: 295df36241362e20cd77fedb8f47fd21ca2f0253
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=295df36241362e…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon Apr 15 14:27:34 2013 +0200
setup: Added missing vars rrd_path and rrdcached_sock
---
ChangeLog | 1 +
scripts/setup.sh | 10 ++++++++++
2 files changed, 11 insertions(+)
diff --git a/ChangeLog b/ChangeLog
index 65703eb..3d1c2dd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,6 +6,7 @@
an alternative host check command (without manually defining one)
* New variable snmp_check_interval which can be used to customize
the check intervals of SNMP based checks
+ * setup: Added missing vars rrd_path and rrdcached_sock
Multisite:
* New availability view for arbitrary host/service collections
diff --git a/scripts/setup.sh b/scripts/setup.sh
index c57f531..487d95e 100755
--- a/scripts/setup.sh
+++ b/scripts/setup.sh
@@ -375,6 +375,14 @@ Those templates make the history graphs look nice. PNP4Nagios
expects such templates in the directory pnp/templates in your
document root for static web pages"
+ask_dir rrd_path /var/lib/nagios/rrd $HOMEBASEDIR/var/nagios/rrd $OMD_ROOT/var/pnp4nagios/perfdata "RRD files" \
+ "Configure the directory PNP4Nagios stores the RRD database files in"
+
+ask_dir rrdcached_socket /tmp/rrdcached.sock $HOMEBASEDIR/var/rrdcached.sock $OMD_ROOT/tmp/run/rrdached.sock "rrdcached socket" \
+ "If you use the rrdcached to process performance data from Nagios,
+you can configure the socket of the rrdcached here to make the prediction
+feature use it"
+
# -------------------------------------------------------------------
ask_title "Check_MK Livestatus Module"
# -------------------------------------------------------------------
@@ -483,6 +491,8 @@ tcp_cache_dir = '$vardir/cache'
tmp_dir = '$vardir/tmp'
logwatch_dir = '$vardir/logwatch'
nagios_objects_file = '$nagconfdir/check_mk_objects.cfg'
+rrd_path = '$rrd_path'
+rrddcached_socket = '$rrdcached_socket'
nagios_command_pipe_path = '$nagpipe'
check_result_path = '$check_result_path'
nagios_status_file = '$nagios_status_file'
Module: check_mk
Branch: master
Commit: d1d8e8a35991bd52cfd566d5a40fd33739e5f3ee
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=d1d8e8a35991bd…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Mon Apr 15 09:35:16 2013 +0200
Fix levels on disk IO (was wrong by 10^12)
---
checks/diskstat.include | 2 +-
modules/check_mk_base.py | 15 +++++++++++----
2 files changed, 12 insertions(+), 5 deletions(-)
diff --git a/checks/diskstat.include b/checks/diskstat.include
index 3ea731b..ac50687 100644
--- a/checks/diskstat.include
+++ b/checks/diskstat.include
@@ -121,7 +121,7 @@ def check_diskstat_line(this_time, item, params, line):
# check levels
state, text, extraperf = check_levels(bytes_per_sec, dsname, levels,
- unit = "MB/s", factor = 1.0 / 1048576, statemarkers=True)
+ unit = "MB/s", factor = 1048576, statemarkers=True)
if text:
infos.append(text)
status = max(state, status)
diff --git a/modules/check_mk_base.py b/modules/check_mk_base.py
index 1585a8c..56c7de0 100755
--- a/modules/check_mk_base.py
+++ b/modules/check_mk_base.py
@@ -1293,6 +1293,13 @@ def nodes_of(hostname):
# Generic function for checking a value against levels. This also support
# predictive levels.
+# value: currently measured value
+# dsname: name of the datasource in the RRD that corresponds to this value
+# unit: unit to be displayed in the plugin output, e.g. "MB/s"
+# factor: the levels are multiplied with this factor before applying
+# them to the value. For example the disk-IO check uses B/s
+# as the unit for the value. But the levels are in MB/s. In that
+# case the factor is 1.0 / 1048576.
def check_levels(value, dsname, params, unit = "", factor = 1.0, statemarkers=False):
if params == None or params == (None, None):
@@ -1325,18 +1332,18 @@ def check_levels(value, dsname, params, unit = "", factor = 1.0, statemarkers=Fa
# Critical cases
if crit_upper != None and value >= crit_upper:
state = 2
- infotext += " (critical level at %.2f)" % crit_upper
+ infotext += " (critical level at %.2f%s)" % (crit_upper / factor, unit)
elif crit_lower != None and value <= crit_lower:
state = 2
- infotext += " (too low: critical level at %.2f)" % crit_lower
+ infotext += " (too low: critical level at %.2f%s)" % (crit_lower / factor, unit)
# Warning cases
elif warn_upper != None and value >= warn_upper:
state = 1
- infotext += " (warning level at %.2f)" % warn_upper
+ infotext += " (warning level at %.2f%s)" % (warn_upper / factor, unit)
elif warn_lower != None and value <= warn_lower:
state = 1
- infotext += " (too low: warning level at %.2f)" % warn_lower
+ infotext += " (too low: warning level at %.2f%s)" % (warn_lower / factor, unit)
# OK
else:
Module: check_mk
Branch: master
Commit: 1750fd4719424158d4914e2720405773e4c46932
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=1750fd47194241…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Thu Apr 11 16:05:05 2013 +0200
Added check parameter to sap_values check to limit the number of levels to use as servicename
---
checks/sap | 20 ++++++++++++++++----
web/plugins/wato/check_parameters.py | 10 +++++++++-
2 files changed, 25 insertions(+), 5 deletions(-)
diff --git a/checks/sap b/checks/sap
index 9e6bf27..f27bdc1 100644
--- a/checks/sap
+++ b/checks/sap
@@ -91,12 +91,19 @@ def inventory_sap_value(info):
continue
v = rule[0]
- patterns.append(v['match'])
+ patterns.append((v['match'], v.get('limit_item_levels')))
for line in info:
- for pattern in patterns:
+ for pattern, limit_item_levels in patterns:
+ print pattern, limit_item_levels
if sap_value_path_matches(line[3], pattern):
- inv.append((line[0] + ' ' + line[3], {}))
+ params = {}
+ if limit_item_levels:
+ path = '/'.join(line[3].split('/')[-limit_item_levels:])
+ params['limit_item_levels'] = limit_item_levels
+ else:
+ path = line[3]
+ inv.append((line[0] + ' ' + path, params))
return inv
@@ -122,7 +129,12 @@ def check_sap_value(item, params, info):
status = None
perfdata = []
for line in info:
- if line[0] + ' ' + line[3] == item:
+ if params.get('limit_item_levels'):
+ this_path = '/'.join(line[3].split('/')[-params.get('limit_item_levels'):])
+ else:
+ this_path = line[3]
+
+ if line[0] + ' ' + this_path == item:
status = sap_nagios_state_map[int(line[1])]
if line[4] != '-':
# This is a performance value, has no output
diff --git a/web/plugins/wato/check_parameters.py b/web/plugins/wato/check_parameters.py
index c253cef..5d6ed73 100644
--- a/web/plugins/wato/check_parameters.py
+++ b/web/plugins/wato/check_parameters.py
@@ -418,8 +418,16 @@ register_rule(group + '/' + subgroup_inventory,
match = lambda x: (not x and 2) or (x[0] == '~' and 1 or 0),
default_value = 'SAP CCMS Monitor Templates/Dialog Overview/Dialog Response Time/ResponseTime',
)),
+ ('limit_item_levels', Integer(
+ title = _("Limit Levels for Service Names"),
+ unit = _('levels'),
+ minvalue = 1,
+ help = _("The service descriptions of the inventorized services are named like the paths "
+ "in SAP. You can use this option to let the inventory function only use the last "
+ "x path levels for naming."),
+ )),
],
- optional_keys = [],
+ optional_keys = ['limit_item_levels'],
),
match = 'list',
)