Module: check_mk
Branch: master
Commit: fb85e3c1dea52ffbe875a2d2f1f5d0854d2864ad
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=fb85e3c1dea52f…
Author: Goetz Golla <gg(a)mathias-kettner.de>
Date: Wed Aug 20 12:49:52 2014 +0200
FIX: for newer firmwares the port speed is determined from the IF-MIB,
this change accounts for the different port indices of the FC ports in the IF-MIB
---
checks/brocade_fcport | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/checks/brocade_fcport b/checks/brocade_fcport
index 150d9d6..6cecd89 100644
--- a/checks/brocade_fcport
+++ b/checks/brocade_fcport
@@ -125,7 +125,20 @@ def check_brocade_fcport(item, params, info):
else: # no ISL port
if brocade_fcport_speed[speed] in [ "auto-Neg", "unknown" ]:
try:
- actual_speed = saveint(info[2][item_index][0])
+ # extract the speed from IF-MIB::ifHighSpeed.
+ # unfortunately ports in the IF-MIB and the brocade MIB
+ # dont have a common index. We hope that at least
+ # the FC ports have the same sequence in both lists.
+ # here we go through ports of the IF-NIB, but consider only FC ports (type 56)
+ # and assume that the sequence number of the FC port here is the same
+ # as the sequence number in the borcade MIB (pindex = item_index)
+ pindex = -1
+ for vals in info[2]:
+ port_type, actual_speed = map(saveint, vals)
+ if port_type == 56:
+ pindex += 1
+ if pindex == item_index:
+ break # we found it
except:
actual_speed = 0
if actual_speed > 0:
@@ -336,8 +349,9 @@ check_info["brocade_fcport"] = {
]),
# new way to get port speed supported by Brocade
- ( ".1.3.6.1.2.1.31.1.1.1", [
- 15, # IF-MIB::ifHighSpeed
+ ( ".1.3.6.1.2.1", [
+ "2.2.1.3", # ifType, needed to extract fibre channel ifs only (type 56)
+ "31.1.1.1.15", # IF-MIB::ifHighSpeed
]),
],
'snmp_scan_function' : lambda oid: oid(".1.3.6.1.2.1.1.2.0").startswith(".1.3.6.1.4.1.1588.2.1.1"),
Module: check_mk
Branch: master
Commit: aac84ccc99e67890821821ddae49fa9add031355
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=aac84ccc99e678…
Author: Goetz Golla <gg(a)mathias-kettner.de>
Date: Wed Aug 20 09:35:32 2014 +0200
no werks for fixes to yet unreleased changes
---
.werks/647 | 18 ------------------
1 file changed, 18 deletions(-)
diff --git a/.werks/647 b/.werks/647
deleted file mode 100644
index 248eeed..0000000
--- a/.werks/647
+++ /dev/null
@@ -1,18 +0,0 @@
-Title: printer_input, printer_output: multiple fixes to algorithm for state determination and inventory function
-Level: 2
-Component: checks
-Compatible: compat
-Version: 1.2.5i6
-Date: 1408447192
-Class: fix
-
-The inventory function now considers the description of the unit if its name is not configured. This should lead to
-more and more meaningful items. Still, all units with empty name and description will be merged into one single
-service with an empty item name.
-
-The algorithm to determine the states of a unit was plain wrong, so that a nonsense collection of states were given.
-This has been corrected. Still several states may be derived, but they should now correctly describe the operational
-state of the unit.
-
-The inventory function also used the same algorithm to inventorize only units with meaningful states. Therefore some
-changes may be expected in the inventory of a printer as well.
Module: check_mk
Branch: master
Commit: b595bed59208fdb8d809fc97d3b24d17f0881218
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=b595bed59208fd…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Tue Aug 19 20:03:49 2014 +0200
#1010 chrony: new check for NTP synchronization via chrony on Linux
This check does the same as the existing {ntp.time} check, but is for
cases when {chrony} is being used instead of the {ntpd}. It does not
support measuring jitter, however.
---
.werks/1010 | 12 +++++
ChangeLog | 1 +
agents/check_mk_agent.linux | 7 +++
checkman/chrony | 36 +++++++++++++
checkman/ntp.time | 2 +-
checks/chrony | 96 ++++++++++++++++++++++++++++++++++
checks/ntp | 8 +--
pnp-templates/check_mk-chrony.php | 1 +
pnp-templates/check_mk-ntp.time.php | 12 +++--
web/plugins/perfometer/check_mk.py | 3 +-
web/plugins/wato/check_parameters.py | 10 ++--
11 files changed, 172 insertions(+), 16 deletions(-)
Diff: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commitdiff;h=b595bed592…
Module: check_mk
Branch: master
Commit: 8586b33daa2e0fbed1f60c7e6f3861b2a074a2e8
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=8586b33daa2e0f…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Tue Aug 19 18:27:38 2014 +0200
#1009 FIX df: deal with space in file system type for PlayStation file system
This inventory function of the check crashed when there was a filesystem
with a space in the filesystem type. We have seen one filesystem with
the type <tt>PlayStation(R)3 File System</tt>. This has been fixed now.
---
.werks/1009 | 12 ++++++++++++
ChangeLog | 2 +-
checks/df | 9 +++++++++
3 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/.werks/1009 b/.werks/1009
new file mode 100644
index 0000000..a446186
--- /dev/null
+++ b/.werks/1009
@@ -0,0 +1,12 @@
+Title: df: deal with space in file system type for PlayStation file system
+Level: 1
+Component: checks
+Compatible: compat
+Version: 1.2.5i6
+Date: 1408465511
+Class: fix
+
+This inventory function of the check crashed when there was a filesystem
+with a space in the filesystem type. We have seen one filesystem with
+the type <tt>PlayStation(R)3 File System</tt>. This has been fixed now.
+
diff --git a/ChangeLog b/ChangeLog
index 211fb13..33b061b 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -40,6 +40,7 @@
* 0645 FIX: brocade_fcport: since in newer firmware (7.*) swFCPortSpeed is deprecated, we then calculate port speed from IF-MIB::ifHighSpeed
* 0647 FIX: printer_input, printer_output: multiple fixes to algorithm for state determination and inventory function...
* 1097 FIX: windows_agent: preventing missing agent sections on first query...
+ * 1009 FIX: df: deal with space in file system type for PlayStation file system...
Multisite:
* 1066 Implemented Dashboard Designer...
@@ -48,7 +49,6 @@
* 1154 FIX: Availability: Fixed unwanted redirect to edit annotation page after editing availability options...
WATO:
- * 1095 New WATO Web-API: Now able to manage hosts via web automation calls
* 1096 New WATO webservices: manage hosts via webinterface...
* 1064 FIX: Fixed rare issue with WATO communication in distributed setups (different OS versions)...
* 1089 FIX: Snapshot restore: fixed exception during exception handling......
diff --git a/checks/df b/checks/df
index 356a84e..de29914 100644
--- a/checks/df
+++ b/checks/df
@@ -31,6 +31,12 @@
# /dev/sda1 reiserfs 256666 16052 227362 7% /boot
# /dev/mapper/mirrored-database ext3 20642428 1027112 19405604 6% /mirrored/database
+# Another example from a Windows 7 system:
+# <<<df>>>
+# SYSTEM NTFS 312569172 180648472 131920700 58% C:\
+# Data NTFS 976506816 528665344 447841472 55% D:\
+# PS3 PlayStation(R)3 File System 0 0 0 0% P:\
+
def df_parse_info(info):
df_blocks = []
df_inodes = []
@@ -46,6 +52,9 @@ def df_parse_info(info):
is_inode = False
continue
if not is_inode:
+ # Handle known cases, where the file system contains spaces
+ if line[2] == "File" and line[3] == "System":
+ line = [ line[0], " ".join(line[1:4]) ] + line[4:]
df_blocks.append(line)
else:
df_inodes.append(line)
Module: check_mk
Branch: master
Commit: c89680f74e7a4124ab8b6adc45454830ac67f9c4
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=c89680f74e7a41…
Author: Andreas Boesl <ab(a)mathias-kettner.de>
Date: Tue Aug 19 17:08:41 2014 +0200
#1097 FIX windows_agent: preventing missing agent sections on first query
The windows agent did not report all sections on the first request(s) after
its startup, if some plugins were configured to run asynchronous.
This has been fixed. During startup, the agent now always executes the ASYNC scripts first
and waits for them to finish. After the scripts are finished, it starts listening to
the tcp port.
---
.werks/1097 | 14 ++++++++
ChangeLog | 2 ++
agents/windows/build_version | 2 +-
agents/windows/check_mk_agent-64.exe | Bin 208896 -> 208896 bytes
agents/windows/check_mk_agent-64.unversioned.exe | Bin 208896 -> 208896 bytes
agents/windows/check_mk_agent.cc | 42 +++++++++++++++++-----
agents/windows/check_mk_agent.exe | Bin 177664 -> 178176 bytes
agents/windows/check_mk_agent.unversioned.exe | Bin 177664 -> 178176 bytes
agents/windows/install_agent-64.exe | Bin 159871 -> 159961 bytes
agents/windows/install_agent.exe | Bin 156806 -> 156821 bytes
10 files changed, 50 insertions(+), 10 deletions(-)
diff --git a/.werks/1097 b/.werks/1097
new file mode 100644
index 0000000..0dacafa
--- /dev/null
+++ b/.werks/1097
@@ -0,0 +1,14 @@
+Title: windows_agent: preventing missing agent sections on first query
+Level: 2
+Component: checks
+Compatible: compat
+Version: 1.2.5i6
+Date: 1408460515
+Class: fix
+
+The windows agent did not report all sections on the first request(s) after
+its startup, if some plugins were configured to run asynchronous.
+
+This has been fixed. During startup, the agent now always executes the ASYNC scripts first
+and waits for them to finish. After the scripts are finished, it starts listening to
+the tcp port.
diff --git a/ChangeLog b/ChangeLog
index 40d3a00..211fb13 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -39,6 +39,7 @@
* 0198 FIX: cisco_temp_sensor: Removed dicey detection for temperature value....
* 0645 FIX: brocade_fcport: since in newer firmware (7.*) swFCPortSpeed is deprecated, we then calculate port speed from IF-MIB::ifHighSpeed
* 0647 FIX: printer_input, printer_output: multiple fixes to algorithm for state determination and inventory function...
+ * 1097 FIX: windows_agent: preventing missing agent sections on first query...
Multisite:
* 1066 Implemented Dashboard Designer...
@@ -47,6 +48,7 @@
* 1154 FIX: Availability: Fixed unwanted redirect to edit annotation page after editing availability options...
WATO:
+ * 1095 New WATO Web-API: Now able to manage hosts via web automation calls
* 1096 New WATO webservices: manage hosts via webinterface...
* 1064 FIX: Fixed rare issue with WATO communication in distributed setups (different OS versions)...
* 1089 FIX: Snapshot restore: fixed exception during exception handling......
diff --git a/agents/windows/build_version b/agents/windows/build_version
index 98d9bcb..e1617e8 100644
--- a/agents/windows/build_version
+++ b/agents/windows/build_version
@@ -1 +1 @@
-17
+57
diff --git a/agents/windows/check_mk_agent-64.exe b/agents/windows/check_mk_agent-64.exe
index 38e5220..b1933ac 100755
Binary files a/agents/windows/check_mk_agent-64.exe and b/agents/windows/check_mk_agent-64.exe differ
diff --git a/agents/windows/check_mk_agent-64.unversioned.exe b/agents/windows/check_mk_agent-64.unversioned.exe
index 00cc87f..349cabb 100755
Binary files a/agents/windows/check_mk_agent-64.unversioned.exe and b/agents/windows/check_mk_agent-64.unversioned.exe differ
diff --git a/agents/windows/check_mk_agent.cc b/agents/windows/check_mk_agent.cc
index bd26684..e69808e 100755
--- a/agents/windows/check_mk_agent.cc
+++ b/agents/windows/check_mk_agent.cc
@@ -265,6 +265,8 @@ void crash_log(const char *format, ...);
void lowercase(char* value);
char* next_word(char** line);
int get_perf_counter_id(const char* counter_name);
+void collect_script_data(script_execution_mode mode);
+void find_scripts();
// .----------------------------------------------------------------------.
// | ____ _ _ _ |
@@ -4201,6 +4203,24 @@ void listen_tcp_loop()
// and receive a terminate when the agent ends
g_workers_job_object = CreateJobObject(NULL, "workers_job");
+ // Run all ASYNC scripts on startup, so that their data is available on
+ // the first query of a client. Obviously, this slows down the agent startup...
+ // This procedure is mandatory, since we want to prevent missing agent sections
+ find_scripts();
+ collect_script_data(ASYNC);
+ DWORD dwExitCode = 0;
+ while (true)
+ {
+ if (GetExitCodeThread(g_collection_thread, &dwExitCode))
+ {
+ if (dwExitCode != STILL_ACTIVE)
+ break;
+ Sleep(200);
+ }
+ else
+ break;
+ }
+
SOCKET connection;
// Loop for ever.
debug("Starting main loop.");
@@ -4485,6 +4505,18 @@ void do_adhoc()
listen_tcp_loop(); // runs for ever or until Ctrl-C
}
+void find_scripts()
+{
+ // Check if there are new scripts available
+ // Scripts in default paths
+ determine_available_scripts(g_plugins_dir, PLUGIN, NULL);
+ determine_available_scripts(g_local_dir, LOCAL, NULL);
+ // Scripts included with user permissions
+ for (script_include_t::iterator it_include = g_script_includes.begin();
+ it_include != g_script_includes.end(); it_include++)
+ determine_available_scripts((*it_include)->path, (*it_include)->type, (*it_include)->user);
+}
+
void output_data(SOCKET &out)
{
// make sure, output of numbers is not localized
@@ -4495,15 +4527,7 @@ void output_data(SOCKET &out)
update_script_statistics();
-
- // Check if there are new scripts available
- // Scripts in default paths
- determine_available_scripts(g_plugins_dir, PLUGIN, NULL);
- determine_available_scripts(g_local_dir, LOCAL, NULL);
- // Scripts included with user permissions
- for (script_include_t::iterator it_include = g_script_includes.begin();
- it_include != g_script_includes.end(); it_include++)
- determine_available_scripts((*it_include)->path, (*it_include)->type, (*it_include)->user);
+ find_scripts();
if (enabled_sections & SECTION_CHECK_MK)
section_check_mk(out);
diff --git a/agents/windows/check_mk_agent.exe b/agents/windows/check_mk_agent.exe
index a87a33b..e529788 100755
Binary files a/agents/windows/check_mk_agent.exe and b/agents/windows/check_mk_agent.exe differ
diff --git a/agents/windows/check_mk_agent.unversioned.exe b/agents/windows/check_mk_agent.unversioned.exe
index 9dc34b5..e622182 100755
Binary files a/agents/windows/check_mk_agent.unversioned.exe and b/agents/windows/check_mk_agent.unversioned.exe differ
diff --git a/agents/windows/install_agent-64.exe b/agents/windows/install_agent-64.exe
index 86342aa..b002fa9 100755
Binary files a/agents/windows/install_agent-64.exe and b/agents/windows/install_agent-64.exe differ
diff --git a/agents/windows/install_agent.exe b/agents/windows/install_agent.exe
index 53d1127..24c616e 100755
Binary files a/agents/windows/install_agent.exe and b/agents/windows/install_agent.exe differ