Module: check_mk
Branch: master
Commit: 2e235ecd5e9083772c80349197a859a544aba434
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=2e235ecd5e9083…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Tue Dec 9 14:15:29 2014 +0100
#1747 FIX zfsget: try to speed up agent code for Linux/Solaris/FreeBSD by using -t filesystem,volume
This removes snapshots from the list and thus greatly reduces the run time and output size.
The option <tt>-t</tt> is not always available, however, so if the command fails with
the option <tt>-t</tt> it is retried afterwards without.
---
.werks/1747 | 11 +++++++++++
ChangeLog | 1 +
agents/check_mk_agent.freebsd | 3 ++-
agents/check_mk_agent.linux | 3 ++-
agents/check_mk_agent.solaris | 3 ++-
5 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/.werks/1747 b/.werks/1747
new file mode 100644
index 0000000..dd9db86
--- /dev/null
+++ b/.werks/1747
@@ -0,0 +1,11 @@
+Title: zfsget: try to speed up agent code for Linux/Solaris/FreeBSD by using -t filesystem,volume
+Level: 1
+Component: checks
+Compatible: compat
+Version: 1.2.5i7
+Date: 1418130856
+Class: fix
+
+This removes snapshots from the list and thus greatly reduces the run time and output size.
+The option <tt>-t</tt> is not always available, however, so if the command fails with
+the option <tt>-t</tt> it is retried afterwards without.
diff --git a/ChangeLog b/ChangeLog
index bc1ca88..1b8acf4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -149,6 +149,7 @@
* 1731 FIX: ipmi_sensors: Fixed agent part when ipmi-sensors call on first agent run...
* 1732 FIX: dell_powerconnect_cpu: Fixed exception during inventory for incompatible devices
* 1733 FIX: dell_powerconnect_psu: Skipping inventory of not supported System temp sesnor for M6220 devices...
+ * 1747 FIX: zfsget: try to speed up agent code for Linux/Solaris/FreeBSD by using -t filesystem,volume...
Multisite:
* 1508 Allow input of plugin output and perfdata when faking check results...
diff --git a/agents/check_mk_agent.freebsd b/agents/check_mk_agent.freebsd
index 0862727..008d613 100755
--- a/agents/check_mk_agent.freebsd
+++ b/agents/check_mk_agent.freebsd
@@ -130,7 +130,8 @@ fi
# Filesystem usage for ZFS
if type zfs > /dev/null 2>&1 ; then
echo '<<<zfsget>>>'
- zfs get -Hp name,quota,used,avail,mountpoint,type
+ zfs get -Hp name,quota,used,avail,mountpoint,type -t filesystem,volume || \
+ zfs get -Hp name,quota,used,avail,mountpoint,type
echo '[df]'
df -kP -t zfs | sed 1d
fi
diff --git a/agents/check_mk_agent.linux b/agents/check_mk_agent.linux
index a32122f..a476f0c 100755
--- a/agents/check_mk_agent.linux
+++ b/agents/check_mk_agent.linux
@@ -146,7 +146,8 @@ echo '[df_inodes_end]'
# Filesystem usage for ZFS
if type zfs > /dev/null 2>&1 ; then
echo '<<<zfsget>>>'
- zfs get -Hp name,quota,used,avail,mountpoint,type
+ zfs get -Hp name,quota,used,avail,mountpoint,type -t filesystem,volume || \
+ zfs get -Hp name,quota,used,avail,mountpoint,type
echo '[df]'
df -PTlk -t zfs | sed 1d
fi
diff --git a/agents/check_mk_agent.solaris b/agents/check_mk_agent.solaris
index 7f999e0..18842fb 100755
--- a/agents/check_mk_agent.solaris
+++ b/agents/check_mk_agent.solaris
@@ -150,7 +150,8 @@ if type zfs &>/dev/null
then
echo '<<<zfsget>>>'
echo '[zfs]'
- zfs get -Hp name,quota,used,avail,mountpoint,type
+ zfs get -Hp name,quota,used,avail,mountpoint,type -t filesystem,volume || \
+ zfs get -Hp name,quota,used,avail,mountpoint,type
echo '[df]'
df -l -k -F zfs 2>/dev/null | sed 1d
fi
Module: check_mk
Branch: master
Commit: e205e891466e44af76262d24f7439c3ab0cf34a0
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=e205e891466e44…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Tue Dec 9 14:04:56 2014 +0100
#1726 Move variable data of Linux/UNIX agents to /var/lib/check_mk_agent
The Linux, AIX, Solaris and other UNIX agents now put state and cache files
no longer below <tt>/etc/check_mk</tt> but per default below <tt>/var/lib/check_mk_agent</tt>.
This can be changed directly in the agent in the following line:
F+:check_mk_agent.*
export MK_VARDIR=/var/lib/check_mk_agent
F-:
This means that if you update to the new version of the agent, you must have
in mind the following things:
<ul>
<li>Check_MK agent will not find saved <tt>logwatch.state</tt> files and will consider all logfiles as new. This means
that you will miss up to one check cycle of possible new logfile entries.</li>
<li>Check_MK agent will forget its cached data and recompute all asynchronous checks</li>
<li>Maybe other plugin-specific loss of memory</li>
</ul>
You can prevent this by manually copying selective data from
<tt>/etc/check_mk</tt>, if you like.
---
.werks/1726 | 28 ++++++++++++++++++++++++++++
ChangeLog | 2 ++
agents/check_mk_agent.aix | 4 +++-
agents/check_mk_agent.linux | 14 ++++++++------
agents/check_mk_agent.solaris | 9 ++++-----
agents/mk-job | 4 +++-
agents/mk-job.solaris | 4 +++-
agents/plugins/mk_inventory.linux | 2 +-
agents/plugins/mk_inventory.solaris | 2 +-
agents/plugins/mk_logwatch | 16 +++++++++-------
agents/plugins/mk_oracle | 12 ++++++++----
agents/plugins/mk_oracle.aix | 8 ++++++--
agents/plugins/mk_oracle.solaris | 6 +++---
agents/plugins/mk_sap | 7 +++++--
14 files changed, 84 insertions(+), 34 deletions(-)
Diff: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commitdiff;h=e205e89146…
Module: check_mk
Branch: master
Commit: 6792e20d14de548547ee8fe4a5d9f316d762f4ac
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=6792e20d14de54…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Tue Dec 9 13:38:23 2014 +0100
ipmi_sensors: Radicale simplification of agent code - hopefully more robust
---
agents/check_mk_agent.linux | 42 +++++++-----------------------------------
1 file changed, 7 insertions(+), 35 deletions(-)
diff --git a/agents/check_mk_agent.linux b/agents/check_mk_agent.linux
index 049b740..34f9b32 100755
--- a/agents/check_mk_agent.linux
+++ b/agents/check_mk_agent.linux
@@ -278,50 +278,22 @@ fi
# IPMI data via ipmi-sensors (of freeipmi). Please make sure, that if you
# have installed freeipmi that IPMI is really support by your hardware.
-# The agent tries to avoid hanging forever by setting a limit of 300 seconds
-# for the first run (where the cache is created). If ipmi-sensors runs into
-# that timeout, it leaves and empty cache file. We skip this check forever
-# if we find that empty cache file.
-sdrcache=/var/cache/.freeipmi/sdr-cache/sdr-cache-$(hostname | cut -d. -f1).127.0.0.1
-if type ipmi-sensors >/dev/null && [ ! -e "$sdrcache" -o -s "$sdrcache" ]
+if type ipmi-sensors >/dev/null
then
echo '<<<ipmi_sensors>>>'
- # No cache file existing? => Impose a high time limit. We do not suffice
- # in creating the cache we most probably run on a hardware where this tool
- # is hanging forever. We make sure that we never try again in that case!
- if [ ! -e "$sdrcache" ]
- then
- WAITMAX="waitmax 300"
- elif tail --bytes 2 < "$sdrcache" | od -t x2 | grep -q 0a0a
- then
- WAITMAX="waitmax 3"
- else
- # Cache file corrupt. Must end with two linefeeds.
- rm -f $sdrcache
- WAITMAX=
- fi
# Newer ipmi-sensors version have new output format; Legacy format can be used
if ipmi-sensors --help | grep -q legacy-output; then
IPMI_FORMAT="--legacy-output"
else
IPMI_FORMAT=""
fi
- # On first run, before ipmi-sensors was first executed, the base directory is not
- # available. Make sure it exists, otherwise the following subshell creation will fail
- mkdir -p "${sdrcache%/*}"
- # Aquire lock with flock in order to avoid multiple runs of ipmi-sensors
- # in case of parallel or overlapping calls of the agent.
- (
- flock -n 200 --wait 60
- # At least with ipmi-sensoirs 0.7.16 this group is Power_Unit instead of "Power Unit"
- for class in Temperature Power_Unit Fan
- do
- $WAITMAX ipmi-sensors $IPMI_FORMAT --sdr-cache-directory /var/cache -g "$class" | sed -e 's/ /_/g' -e 's/:_\?/ /g' -e 's@ \([^(]*\)_(\([^)]*\))@ \2_\1@'
- # In case of a timeout immediately leave loop.
+ # At least with ipmi-sensoirs 0.7.16 this group is Power_Unit instead of "Power Unit"
+ run_cached -s ipmi_sensors 300 "for class in Temperature Power_Unit Fan
+ do
+ ipmi-sensors $IPMI_FORMAT --sdr-cache-directory /var/cache -g "$class" | sed -e 's/ /_/g' -e 's/:_\?/ /g' -e 's@ \([^(]*\)_(\([^)]*\))@ \2_\1@'
+ # In case of a timeout immediately leave loop.
if [ $? = 255 ] ; then break ; fi
- WAITMAX="waitmax 3"
- done
- ) 200>>"$sdrcache"
+ done"
fi
# RAID status of Linux software RAID
Module: check_mk
Branch: master
Commit: 6cae81a43d1aebcf8c61c4260f42e401b8301389
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=6cae81a43d1aeb…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Tue Dec 9 13:17:08 2014 +0100
Fixed bug in todays bugfix
---
agents/check_mk_agent.linux | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/agents/check_mk_agent.linux b/agents/check_mk_agent.linux
index a3c63f1..049b740 100755
--- a/agents/check_mk_agent.linux
+++ b/agents/check_mk_agent.linux
@@ -308,7 +308,7 @@ then
fi
# On first run, before ipmi-sensors was first executed, the base directory is not
# available. Make sure it exists, otherwise the following subshell creation will fail
- mkdir -p "$sdcache"
+ mkdir -p "${sdrcache%/*}"
# Aquire lock with flock in order to avoid multiple runs of ipmi-sensors
# in case of parallel or overlapping calls of the agent.
(