From b44825df2264fd4b02dfed0b08676fc7c7f1dbf9 Mon Sep 17 00:00:00 2001 From: vpalluel Date: Fri, 13 Feb 2015 17:22:24 +0100 Subject: [PATCH 1/4] Added rrd + changes --- apps/centreon/local/mode/retentionbroker.pm | 110 +++++++++++--------- 1 file changed, 63 insertions(+), 47 deletions(-) diff --git a/apps/centreon/local/mode/retentionbroker.pm b/apps/centreon/local/mode/retentionbroker.pm index 628e3bdfc..1c12a18f6 100644 --- a/apps/centreon/local/mode/retentionbroker.pm +++ b/apps/centreon/local/mode/retentionbroker.pm @@ -1,5 +1,5 @@ ################################################################################ -# Copyright 2005-2022 MERETHIS +# Copyright 2005-2015 MERETHIS # Centreon is developped by : Julien Mathis and Romain Le Merlus under # GPL Licence 2.0. # @@ -33,7 +33,7 @@ # #################################################################################### -package apps::centreon::local::mode::retentionbrokervpa; +package apps::centreon::local::mode::retentionbroker; use base qw(centreon::plugins::mode); @@ -71,48 +71,59 @@ sub run { my ($self, %options) = @_; my $parser = XML::LibXML->new(); my @broker_retention_dir_files; - my @broker_retention_sql_files; - my @broker_retention_perfdata_files; - my @broker_retention_rrd_files; - my $broker_retention_perfdata_files_count; - my $broker_retention_sql_files_count; - my $broker_retention_rrd_files_count; my $broker_retention_sql_size=0; my $broker_retention_perfdata_size=0; my $broker_retention_rrd_size=0; + my $broker_rrd_retention_rrd_size=0; my $count = 0; - my @configFiles; - push @configFiles, $self->{option_results}->{config_path}.$self->{option_results}->{rrd_config_file}, $self->{option_results}->{config_path}.$self->{option_results}->{sql_config_file}; + my $xml_rrd_config_file = $self->{option_results}->{config_path}.$self->{option_results}->{rrd_config_file}; + my $xml_sql_config_file = $self->{option_results}->{config_path}.$self->{option_results}->{sql_config_file}; + my $obj_rrd_config_file = $parser->parse_file($xml_rrd_config_file); + my $obj_sql_config_file = $parser->parse_file($xml_sql_config_file); + $self->{output}->output_add(severity => 'OK', short_msg => 'Centreon-broker retention OK'); - - my $filename; - foreach my $file (@configFiles) { - my $config = $parser->parse_file($file); - foreach my $data ($config->findnodes('/centreonBroker/output/path')) { - next if ($data->to_literal =~ m/rrdcached/); - $filename = $data->to_literal; - $filename =~ s/^.*\/(.*)$/$1/; - if (-f $data->to_literal) { - $self->{output}->output_add(severity => 'CRITICAL', short_msg => sprintf("%s ", $filename)); - } - } - } - + + my $central_broker_master_sql_failover_path; + my $central_broker_master_rrd_failover_path; + my $central_broker_master_perfdata_failover_path; + my $central_broker_rrd_rrd_failover_path; + foreach my $data ($obj_sql_config_file->findnodes('/centreonBroker/output/path')) { + next if ($data->to_literal =~ m/rrdcached/); + my $filename = $data->to_literal; + $filename =~ s/^.*\/(.*)$/$1/; + if ($filename =~ m/sql/) { + $central_broker_master_sql_failover_path = $filename; + } + if ($filename =~ m/rrd/) { + $central_broker_master_rrd_failover_path = $filename; + } + if ($filename =~ m/perfdata/) { + $central_broker_master_perfdata_failover_path = $filename; + } + } + + foreach my $data ($obj_rrd_config_file->findnodes('/centreonBroker/output/path')) { + next if ($data->to_literal =~ m/rrdcached/); + $central_broker_rrd_rrd_failover_path = $data->to_literal; + $central_broker_rrd_rrd_failover_path =~ s/^.*\/(.*)$/$1/; + } + opendir(my $dh, $self->{option_results}->{broker_retention_dir}); my $file = readdir($dh); - while ($file = readdir($dh)) { next if $file =~ m/^\./ or $file =~ m/stats/; push @broker_retention_dir_files, $file; } - @broker_retention_sql_files = grep(/sql/, @broker_retention_dir_files); - @broker_retention_perfdata_files = grep(/perfdata/, @broker_retention_dir_files); - @broker_retention_rrd_files = grep(/rrd/, @broker_retention_dir_files); - $broker_retention_sql_files_count = scalar(@broker_retention_sql_files); - $broker_retention_perfdata_files_count = scalar(@broker_retention_perfdata_files); - $broker_retention_rrd_files_count = scalar(@broker_retention_rrd_files); + my @broker_retention_sql_files = grep(/$central_broker_master_sql_failover_path/, @broker_retention_dir_files); + my @broker_retention_perfdata_files = grep(/$central_broker_master_perfdata_failover_path/, @broker_retention_dir_files); + my @broker_retention_rrd_files = grep(/$central_broker_master_rrd_failover_path/, @broker_retention_dir_files); + my @broker_rrd_retention_rrd_files = grep(/$central_broker_rrd_rrd_failover_path/, @broker_retention_dir_files); + my $broker_retention_sql_files_count = scalar(@broker_retention_sql_files); + my $broker_retention_perfdata_files_count = scalar(@broker_retention_perfdata_files); + my $broker_retention_rrd_files_count = scalar(@broker_retention_rrd_files); + my $broker_rrd_retention_rrd_files_count = scalar(@broker_rrd_retention_rrd_files); foreach my $sql_file(@broker_retention_sql_files){ $broker_retention_sql_size += -s $self->{option_results}->{broker_retention_dir}.$sql_file; @@ -123,28 +134,33 @@ sub run { foreach my $rrd_file(@broker_retention_rrd_files){ $broker_retention_rrd_size += -s $self->{option_results}->{broker_retention_dir}.$rrd_file; } - - - if(length($broker_retention_sql_size)>=4){ - $broker_retention_sql_size = $broker_retention_sql_size / 1024; - } - if(length($broker_retention_perfdata_size)>=4){ - $broker_retention_perfdata_size = $broker_retention_perfdata_size / 1024; - } - if(length($broker_retention_rrd_size)>=4){ - $broker_retention_rrd_size = $broker_retention_rrd_size / 1024; + foreach my $rrd_rrd_file(@broker_rrd_retention_rrd_files){ + $broker_rrd_retention_rrd_size += -s $self->{option_results}->{broker_retention_dir}.$rrd_rrd_file; } - if (($broker_retention_rrd_files_count > 1) || ($broker_retention_sql_files_count) > 1 || ($broker_retention_rrd_files_count > 1)) { + if(length($broker_retention_sql_size)!=0){ + $broker_retention_sql_size = $broker_retention_sql_size / 1024 / 1024; + } + if(length($broker_retention_perfdata_size)!=0){ + $broker_retention_perfdata_size = $broker_retention_perfdata_size / 1024 / 1024; + } + if(length($broker_retention_rrd_size)!=0){ + $broker_retention_rrd_size = $broker_retention_rrd_size / 1024 /1024; + } + if(length($broker_rrd_retention_rrd_size)!=0){ + $broker_rrd_retention_rrd_size = $broker_rrd_retention_rrd_size / 1024 /1024; + } + + if (($broker_retention_rrd_files_count > 1) || ($broker_retention_sql_files_count) > 1 || ($broker_retention_rrd_files_count > 1) || ($broker_rrd_retention_rrd_files_count > 1)) { $self->{output}->output_add(severity => 'CRITICAL', - short_msg => 'There is some retention files check your broker output', - long_msg => sprintf("sql_retention_files '%s' (size:'%d'MB) \nperfdata_retention_files '%s' (size:'%d'MB) \nrrd_retention_files '%s' (size:'%d'MB)", - $broker_retention_sql_files_count, $broker_retention_sql_size, $broker_retention_perfdata_files_count, $broker_retention_perfdata_size, $broker_retention_rrd_files_count, $broker_retention_rrd_size, + short_msg => 'There are some retention files check your broker output', + long_msg => sprintf("sql_retention_files '%s' (size:'%.2f'MB) \nperfdata_retention_files '%s' (size:'%.2f'MB) \nrrd_retention_files '%s' (size:'%.2f'MB) \nrrd_retention_files '%s' (size:'%.2f'MB) ", + $broker_retention_sql_files_count, $broker_retention_sql_size, $broker_retention_perfdata_files_count, $broker_retention_perfdata_size, $broker_retention_rrd_files_count, $broker_retention_rrd_size, $broker_rrd_retention_rrd_files_count, $broker_rrd_retention_rrd_size, )); } - $self->{output}->display(force_long_output => 1); - $self->{output}->exit(); + $self->{output}->display(force_long_output => 1); + $self->{output}->exit(); } From 176ce337dbc4a44a074a38e6f3312490ccd28209 Mon Sep 17 00:00:00 2001 From: garnier-quentin Date: Mon, 16 Feb 2015 10:15:55 +0100 Subject: [PATCH 2/4] Fix #6132 --- centreon/plugins/statefile.pm | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/centreon/plugins/statefile.pm b/centreon/plugins/statefile.pm index 125ab9bf4..afa65334f 100644 --- a/centreon/plugins/statefile.pm +++ b/centreon/plugins/statefile.pm @@ -53,6 +53,7 @@ sub new { { "memcached:s" => { name => 'memcached' }, "statefile-dir:s" => { name => 'statefile_dir', default => $default_dir }, + "statefile-suffix:s" => { name => 'statefile_suffix', default => '' }, "statefile-concat-cwd" => { name => 'statefile_concat_cwd' }, "statefile-storable" => { name => 'statefile_storable' }, }); @@ -95,7 +96,8 @@ sub check_options { sub read { my ($self, %options) = @_; $self->{statefile_dir} = defined($options{statefile_dir}) ? $options{statefile_dir} : $self->{statefile_dir}; - $self->{statefile} = defined($options{statefile}) ? $options{statefile} : $self->{statefile}; + $self->{statefile} = defined($options{statefile}) ? $options{statefile} . $options{option_results}->{statefile_suffix} : + $self->{statefile} . $options{option_results}->{statefile_suffix}; if (defined($self->{memcached})) { # if "SUCCESS" or "NOT FOUND" is ok. Other with use the file @@ -218,6 +220,10 @@ Memcached server to use (only one server). Directory for statefile (Default: '/var/lib/centreon/centplugins'). +=item B<--statefile-suffix> + +Add a suffix for the statefile name (Default: ''). + =item B<--statefile-concat-cwd> Concat current working directory with option '--statefile-dir'. From 881952b68a7ce4838826e935a966f97e184ba6c8 Mon Sep 17 00:00:00 2001 From: garnier-quentin Date: Mon, 16 Feb 2015 10:18:39 +0100 Subject: [PATCH 3/4] Fix statefile suffix --- centreon/plugins/statefile.pm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/centreon/plugins/statefile.pm b/centreon/plugins/statefile.pm index afa65334f..5d442ba6b 100644 --- a/centreon/plugins/statefile.pm +++ b/centreon/plugins/statefile.pm @@ -67,6 +67,7 @@ sub new { $self->{memcached} = undef; $self->{statefile_dir} = undef; + $self->{statefile_suffix} = undef; return $self; } @@ -91,13 +92,14 @@ sub check_options { error_msg => "Cannot load module 'Storable'."); $self->{storable} = 1; } + $self->{statefile_suffix} = $options{option_results}->{statefile_suffix}; } sub read { my ($self, %options) = @_; $self->{statefile_dir} = defined($options{statefile_dir}) ? $options{statefile_dir} : $self->{statefile_dir}; - $self->{statefile} = defined($options{statefile}) ? $options{statefile} . $options{option_results}->{statefile_suffix} : - $self->{statefile} . $options{option_results}->{statefile_suffix}; + $self->{statefile} = defined($options{statefile}) ? $options{statefile} . $self->{statefile_suffix} : + $self->{statefile} . $self->{statefile_suffix}; if (defined($self->{memcached})) { # if "SUCCESS" or "NOT FOUND" is ok. Other with use the file From f7f52ae3d2a53b19baa617423c872436f26ef38c Mon Sep 17 00:00:00 2001 From: garnier-quentin Date: Mon, 16 Feb 2015 10:26:26 +0100 Subject: [PATCH 4/4] statefile good fix... --- centreon/plugins/statefile.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/centreon/plugins/statefile.pm b/centreon/plugins/statefile.pm index 5d442ba6b..926da982e 100644 --- a/centreon/plugins/statefile.pm +++ b/centreon/plugins/statefile.pm @@ -99,7 +99,7 @@ sub read { my ($self, %options) = @_; $self->{statefile_dir} = defined($options{statefile_dir}) ? $options{statefile_dir} : $self->{statefile_dir}; $self->{statefile} = defined($options{statefile}) ? $options{statefile} . $self->{statefile_suffix} : - $self->{statefile} . $self->{statefile_suffix}; + $self->{statefile}; if (defined($self->{memcached})) { # if "SUCCESS" or "NOT FOUND" is ok. Other with use the file