Module: check_mk
Branch: master
Commit: c6b8d001da6abd56baff8c8c1640791ebfac1b3a
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=c6b8d001da6abd…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Mon Jun 29 14:47:34 2015 +0200
#2365 Removed old deprecated notification global options for plain emails
The global settings for old plain email notifications (like configuring the
subject) have been removed. The will not work for the current rule based
notifications anyway. If you really still use plain emails then your old
settings will continue to work for the while, though. We encourage you to
switch over to rule based notifiations.
---
.werks/2365 | 13 ++++
ChangeLog | 1 +
web/plugins/wato/globals_notification.py | 117 ------------------------------
3 files changed, 14 insertions(+), 117 deletions(-)
diff --git a/.werks/2365 b/.werks/2365
new file mode 100644
index 0000000..cc3f720
--- /dev/null
+++ b/.werks/2365
@@ -0,0 +1,13 @@
+Title: Removed old deprecated notification global options for plain emails
+Level: 2
+Component: wato
+Compatible: compat
+Version: 1.2.7i3
+Date: 1435581968
+Class: feature
+
+The global settings for old plain email notifications (like configuring the
+subject) have been removed. The will not work for the current rule based
+notifications anyway. If you really still use plain emails then your old
+settings will continue to work for the while, though. We encourage you to
+switch over to rule based notifiations.
diff --git a/ChangeLog b/ChangeLog
index f361343..c8860ee 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -22,6 +22,7 @@
* 2379 FIX: Plugin-Output: Fixed handling of URLs within output of check_http...
WATO:
+ * 2365 Removed old deprecated notification global options for plain emails...
* 2344 FIX: Improved validation of selected rules when editing BI aggregations...
* 2346 FIX: Notifications: Fixed garbled page when switching on/off bulks/backlog/user rules
diff --git a/web/plugins/wato/globals_notification.py b/web/plugins/wato/globals_notification.py
index e37eb32..81234d3 100644
--- a/web/plugins/wato/globals_notification.py
+++ b/web/plugins/wato/globals_notification.py
@@ -104,123 +104,6 @@ register_configvar(group,
),
domain = "check_mk")
-register_configvar(group,
- "notification_mail_command",
- TextUnicode(
- title = _("Email command line used for notifications"),
- help = _("This command will be executed whenever a notification should be done. "
- "The command will receive the notification text body on standard input. "
- "The macro <tt>$SUBJECT$</tt> will be replaced by a text configured "
- "with "
- "<a href=\"%s\"><tt>notification_host_subject</tt></a>"
- " and "
- "<a href=\"%s\"><tt>notification_service_subject</tt></a>. "
- "You find a list of all remaining available variables in the help text of "
- "<a href=\"%s\"><tt>notification_common_body</tt></a>." % (
- "wato.py?mode=edit_configvar&varname=notification_host_subject",
- "wato.py?mode=edit_configvar&varname=notification_service_subject",
- "wato.py?mode=edit_configvar&varname=notification_common_body",
- )),
- size = 50,
- attrencode = True,
- ),
- domain = "check_mk")
-
-register_configvar(group,
- "notification_host_subject",
- TextUnicode(
- title = _("Email subject to use for host notifications"),
- help = _("This template will be used as <tt>$SUBJECT$</tt> in email notifications "
- "that deal with host alerts. The variable <tt>$SUBJECT$</tt> will then "
- "be available in <a href=\"%s\"><tt>notification_common_body</tt></a>." % (
- "wato.py?mode=edit_configvar&varname=notification_common_body",
- )),
- size = 50,
- attrencode = True,
- ),
- domain = "check_mk")
-
-register_configvar(group,
- "notification_service_subject",
- TextUnicode(
- title = _("Email subject to use for service notifications"),
- help = _("This template will be used as <tt>$SUBJECT$</tt> in email notifications "
- "that deal with service alerts. The variable <tt>$SUBJECT$</tt> will then "
- "be available in <a href=\"%s\"><tt>notification_common_body</tt></a>." % (
- "wato.py?mode=edit_configvar&varname=notification_common_body",
- )),
- size = 50,
- attrencode = True,
- ),
- domain = "check_mk")
-
-
-register_configvar(group,
- "notification_common_body",
- TextAreaUnicode(
- title = _("Email body to use for both host and service notifications"),
- help = _("This template will be used as email body when sending notifications. "
- "Appended to it will be a specific body for either host or service "
- "notifications configured in two extra parameters. "
- "The following macros are available in all templates:<br><br>"
- "<tt><b>$CONTACTNAME$</b></tt>: login name of the contact person, "
- "<tt><b>$CONTACTEMAIL$</b></tt>: email address of the contact person, "
- "<tt><b>$CONTACTPAGER$</b></tt>: pager address of the contact person, "
- "<tt><b>$NOTIFICATIONTYPE$</b></tt>: one of PROBLEM, RECOVERY, ACKNOWLEDGEMENT, FLAPPINGSTART, FLAPPINGSTOP, FLAPPINGDISABLED, DOWNTIMESTART, DOWNTIMEEND, or DOWNTIMECANCELLED, "
- "<tt><b>$HOSTNAME$</b></tt>: the name of the host, "
- "<tt><b>$HOSTALIAS$</b></tt>: the alias of the host, "
- "<tt><b>$HOSTADDRESS$</b></tt>: the IP address or DNS name of the host, "
- "<tt><b>$LASTHOSTSTATE$</b></tt>: the previous state of the host, "
- "<tt><b>$HOSTSTATE$</b></tt>: the new state of the host, "
- "<tt><b>$HOSTCHECKCOMMAND$</b></tt>: the name of the host check command, "
- "<tt><b>$HOSTOUTPUT$</b></tt>: the output of the host check command, "
- "<tt><b>$LONGHOSTOUTPUT$</b></tt>: the long output of the host check, "
- "<tt><b>$HOSTPERFDATA$</b></tt>: the performance data of the host check, "
- "<tt><b>$SERVICEDESC$</b></tt>: the name of the service, "
- "<tt><b>$LASTSERVICESTATE$</b></tt>: the previous state of the service, "
- "<tt><b>$SERVICESTATE$</b></tt>: the new state of the service, "
- "<tt><b>$SERVICEOUTPUT$</b></tt>: the output of the check command , "
- "<tt><b>$LONGSERVICEOUTPUT$</b></tt>: the long output of the check command, "
- "<tt><b>$SERVICEPERFDATA$</b></tt>: the performance data of the check, "
- "<tt><b>$SERVICECHECKCOMMAND$</b></tt>: the name of the service check command, "
- "<tt><b>$HOSTPROBLEMID$</b></tt>: a unique ID of the host problem this notification is about, "
- "<tt><b>$SERVICEPROBLEMID$</b></tt>: the same for service problems, "
- "<tt><b>$HOSTNOTIFICATIONNUMBER$</b></tt>: the number of notification of this host problem (begins with 1), "
- "<tt><b>$HOSTURL$</b></tt>: URL pointing to the host detail view (starting with /check_mk/...), "
- "<tt><b>$SERVICEURL$</b></tt>: URL pointing to the service detail view (starting with /check_mk/...), "
- "<br><br>"
- "<tt><b>$MONITORING_HOST$</b></tt>: the host name of the monitoring server "
- "<tt><b>$OMD_ROOT$</b></tt>: the home directory of the OMD site (only on OMD) "
- "<tt><b>$OMD_SITE$</b></tt>: the name of the OMD site (only on OMD) "
- ),
- attrencode = True,
- ),
- domain = "check_mk")
-
-
-register_configvar(group,
- "notification_host_body",
- TextAreaUnicode(
- title = _("Email body to use for host notifications"),
- help = _("This template will be appended to the <a href=\"%s\"><tt>"
- "notification_common_body</tt></a> when host notifications are sent." %
- "wato.py?mode=edit_configvar&varname=notification_common_body"
- ),
- attrencode = True,
- ),
- domain = "check_mk")
-
-register_configvar(group,
- "notification_service_body",
- TextAreaUnicode(
- title = _("Email body to use for service notifications"),
- help = _("This template will be appended to the <a href=\"%s\"><tt>"
- "notification_common_body</tt></a> when service notifications are sent." %
- "wato.py?mode=edit_configvar&varname=notification_common_body"
- ),
- attrencode = True,
- ),
- domain = "check_mk")
register_configvar(group,
Module: check_mk
Branch: master
Commit: 19c70f775c80b15abe83f6fac4837732d34fd02f
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=19c70f775c80b1…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon Jun 29 14:20:35 2015 +0200
#2379 FIX Plugin-Output: Fixed handling of URLs within output of check_http
By default the plugin outputs are searched for URLs which are then replaced
by a "world" icon which links to this URL. This find/replace pattern was
not working correctly with the URLs provided by the check_http plugin which
surrounds the URLs with <tt>'</tt> characters.
---
.werks/2379 | 13 +++++++++++++
ChangeLog | 1 +
web/htdocs/lib.py | 2 +-
3 files changed, 15 insertions(+), 1 deletion(-)
diff --git a/.werks/2379 b/.werks/2379
new file mode 100644
index 0000000..a8a5898
--- /dev/null
+++ b/.werks/2379
@@ -0,0 +1,13 @@
+Title: Plugin-Output: Fixed handling of URLs within output of check_http
+Level: 1
+Component: multisite
+Class: fix
+Compatible: compat
+State: unknown
+Version: 1.2.7i3
+Date: 1435580314
+
+By default the plugin outputs are searched for URLs which are then replaced
+by a "world" icon which links to this URL. This find/replace pattern was
+not working correctly with the URLs provided by the check_http plugin which
+surrounds the URLs with <tt>'</tt> characters.
diff --git a/ChangeLog b/ChangeLog
index 72323a2..89157a5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -18,6 +18,7 @@
Multisite:
* 2314 FIX: Availability: fixed exception when grouping by host or service group
* 2361 FIX: Fix exception for missing key 'title' in certain cases of older customized views
+ * 2379 FIX: Plugin-Output: Fixed handling of URLs within output of check_http...
WATO:
* 2344 FIX: Improved validation of selected rules when editing BI aggregations...
diff --git a/web/htdocs/lib.py b/web/htdocs/lib.py
index 6e49dfa..6893990 100644
--- a/web/htdocs/lib.py
+++ b/web/htdocs/lib.py
@@ -341,7 +341,7 @@ def format_plugin_output(output, row = None):
output = output[:a] + "running on " + h + output[e+1:]
if config.escape_plugin_output:
- output = re.sub("http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+",
+ output = re.sub("http[s]?://[^\"'>\t\s\n]+",
lambda p: '<a href="%s"><img class=pluginurl align=absmiddle title="%s" src="images/pluginurl.png"></a>' %
(p.group(0).replace('"', ''), p.group(0).replace('"', '')), output)
Module: check_mk
Branch: master
Commit: b8a4870a49b877c03c40857cb07a608ca9913037
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=b8a4870a49b877…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Mon Jun 29 13:53:55 2015 +0200
#2362 FIX mk_logwatch: fix cases where one logfile is listsed more than once in logwatch.cfg
One example of such a case:
F+:logwatch.cfg
/var/log/syslog /var/log/kern.log
C panic
C Oops
W generic protection rip
W .*Unrecovered read error - auto reallocate failed
/var/log/kern.log
C INFO
F-:
In the old implementation the line with <tt>C INFO</tt> would never be executed.
Now it is appended at the bottom of the other patterns for <tt>kern.log</tt>.
Thanks to Gregor Hoffleit for the patch!
---
.werks/2362 | 26 ++++++++++++++++++++++++++
ChangeLog | 1 +
agents/plugins/mk_logwatch | 6 +++++-
3 files changed, 32 insertions(+), 1 deletion(-)
diff --git a/.werks/2362 b/.werks/2362
new file mode 100644
index 0000000..e6c36b4
--- /dev/null
+++ b/.werks/2362
@@ -0,0 +1,26 @@
+Title: mk_logwatch: fix cases where one logfile is listsed more than once in logwatch.cfg
+Level: 1
+Component: checks
+Compatible: compat
+Version: 1.2.7i3
+Date: 1435578702
+Class: fix
+
+One example of such a case:
+
+F+:logwatch.cfg
+/var/log/syslog /var/log/kern.log
+ C panic
+ C Oops
+ W generic protection rip
+ W .*Unrecovered read error - auto reallocate failed
+
+/var/log/kern.log
+ C INFO
+F-:
+
+In the old implementation the line with <tt>C INFO</tt> would never be executed.
+Now it is appended at the bottom of the other patterns for <tt>kern.log</tt>.
+
+Thanks to Gregor Hoffleit for the patch!
+
diff --git a/ChangeLog b/ChangeLog
index 3d73105..ae2ee53 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -12,6 +12,7 @@
* 2352 FIX: FreeBSD Agent: Removed statgrab cpu section because there is a dedicated cpu section...
* 2359 FIX: adva_fsp_if: Use more reliable SNMP table, avoids sporadic problems...
* 2360 FIX: esx_vsphere_vm.snapshot: Fix output of snapshot age in performance data and graph...
+ * 2362 FIX: mk_logwatch: fix cases where one logfile is listsed more than once in logwatch.cfg...
Multisite:
* 2314 FIX: Availability: fixed exception when grouping by host or service group
diff --git a/agents/plugins/mk_logwatch b/agents/plugins/mk_logwatch
index afb334b..efbb40e 100755
--- a/agents/plugins/mk_logwatch
+++ b/agents/plugins/mk_logwatch
@@ -333,6 +333,7 @@ except Exception, e:
status = {}
+logfile_patterns = {}
# The filename line may contain options like 'maxlines=100' or 'maxtime=10'
for filenames, patterns in config:
# Initialize options with default values
@@ -385,7 +386,10 @@ for filenames, patterns in config:
print '[[[%s:missing]]]' % glob_pattern
else:
for logfile in logfiles:
- process_logfile(logfile, patterns)
+ logfile_patterns[logfile] = logfile_patterns.get(logfile, []) + patterns
+
+for logfile, patterns in logfile_patterns.items():
+ process_logfile(logfile, patterns)
if not debug:
save_status(status)
Module: check_mk
Branch: master
Commit: 8f40186b6e89fb877b61337eb3d5ea29f0727562
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=8f40186b6e89fb…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon Jun 29 12:53:39 2015 +0200
#2378 FIX if: Now fixing encoding in interface descriptions according to rule
You can now use the rule "Output text coding settings for SNMP devices" to
fix the encoding of the interface descriptions reported by devices.
---
.werks/2378 | 11 +++++++++++
ChangeLog | 1 +
checks/if | 2 ++
modules/snmp.py | 10 +++++++++-
4 files changed, 23 insertions(+), 1 deletion(-)
diff --git a/.werks/2378 b/.werks/2378
new file mode 100644
index 0000000..f81cae0
--- /dev/null
+++ b/.werks/2378
@@ -0,0 +1,11 @@
+Title: if: Now fixing encoding in interface descriptions according to rule
+Level: 1
+Component: checks
+Class: fix
+Compatible: compat
+State: unknown
+Version: 1.2.7i3
+Date: 1435575163
+
+You can now use the rule "Output text coding settings for SNMP devices" to
+fix the encoding of the interface descriptions reported by devices.
diff --git a/ChangeLog b/ChangeLog
index 3d73105..6c79657 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -12,6 +12,7 @@
* 2352 FIX: FreeBSD Agent: Removed statgrab cpu section because there is a dedicated cpu section...
* 2359 FIX: adva_fsp_if: Use more reliable SNMP table, avoids sporadic problems...
* 2360 FIX: esx_vsphere_vm.snapshot: Fix output of snapshot age in performance data and graph...
+ * 2378 FIX: if: Now fixing encoding in interface descriptions according to rule...
Multisite:
* 2314 FIX: Availability: fixed exception when grouping by host or service group
diff --git a/checks/if b/checks/if
index a3849ae..5514c62 100644
--- a/checks/if
+++ b/checks/if
@@ -35,6 +35,8 @@ def if_convert_to_if64(info):
for line in info:
if saveint(line[0]) > 0: #Fix for switches with empty indexes
newinfo.append(line[0:8] + ['0'] + line[8:12] + ['0'] + line[12:16] + line[1:2] + line[16:17])
+ # Fix encoding of interface description
+ newinfo[-1][1] = snmp_decode_string(newinfo[-1][1])
return newinfo
check_includes['if'] = [ "if.include" ]
diff --git a/modules/snmp.py b/modules/snmp.py
index 79ccbc8..44cad0f 100644
--- a/modules/snmp.py
+++ b/modules/snmp.py
@@ -430,7 +430,15 @@ def snmp_decode_string(text):
if encoding:
return text.decode(encoding).encode("utf-8")
else:
- return text.decode('latin1').encode('utf-8')
+ # Try to determine the current string encoding. In case a UTF-8
+ # decoding fails, we decode latin1 and encode it as UTF-8 again.
+ # When UTF-8 decoding works, we assume the string is already
+ # encoded in UTF-8 as we expect it to be.
+ try:
+ text.decode('utf-8')
+ return text
+ except:
+ return text.decode('latin1').encode('utf-8')
# .--Classic SNMP--------------------------------------------------------.
# | ____ _ _ ____ _ _ __ __ ____ |
Module: check_mk
Branch: master
Commit: d8f2589cce4a0babc31550115c3d443d4e5d9cf0
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=d8f2589cce4a0b…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Mon Jun 29 12:08:51 2015 +0200
#2360 FIX esx_vsphere_vm.snapshot: Fix output of snapshot age in performance data and graph
The check would output the timestamp instead of the age in seconds. That lead to bizarre
graphs. This has been fixed.
---
.werks/2360 | 11 +++++++++++
ChangeLog | 1 +
checks/esx_vsphere_vm | 6 +++---
3 files changed, 15 insertions(+), 3 deletions(-)
diff --git a/.werks/2360 b/.werks/2360
new file mode 100644
index 0000000..cfa1b97
--- /dev/null
+++ b/.werks/2360
@@ -0,0 +1,11 @@
+Title: esx_vsphere_vm.snapshot: Fix output of snapshot age in performance data and graph
+Level: 1
+Component: checks
+Class: fix
+Compatible: compat
+State: unknown
+Version: 1.2.7i3
+Date: 1435572488
+
+The check would output the timestamp instead of the age in seconds. That lead to bizarre
+graphs. This has been fixed.
diff --git a/ChangeLog b/ChangeLog
index 634d4ec..b0b5941 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -11,6 +11,7 @@
NOTE: Please refer to the migration notes!
* 2352 FIX: FreeBSD Agent: Removed statgrab cpu section because there is a dedicated cpu section...
* 2359 FIX: adva_fsp_if: Use more reliable SNMP table, avoids sporadic problems...
+ * 2360 FIX: esx_vsphere_vm.snapshot: Fix output of snapshot age in performance data and graph...
Multisite:
* 2314 FIX: Availability: fixed exception when grouping by host or service group
diff --git a/checks/esx_vsphere_vm b/checks/esx_vsphere_vm
index e9855f2..7f8e249 100644
--- a/checks/esx_vsphere_vm
+++ b/checks/esx_vsphere_vm
@@ -391,16 +391,16 @@ def check_esx_vsphere_vm_snapshots(_no_item, params, info):
yield 0, "Powered On: %s" % (powered_on_snapshot and powered_on_snapshot[3] or "None")
perfdata = []
+ snapshot_age = time.time() - last_snapshot[1]
if params.get("age"):
warn, crit = params["age"]
- snapshot_age = time.time() - last_snapshot[1]
if snapshot_age > crit:
yield 2, "Snapshot is older than %s" % get_age_human_readable(snapshot_age)
elif snapshot_age > warn:
yield 1, "Snapshot is older than %s" % get_age_human_readable(snapshot_age)
- perfdata = [("age", last_snapshot[1], warn, crit)]
+ perfdata = [("age", snapshot_age, warn, crit)]
else:
- perfdata = [("age", last_snapshot[1])]
+ perfdata = [("age", snapshot_age)]
yield 0, "Last Snapshot: %s %s" % (last_snapshot[3],
time.strftime("%D %H:%M",time.localtime(last_snapshot[1]))),\