Module: check_mk
Branch: master
Commit: 18c363b766d5ce995fe44468fd8bcc7f067155f1
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=18c363b766d5ce…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon Feb 18 14:20:40 2013 +0100
Implemented piggyback_max_cachefile_age to ignore too old piggybacked data; Fixed
piggyback removal during checking piggybacked hosts
---
ChangeLog | 3 +--
modules/check_mk.py | 2 ++
modules/check_mk_base.py | 15 +++++++++++----
web/plugins/wato/check_mk_configuration.py | 9 +++++++++
4 files changed, 23 insertions(+), 6 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index e2377f3..abe6f73 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,7 +1,6 @@
1.2.3i1:
Core:
- * New feature: agents can send data for other hosts
- "piggyback".
+ * New feature: agents can send data for other hosts "piggyback".
Event Console:
* New rule feature: automatically delete after action
diff --git a/modules/check_mk.py b/modules/check_mk.py
index 7a1ff6c..47da0aa 100755
--- a/modules/check_mk.py
+++ b/modules/check_mk.py
@@ -219,6 +219,7 @@ aggr_summary_hostname = "%s-s"
agent_min_version = 0 # warn, if plugin has not at least version
check_max_cachefile_age = 0 # per default do not use cache files when
checking
cluster_max_cachefile_age = 90 # secs.
+piggyback_max_cachefile_age = 900 # secs
simulation_mode = False
agent_simulator = False
perfdata_format = "pnp" # also possible:
"standard"
@@ -2650,6 +2651,7 @@ no_inventory_possible = None
'var_dir', 'counters_directory',
'tcp_cache_dir', 'tmp_dir',
'snmpwalks_dir', 'check_mk_basedir',
'nagios_user',
'www_group', 'cluster_max_cachefile_age',
'check_max_cachefile_age',
+ 'piggyback_max_cachefile_age',
'simulation_mode', 'agent_simulator',
'aggregate_check_mk', 'debug_log',
'check_mk_perfdata_with_times',
'livestatus_unix_socket',
]:
diff --git a/modules/check_mk_base.py b/modules/check_mk_base.py
index 7c8cbef..5b40f1b 100755
--- a/modules/check_mk_base.py
+++ b/modules/check_mk_base.py
@@ -370,7 +370,7 @@ def get_realhost_info(hostname, ipaddress, check_type,
max_cache_age):
if is_tcp_host(hostname):
try:
output = get_agent_info(hostname, ipaddress, max_cache_age)
- except:
+ except Exception, e:
agent_failed = True
# Remove piggybacked information from the host (in the
# role of the pig here). Why? We definitely haven't
@@ -410,11 +410,18 @@ def get_piggyback_info(hostname):
if os.path.exists(dir):
for sourcehost in os.listdir(dir):
if sourcehost not in ['.', '..'] \
- and not sourcehost.startswith(".new."):
+ and not sourcehost.startswith(".new."):
+ file_path = dir + "/" + sourcehost
+
+ if cachefile_age(file_path) > piggyback_max_cachefile_age:
+ os.remove(file_path)
+ continue
+
if opt_debug:
sys.stderr.write("Using piggyback information from host
%s.\n" %
sourcehost)
- output += file(dir + "/" + sourcehost).read()
+
+ output += file(file_path).read()
return output
@@ -433,7 +440,7 @@ def store_piggyback_info(sourcehost, piggybacked):
# Remove piggybacked information that is not
# being sent this turn
- remove_piggyback_info_from(sourcehost, keep=piggybacked)
+ remove_piggyback_info_from(sourcehost, keep=piggybacked.keys())
def remove_piggyback_info_from(sourcehost, keep=[]):
removed = 0
diff --git a/web/plugins/wato/check_mk_configuration.py
b/web/plugins/wato/check_mk_configuration.py
index cf7ceb4..eb4cd05 100644
--- a/web/plugins/wato/check_mk_configuration.py
+++ b/web/plugins/wato/check_mk_configuration.py
@@ -640,6 +640,15 @@ register_configvar(group,
need_restart = True)
register_configvar(group,
+ "piggyback_max_cachefile_age",
+ Integer(title = _("Maximum age for piggyback files"),
+ label = _("seconds"),
+ help = _("The number of seconds a piggyback file may be old to be valid
for monitoring. "
+ "Older files are deleted before processing them.")),
+ need_restart = True)
+
+
+register_configvar(group,
"check_submission",
DropdownChoice(
title = _("Check submission method"),