Module: check_mk
Branch: master
Commit: e40009a852a6af9eb2d840d76bbc6d27691726c8
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=e40009a852a6af…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Mon Nov 14 17:26:03 2011 +0100
Repaired ChangeLog
---
ChangeLog | 12 ++++--------
1 files changed, 4 insertions(+), 8 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index a301df6..118cd8e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -20,6 +20,8 @@
* Implemented logout functionality in OMD environments
* New filter for the (new) state in host/service alerts
* New command for sending custom notifications
+ * FIX: Fixed encoding problem when opening dashboard
+ * FIX: Fixed styling of view header in older IE browsers
WATO:
* Evolved to full featured monitoring configuration tool!
@@ -44,6 +46,8 @@
by making use of external helper processes. Set livecheck=PATH_TO_bin/livecheck
in nagios.cfg where you load Livestatus. Optional set num_livecheck_helpers=NUM
to set number of processes. Nagios will not fork() anymore for check exection.
+ * New columns num_hosts and num_services in status table
+ * New aggregation functions suminv and avginv (see Documentation)
1.1.12p2:
Core, Setup, etc.:
@@ -56,15 +60,7 @@
* FIX: blade_bays: fix naming of item and man page
Multisite:
- * FIX: Fixed encoding problem when opening dashboard
- * FIX: Fixed styling of view header in older IE browsers
* FIX: Disallow settings downtimes that end in the past
-
- Livestatus:
- * New columns num_hosts and num_services in status table
- * New aggregation functions suminv and avginv (see Documentation)
-
-1.1.12p2:
* FIX: Do not show WATO button in views if WATO is disabled
* FIX: Remove WATO Folder filter if WATO is disabled
Module: check_mk
Branch: master
Commit: 5c6b09feede9be0e8f3f3cd2914b9a57f57d95f6
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=5c6b09feede9be…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Mon Nov 14 17:30:19 2011 +0100
Repaired ChangeLog section of 1.1.12p2
---
ChangeLog | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 118cd8e..72425f5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -21,7 +21,6 @@
* New filter for the (new) state in host/service alerts
* New command for sending custom notifications
* FIX: Fixed encoding problem when opening dashboard
- * FIX: Fixed styling of view header in older IE browsers
WATO:
* Evolved to full featured monitoring configuration tool!
@@ -60,9 +59,11 @@
* FIX: blade_bays: fix naming of item and man page
Multisite:
- * FIX: Disallow settings downtimes that end in the past
+ * FIX: Fixed styling of view header in older IE browsers
* FIX: Do not show WATO button in views if WATO is disabled
- * FIX: Remove WATO Folder filter if WATO is disabled
+ * FIX: Remove WATO Folder filter if WATO is disabled
+ * FIX: Snapin 'Performance': fix text align for numbers
+ * FIX: Disallow settings downtimes that end in the past
1.1.12p1:
Core, Setup, etc.:
Module: check_mk
Branch: master
Commit: 19587113966e62c2669648fc5a01d9831e0651ad
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=19587113966e62…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Mon Nov 14 15:26:50 2011 +0100
logwatch: allow to classify messages based on their count
---
ChangeLog | 2 ++
checkman/logwatch | 17 ++++++++++++++++-
checks/logwatch | 46 ++++++++++++++++++++++++++++++++++++++++------
3 files changed, 58 insertions(+), 7 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index f0304ab..b6f11e7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -12,6 +12,8 @@
to process and which levels of messages to send.
* Windows agent: new config variable "host" in all sections that
restricts the folling entries to certain hosts.
+ * logwatch: allow to classify messages based on their count (see
+ man page of logwatch for details)
Multisite:
* New nifty sidebar snapin "Speed-O-Meter"
diff --git a/checkman/logwatch b/checkman/logwatch
index fe9f1a8..c769e62 100644
--- a/checkman/logwatch
+++ b/checkman/logwatch
@@ -33,6 +33,7 @@ examples:
logwatch_patterns = {
"System": [ ('W', "crash"),
('I', "svchost") ],
+ ((10,30), "login.*failed") ],
"/var/log/messages": [ ( ['test'], ALL_HOSTS, 'I', "sshd") ]
}
@@ -41,7 +42,14 @@ patterns (list): The parameter can be used to reclassify
log messages sent by the agent. You can assign one of
the three levels {'I'} (ignore), {'W'} (warning) or
{'C'} (critical) to each message. It is only possible
- to reclassify messages with an original level of {W} or {C}.
+ to reclassify messages that have already been classified
+ by the agent with an original level of {I}, {W} or {C}.
+ As of version 1.1.13i1 the Windows agent supports sending
+ always all messages and classifying non-problems as {I}.
+ This is done by a configution
+ via {check_mk.ini} and setting the level for a logfile to {all}.
+ Those messages can later be reclassified.
+
Each entry of the list is a pair of the new level and an
extended regular expression searched in the log line.
Please note, that because logwatch checks are usually
@@ -49,6 +57,13 @@ patterns (list): The parameter can be used to reclassify
{logwatch_patterns} instead of explicit check parameters.
Example: {[ ('I', "sshd"), ('C', "foo.*bar") ]}
+ In the current version of this check a level can be substituted
+ by a pair of numbers, e.g. instead of {'W'} you can write {(10, 20)}.
+ In that case the message will be considered as {'I'} for the first
+ 9 appearances, further appearances will be classified as {'W'} and
+ from the 20th message on it will be {'C'}. The counts are reset each
+ time the host is being checked.
+
[configuration]
logwatch_patterns (dict): A dictionary for reclassifying
the level of certain messages. This is especially useful
diff --git a/checks/logwatch b/checks/logwatch
index 16a91e3..4e118cf 100644
--- a/checks/logwatch
+++ b/checks/logwatch
@@ -44,9 +44,9 @@ def inventory_logwatch(info):
#logwatch_patterns = {
# 'System': [
# ( 'W', 'sshd' ),
-# ( ['host1', 'host2'], 'C', 'ssh' ), # only applies to certain hosts
+# ( ['host1', 'host2'], 'C', 'ssh' ), # only applies to certain hosts
# ( ['lnx', 'dmz'], ALL_HOSTS, 'C', 'ssh' ), # only applies to host having certain tags
-
+# ( ALL_HOSTS, (10, 20), 'x' ), # at 10 messages per interval warn, at 20 crit
# ( 'I', '0' )
# ],
# 'Application': [
@@ -55,7 +55,25 @@ def inventory_logwatch(info):
# ]
# }
-# Extracts only pattern relevant for current host and item.
+# New rule-stule logwatch_rules in WATO friendly consistent rule notation:
+#
+# logwatch_rules = [
+# ( [ PATTERNS ], ALL_HOSTS, [ "Application", "System" ] ),
+# ]
+# All [ PATTERNS ] of matching rules will be concatenated in order of
+# appearance.
+#
+# PATTERN is a list like:
+# [ ( 'I', ".*ssh.*" ), # Ignore these messages
+# ( (10, 20), "login" ), # Warning at 10 messages, Critical at 20
+# ( 'C', "bad" ), # Always critical
+# ( 'W', "not entirely bad" ), # Always warning
+# ]
+#
+
+
+
+# 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)
@@ -82,16 +100,31 @@ def logwatch_precompile(hostname, item, params):
return params
-def logwatch_reclassify(patterns, text):
+def logwatch_reclassify(counts, patterns, text):
for level, pattern in patterns:
reg = compiled_regexes.get(pattern)
if not reg:
reg = re.compile(pattern)
compiled_regexes[pattern] = reg
if reg.search(text):
- return level
+ # If the level is not fixed like 'C' or 'W' but a pair like (10, 20),
+ # then we count how many times this pattern has already matched and
+ # assign the levels according to the number of matches of this pattern.
+ if type(level) == tuple:
+ warn, crit = level
+ newcount = counts.setdefault(id(pattern), 0) + 1
+ counts[id(pattern)] = newcount
+ if newcount >= crit:
+ return 'C'
+ elif newcount >= warn:
+ return 'W'
+ else:
+ return 'I'
+ else:
+ return level
return None
+
# In case of a precompiled check, params contains the precompiled
# logwatch_patterns for the logfile we deal with. If using check_mk
# without precompiled checks, the params must be None an will be
@@ -183,6 +216,7 @@ def check_logwatch(item, params, info):
else:
patterns = logwatch_precompile(g_hostname, item, None)
+ counts = {} # for counting number of matches of a certain pattern
if len(loglines) > 0:
worst = 0
newloglines = []
@@ -194,7 +228,7 @@ def check_logwatch(item, params, info):
else:
text = ""
if patterns and level != '.': # do never reclassify informational context messages
- newlevel = logwatch_reclassify(patterns, text)
+ newlevel = logwatch_reclassify(counts, patterns, text)
if newlevel != None:
level = newlevel
Module: check_mk
Branch: master
Commit: b1f418ef160acf0bad3196ae856e4837095ebacf
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=b1f418ef160acf…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Sun Nov 13 20:54:10 2011 +0100
Remove test code
---
modules/check_mk_base.py | 3 ---
1 files changed, 0 insertions(+), 3 deletions(-)
diff --git a/modules/check_mk_base.py b/modules/check_mk_base.py
index a7a1765..747b025 100755
--- a/modules/check_mk_base.py
+++ b/modules/check_mk_base.py
@@ -673,9 +673,6 @@ def save_counters(hostname):
# This is the main check function - the central entry point to all and
# everything
def do_check(hostname, ipaddress):
-# HIRN
- import time
- time.sleep(30)
if opt_verbose:
sys.stderr.write("Check_mk version %s\n" % check_mk_version)