Module: check_mk
Branch: master
Commit: 28aaa9de8426490f3e8add2b591354113db23a34
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=28aaa9de842649…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Tue Dec 9 09:15:58 2014 +0100
#1695 FIX brocade_vdx_status: Is now not bein inventorized anymore for devices not supporting the check
---
.werks/1695 | 9 +++++++++
ChangeLog | 1 +
checks/brocade_vdx_status | 8 ++++++--
3 files changed, 16 insertions(+), 2 deletions(-)
diff --git a/.werks/1695 b/.werks/1695
new file mode 100644
index 0000000..f5e2b42
--- /dev/null
+++ b/.werks/1695
@@ -0,0 +1,9 @@
+Title: brocade_vdx_status: Is now not bein inventorized anymore for devices not supporting the check
+Level: 1
+Component: checks
+Compatible: compat
+Version: 1.2.5i7
+Date: 1418112916
+Class: fix
+
+
diff --git a/ChangeLog b/ChangeLog
index 5cf17a7..de3b50c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -133,6 +133,7 @@
* 1713 FIX: check_fstab_mounts: now correctly ignores swap space...
* 1716 FIX: windows_tasks: consider state SCHED_S_TASK_QUEUED (0x00041325) as OK now
* 1721 FIX: dell_om_mem: Handle formerly unhandled situations with multiple errors...
+ * 1695 FIX: brocade_vdx_status: Is now not bein inventorized anymore for devices not supporting the check
Multisite:
* 1508 Allow input of plugin output and perfdata when faking check results...
diff --git a/checks/brocade_vdx_status b/checks/brocade_vdx_status
index b6eecda..1f9d6a4 100644
--- a/checks/brocade_vdx_status
+++ b/checks/brocade_vdx_status
@@ -53,8 +53,12 @@ check_info["brocade_vdx_status"] = {
"check_function" : check_brocade_vdx_status,
"inventory_function" : inventory_brocade_vdx_status,
"service_description" : "Status",
- "snmp_scan_function" : lambda oid: oid('.1.3.6.1.2.1.1.2.0').startswith( ".1.3.6.1.4.1.1588") and
- not oid('.1.3.6.1.2.1.1.2.0').startswith( ".1.3.6.1.4.1.1588.2.1.1.1"),
+ # It does not seem to work to exclude several OIDs here, there seem
+ # to be too many devices which do not have the needed OIDs. We try
+ # another approach: check for existance of the first needed OID
+ #not oid('.1.3.6.1.2.1.1.2.0').startswith( ".1.3.6.1.4.1.1588.2.1.1.1"),
+ "snmp_scan_function" : lambda oid: oid('.1.3.6.1.2.1.1.2.0').startswith( ".1.3.6.1.4.1.1588") \
+ and oid(".1.3.6.1.4.1.1588.2.1.1.1.1.6") != None,
"snmp_info" : ( ".1.3.6.1.4.1.1588.2.1.1.1.1", [
6, # Firmware
7 # Status
Module: check_mk
Branch: master
Commit: 4986baf89db74091f5566811a07e6eb6af2b8892
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=4986baf89db740…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Tue Dec 9 09:33:03 2014 +0100
#1696 FIX cisco_temp_sensor: Cleaned up value scaling (precision) code in check, should be more robust now
---
.werks/1696 | 9 +++++++++
ChangeLog | 1 +
checks/cisco_temp_sensor | 27 ++++++++++-----------------
3 files changed, 20 insertions(+), 17 deletions(-)
diff --git a/.werks/1696 b/.werks/1696
new file mode 100644
index 0000000..ff0705d
--- /dev/null
+++ b/.werks/1696
@@ -0,0 +1,9 @@
+Title: cisco_temp_sensor: Cleaned up value scaling (precision) code in check, should be more robust now
+Level: 1
+Component: checks
+Compatible: compat
+Version: 1.2.5i7
+Date: 1418113954
+Class: fix
+
+
diff --git a/ChangeLog b/ChangeLog
index de3b50c..133ca5c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -134,6 +134,7 @@
* 1716 FIX: windows_tasks: consider state SCHED_S_TASK_QUEUED (0x00041325) as OK now
* 1721 FIX: dell_om_mem: Handle formerly unhandled situations with multiple errors...
* 1695 FIX: brocade_vdx_status: Is now not bein inventorized anymore for devices not supporting the check
+ * 1696 FIX: cisco_temp_sensor: Cleaned up value scaling (precision) code in check, should be more robust now
Multisite:
* 1508 Allow input of plugin output and perfdata when faking check results...
diff --git a/checks/cisco_temp_sensor b/checks/cisco_temp_sensor
index cb49d6c..8a61ccc 100644
--- a/checks/cisco_temp_sensor
+++ b/checks/cisco_temp_sensor
@@ -116,27 +116,19 @@ def parse_cisco_temp_sensor(info):
# Create dict with thresholds
thresholds = {}
- for id, sensortype, value, sensorstate in state_info:
- thresholds.setdefault(id, [])
+ for id, sensortype, precision, value, sensorstate in state_info:
+ thresholds.setdefault(id, [])
- for endoid, levels in levels_info:
- # endoid is e.g. 21549.9 or 21459.10
- level = saveint(levels)
- if level > 150:
- level = level / 10
- id, subid = endoid.split('.')
- thresholds.setdefault(id, []).append(level)
+ for endoid, level in levels_info:
+ level = int(level)*(10**int(precision))
+ # endoid is e.g. 21549.9 or 21459.10
+ id, subid = endoid.split('.')
+ thresholds.setdefault(id, []).append(level)
# Create main dictionary (only of temperature sensors)
sensors = []
- for id, sensortype, value, sensorstate in state_info:
- # Poor try to find temperature values, which are given in tenths of degrees.
- # Seems that some new firmware shows this behaviour.
- # A normal temperature sensor has only a range up to
- # 60 degree, so we've chosen 150.
- value = saveint(value)
- if value > 150:
- value = value / 10
+ for id, sensortype, precision, value, sensorstate in state_info:
+ value = int(value)*(10**int(precision))
sensors.append( ( id, descriptions.get(id), sensortype,
value, sensorstate, thresholds[id] ) )
return sensors
@@ -187,6 +179,7 @@ check_info['cisco_temp_sensor'] = {
( ".1.3.6.1.4.1.9.9.91.1.1.1.1", [
OID_END,
1, # Type (see above), 8 = Celsius, 12 = truth value
+ 3, # Precision
4, # Most recent measurement
5, # Status of the sensor 1 == ok, 2 == cannot report, 3 == broken
]),
Module: check_mk
Branch: master
Commit: 930c06ec8e7170995d476a0da8cbd32371eba657
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=930c06ec8e7170…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Tue Dec 9 09:34:45 2014 +0100
Updated werk texts
---
.werks/1696 | 6 ++++--
ChangeLog | 2 +-
2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/.werks/1696 b/.werks/1696
index ff0705d..f06e774 100644
--- a/.werks/1696
+++ b/.werks/1696
@@ -1,4 +1,4 @@
-Title: cisco_temp_sensor: Cleaned up value scaling (precision) code in check, should be more robust now
+Title: cisco_temp_sensor: Value reported of check was not always correct (precision was wrong)
Level: 1
Component: checks
Compatible: compat
@@ -6,4 +6,6 @@ Version: 1.2.5i7
Date: 1418113954
Class: fix
-
+We already had a workaround to get the correct precision of the value reported by the device,
+but this code was kind of a hack. No we retrieve the precision value from the target device
+and then scale the value according to it.
diff --git a/ChangeLog b/ChangeLog
index 133ca5c..c7f0ef4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -134,7 +134,7 @@
* 1716 FIX: windows_tasks: consider state SCHED_S_TASK_QUEUED (0x00041325) as OK now
* 1721 FIX: dell_om_mem: Handle formerly unhandled situations with multiple errors...
* 1695 FIX: brocade_vdx_status: Is now not bein inventorized anymore for devices not supporting the check
- * 1696 FIX: cisco_temp_sensor: Cleaned up value scaling (precision) code in check, should be more robust now
+ * 1696 FIX: cisco_temp_sensor: Value reported of check was not always correct (precision was wrong)...
Multisite:
* 1508 Allow input of plugin output and perfdata when faking check results...
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",