Module: check_mk
Branch: master
Commit: 8fe223f7fa2d92f3cb978627cf9fef94de099ce3
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=8fe223f7fa2d92…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Fri Mar 16 12:44:24 2012 +0100
Added new rule logwatch_rules to configure logwatch patterns using WATO
---
checks/logwatch | 24 ++++++++++++++-----
web/plugins/wato/check_parameters.py | 42 ++++++++++++++++++++++++++++++---
2 files changed, 56 insertions(+), 10 deletions(-)
diff --git a/checks/logwatch b/checks/logwatch
index 4aaa609..fe893ec 100644
--- a/checks/logwatch
+++ b/checks/logwatch
@@ -28,6 +28,7 @@
# Configuration variables in main.mk needed during the actual check
logwatch_dir = var_dir + '/logwatch'
logwatch_patterns = { }
+logwatch_rules = []
logwatch_max_filesize = 500000 # do not save more than 500k of message (configurable)
# Variables embedded in precompiled checks
@@ -76,8 +77,18 @@ def inventory_logwatch(info):
# Extracts patterns that are relevant for the current host and item.
# Constructs simple list of pairs: [ ('W', 'crash.exe'), ('C', 'sshd.*test') ]
def logwatch_precompile(hostname, item, params):
- patterns = logwatch_patterns.get(item)
+ # First load the logwatch_rules var (used by WATO)
+ description = check_info['logwatch']['service_description'] % item
+ rules = service_extra_conf(hostname, description, logwatch_rules)
+
+ # Initialize params with these rules but remove the comment
params = []
+ for rule in rules:
+ for pattern in rule:
+ params.append((pattern[0], pattern[1]))
+
+ # Now load the old logwatch_patterns var
+ patterns = logwatch_patterns.get(item)
if patterns:
for entry in patterns:
hostlist = None
@@ -277,10 +288,11 @@ def check_logwatch(item, params, info):
return (worst, state + " - error messages present!")
-check_info['logwatch'] = (
- check_logwatch,
- "LOG %s",
- 0,
- inventory_logwatch)
+check_info['logwatch'] = {
+ 'check_function': check_logwatch,
+ 'service_description': "LOG %s",
+ 'has_perfdata': 0,
+ 'inventory_function': inventory_logwatch,
+}
precompile_params['logwatch'] = logwatch_precompile
diff --git a/web/plugins/wato/check_parameters.py b/web/plugins/wato/check_parameters.py
index 896d494..f2bb546 100644
--- a/web/plugins/wato/check_parameters.py
+++ b/web/plugins/wato/check_parameters.py
@@ -24,10 +24,7 @@
# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
# Boston, MA 02110-1301 USA.
-#!/usr/bin/python
-# encoding: utf-8
-
-# Rules for configuring parameters of checks (services) |
+# Rules for configuring parameters of checks (services)
group = _("Parameters and rules for inventorized checks")
@@ -97,6 +94,43 @@ checkgroups.append((
"first"
))
+register_rule(group,
+ "logwatch_rules",
+ ListOf(
+ Tuple(
+ help = _("This defines one logwatch pattern rule"),
+ show_titles = True,
+ orientation = "horizontal",
+ elements = [
+ DropdownChoice(
+ title = _("State"),
+ choices = [
+ ('C', _('CRITICAL')),
+ ('W', _('WARNING')),
+ ('I', _('IGNORE')),
+ ],
+ ),
+ # FIXME: Own object type (optional hidden text field for regex validation)
+ TextAscii(
+ title = _("Pattern"),
+ size = 20,
+ #help = _("The regular expression to match the log lines."),
+ ),
+ TextAscii(
+ title = _("Comment"),
+ #help = _("You can insert a log line or a part of a log line to test the pattern stated left."),
+ ),
+ ]
+ ),
+ help = _('You can define one or several patterns in each logwatch pattern rule. '
+ 'These patterns are applied to the selected logfiles to reclassify the '
+ 'matching log messages. The first pattern which matches a line will '
+ 'be used for reclassifying a message.'),
+ add_label = _("Add pattern"),
+ ),
+ title = _("Logwatch patterns"),
+ itemtype = "service",
+)
checkgroups.append((
"brocade_fcport",
Module: check_mk
Branch: master
Commit: aaa0acd5353296514b95b27cb60ff2e906cef10e
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=aaa0acd5353296…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Fri Apr 13 11:37:41 2012 +0200
Logwatch: Fixed handling when no patterns/rules are defined
---
checks/logwatch | 5 ++++-
1 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/checks/logwatch b/checks/logwatch
index 81a8d48..a0194a7 100644
--- a/checks/logwatch
+++ b/checks/logwatch
@@ -235,7 +235,10 @@ def check_logwatch(item, params, info):
(username(), e))
# Get the patterns (either compile or reuse the precompiled ones)
- if params:
+ # Check_MK creates an empty string if the precompile function has
+ # not been exectued yet. The precomile function creates an empty
+ # list when no rules/patterns are defined.
+ if params != '':
patterns = params # patterns already precompiled
else:
patterns = logwatch_precompile(g_hostname, item, None)