Module: check_mk
Branch: master
Commit: 3821ae6d250e93dd2fe33b511d44503211bd291b
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=3821ae6d250e93…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Mon Dec 8 22:22:41 2014 +0100
#1719 Allow to allow both host name and IP address when checking for events in Event Console
The check <i>Check for events in Event Console</i> used to allow either a
match for the host name or the IP address when trying to find events that
belong to a monitored host. Now there is a new third option <i>Try both
host name and IP address</i> that will try to match the host name and the
IP address at the same time and will match the event if one of both matches
succeeds. This helps in situations where the Event Console sometimes just
gets the IP address of the remote host correctly, but has no host name.
---
.werks/1719 | 15 ++++++++++++
ChangeLog | 1 +
mkeventd/lib/check_mkevents.cc | 41 +++++++++++++++++++++++++++------
mkeventd/web/plugins/wato/mkeventd.py | 8 ++++---
4 files changed, 55 insertions(+), 10 deletions(-)
diff --git a/.werks/1719 b/.werks/1719
new file mode 100644
index 0000000..a5d2b48
--- /dev/null
+++ b/.werks/1719
@@ -0,0 +1,15 @@
+Title: Allow to allow both host name and IP address when checking for events in Event Console
+Level: 2
+Component: ec
+Compatible: compat
+Version: 1.2.5i7
+Date: 1418073600
+Class: feature
+
+The check <i>Check for events in Event Console</i> used to allow either a
+match for the host name or the IP address when trying to find events that
+belong to a monitored host. Now there is a new third option <i>Try both
+host name and IP address</i> that will try to match the host name and the
+IP address at the same time and will match the event if one of both matches
+succeeds. This helps in situations where the Event Console sometimes just
+gets the IP address of the remote host correctly, but has no host name.
diff --git a/ChangeLog b/ChangeLog
index 59e40f5..5ac7b22 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -253,6 +253,7 @@
Event Console:
* 1169 Added host state type filter to "recent event history" view
* 1718 Show groups of regex match of events in details views of Event Console
+ * 1719 Allow to allow both host name and IP address when checking for events in Event Console...
* 1531 FIX: Fixed exception in event history view when displaying CHANGESTATE events
* 1610 FIX: Hostname translation now also works for incoming SNMP traps
* 1643 FIX: Improved error handling of exceptions when processing log lines
diff --git a/mkeventd/lib/check_mkevents.cc b/mkeventd/lib/check_mkevents.cc
index 4d54be5..c9bcfeb 100644
--- a/mkeventd/lib/check_mkevents.cc
+++ b/mkeventd/lib/check_mkevents.cc
@@ -47,6 +47,26 @@ void usage()
{
printf("Usage: check_mkevents [-s SOCKETPATH] [-H REMOTE:PORT] [-a] HOST [APPLICATION]");
printf("\n -a do not take into account acknowledged events.\n");
+ printf(" HOST may be a hostname, and IP address or hostname/IP-address.\n");
+}
+
+
+string prepare_hostname_regex(const char *s)
+{
+ const char *scan = s;
+ string result = "";
+ while (*scan) {
+ if (strchr("[](){}^$.*+?|\\", *scan)) {
+ result += "\\";
+ result += *scan;
+ }
+ else if (*scan == '/')
+ result += "|";
+ else
+ result += *scan;
+ scan ++;
+ }
+ return result;
}
@@ -174,15 +194,22 @@ int main(int argc, char** argv)
// Create query message
string query_message;
- query_message.append("GET events\nFilter: event_host =~ ");
- query_message.append(host);
- query_message.append("\nFilter: event_phase in open ack\n");
- query_message.append("OutputFormat: plain\n");
+ query_message += "GET events\nFilter: event_host ";
+ if (strchr(host, '/')) {
+ query_message += "~~ ";
+ query_message += prepare_hostname_regex(host);
+ }
+ else {
+ query_message += "=~ ";
+ query_message += host;
+ }
+ query_message += "\nFilter: event_phase in open ack\n";
+ query_message += "OutputFormat: plain\n";
if (application) {
- query_message.append("Filter: event_application ~~ ");
- query_message.append(application);
- query_message.append("\n");
+ query_message += "Filter: event_application ~~ ";
+ query_message += application;
+ query_message += "\n";
}
// Send message
diff --git a/mkeventd/web/plugins/wato/mkeventd.py b/mkeventd/web/plugins/wato/mkeventd.py
index 298146f..bbd54ab 100644
--- a/mkeventd/web/plugins/wato/mkeventd.py
+++ b/mkeventd/web/plugins/wato/mkeventd.py
@@ -1947,11 +1947,13 @@ register_rule(
"host. This is needed in cases where the event source (syslog, snmptrapd) "
"do not send a host name that matches the monitoring host name."),
choices = [
- ( '$HOSTNAME$', _("Monitoring Host name") ),
- ( '$HOSTADDRESS$', _("Host IP Address" ) ) ],
+ ( '$HOSTNAME$', _("Monitoring host name") ),
+ ( '$HOSTADDRESS$', _("Host IP address" ) ),
+ ( '$HOSTNAME$/$HOSTADDRESS$', _("Try both host name and IP address" ) ),
+ ],
otherlabel = _("Specify explicitly"),
explicit = TextAscii(allow_empty = False, attrencode = True),
- default_value = '$HOSTNAME$',
+ default_value = '$HOSTNAME$/$HOSTADDRESS$',
)
),
( "item",
Module: check_mk
Branch: master
Commit: 019ac78ed318a4cd334a713937bf43219cb2f539
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=019ac78ed318a4…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Mon Dec 8 22:30:07 2014 +0100
#1720 FIX Remove bogus column H.Down if "Consider times where the host is down" is switch off
That column would be displayed nevertheless and was also zero.
---
.werks/1720 | 9 +++++++++
ChangeLog | 3 +++
web/plugins/views/availability.py | 2 ++
3 files changed, 14 insertions(+)
diff --git a/.werks/1720 b/.werks/1720
new file mode 100644
index 0000000..463e8d4
--- /dev/null
+++ b/.werks/1720
@@ -0,0 +1,9 @@
+Title: Remove bogus column H.Down if "Consider times where the host is down" is switch off
+Level: 1
+Component: reporting
+Compatible: compat
+Version: 1.2.5i7
+Date: 1418074135
+Class: fix
+
+That column would be displayed nevertheless and was also zero.
diff --git a/ChangeLog b/ChangeLog
index 5ac7b22..e09711c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -250,6 +250,9 @@
* 1559 FIX: Fix link from BI icon to BI views (aggregations affected by this host/service)
* 1692 FIX: Aggregations with umlauts in title/topic can now be displayed in BI/Availability
+ Reporting & Availability:
+ * 1720 FIX: Remove bogus column H.Down if "Consider times where the host is down" is switch off...
+
Event Console:
* 1169 Added host state type filter to "recent event history" view
* 1718 Show groups of regex match of events in details views of Event Console
diff --git a/web/plugins/views/availability.py b/web/plugins/views/availability.py
index af317a0..ffdbe04 100644
--- a/web/plugins/views/availability.py
+++ b/web/plugins/views/availability.py
@@ -1300,6 +1300,8 @@ def render_availability_group(group_title, range_title, group_id, availability,
return False
elif sid == "flapping" and not avoptions["consider"]["flapping"]:
return False
+ elif sid == "host_down" and not avoptions["consider"]["host_down"]:
+ return False
elif sid in [ "warn", "unknown", "host_down" ] and sid not in state_groups:
return False
else:
Module: check_mk
Branch: master
Commit: e94cc003ab9abb662aac615a5f33cf7ee03820bb
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=e94cc003ab9abb…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Mon Dec 8 17:57:55 2014 +0100
#1715 Output icon information in CSV/JSON/Python export of views
When exporting views to JSON, Python or CSV the column with the icons
is now no longer empty but is a space separated list of all icon names
of the host/sevice in question - without path information or the suffixes
of the file type. That way you now can get additional information about
the objects.
---
.werks/1715 | 13 +++++++++++++
ChangeLog | 1 +
web/htdocs/htmllib.py | 10 +++++++---
web/plugins/icons/builtin.py | 2 +-
web/plugins/views/painters.py | 18 +++++++++++++++++-
5 files changed, 39 insertions(+), 5 deletions(-)
diff --git a/.werks/1715 b/.werks/1715
new file mode 100644
index 0000000..019e372
--- /dev/null
+++ b/.werks/1715
@@ -0,0 +1,13 @@
+Title: Output icon information in CSV/JSON/Python export of views
+Level: 1
+Component: multisite
+Compatible: compat
+Version: 1.2.5i7
+Date: 1418057797
+Class: feature
+
+When exporting views to JSON, Python or CSV the column with the icons
+is now no longer empty but is a space separated list of all icon names
+of the host/sevice in question - without path information or the suffixes
+of the file type. That way you now can get additional information about
+the objects.
diff --git a/ChangeLog b/ChangeLog
index 45bb972..a28ed89 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -146,6 +146,7 @@
* 1700 Enable icon for link to host/service parameters per default now...
* 1705 Better styling of dashboard designer
* 1714 Add support for jsonp export (next to json and python)...
+ * 1715 Output icon information in CSV/JSON/Python export of views...
* 1164 FIX: Fixed links from servicegroup overviews to single servicegroups
* 1166 FIX: Also prevting stylesheet update issues during version updates (just like for JS files)
* 1481 FIX: Fix broken layout of Host-, Service- and Contactgroup filters
diff --git a/web/htdocs/htmllib.py b/web/htdocs/htmllib.py
index 9d7740a..d0c0b16 100644
--- a/web/htdocs/htmllib.py
+++ b/web/htdocs/htmllib.py
@@ -328,10 +328,14 @@ class html:
def icon(self, help, icon):
self.write(self.render_icon(icon, help))
- def render_icon(self, icon, help, middle=True):
+ def render_icon(self, icon, help="", middle=True):
align = middle and ' align=absmiddle' or ''
- return '<img%s class=icon title="%s" src="images/icon_%s.png" />' % \
- (align, self.attrencode(help), icon)
+ title = help and ' title="%s"' % self.attrencode(help) or ""
+ if "/" in icon:
+ src = "images/" + icon
+ else:
+ src = "images/icon_%s.png" % icon
+ return '<img src="%s" class=icon%s%s />' % (src, align, title)
def empty_icon(self):
self.write('<img class=icon src="images/trans.png" />')
diff --git a/web/plugins/icons/builtin.py b/web/plugins/icons/builtin.py
index d25f979..1b4af8d 100644
--- a/web/plugins/icons/builtin.py
+++ b/web/plugins/icons/builtin.py
@@ -68,7 +68,7 @@
def paint_icon_image(what, row, tags, custom_vars):
if row[what + '_icon_image']:
- return '<img align=absmiddle class=icon src="images/icons/%s">' % row[what + '_icon_image']
+ return html.render_icon("icons/" + row[what + '_icon_image'])
multisite_icons.append({
'columns': [ 'icon_image' ],
diff --git a/web/plugins/views/painters.py b/web/plugins/views/painters.py
index 448d033..fe896e2 100644
--- a/web/plugins/views/painters.py
+++ b/web/plugins/views/painters.py
@@ -151,7 +151,23 @@ def paint_icons(what, row):
except Exception, e:
output += 'Exception in icon plugin!<br />' + traceback.format_exc()
- return "icons", output
+ if html.output_format == "html":
+ return "icons", output
+ else:
+ # Strip icon names out of HTML code that is generated by htmllib.render_icon()
+ icon_rename_regex = regex('<img src="([^"]*)"[^>]*>')
+ icons = []
+ for n in icon_rename_regex.findall(output):
+ if n.startswith("images/"):
+ n = n[7:]
+ if n.startswith("icon_"):
+ n = n[5:]
+ if n.endswith(".png"):
+ n = n[:-4]
+ elif n.endswith(".gif"):
+ n = n[:-4]
+ icons.append(n.encode('utf-8'))
+ return "icons", " ".join(icons)
def iconpainter_columns(what):
cols = set(['site',