From 3c9e89c2efe41704e71dec6b585e936d63c43d01 Mon Sep 17 00:00:00 2001 From: Simon Bomm Date: Thu, 7 Dec 2017 17:32:59 +0100 Subject: [PATCH 01/77] + add event count and event details --- database/oracle/mode/eventwaitsusage.pm | 96 +++++++++++++++++++++---- 1 file changed, 83 insertions(+), 13 deletions(-) diff --git a/database/oracle/mode/eventwaitsusage.pm b/database/oracle/mode/eventwaitsusage.pm index 9de9db890..6f312e169 100644 --- a/database/oracle/mode/eventwaitsusage.pm +++ b/database/oracle/mode/eventwaitsusage.pm @@ -30,10 +30,22 @@ sub set_counters { my ($self, %options) = @_; $self->{maps_counters_type} = [ - { name => 'event', type => 1, cb_prefix_output => 'prefix_event_output', message_multiple => 'All event waits are OK' }, + { name => 'event_count', type => 0 }, + { name => 'event', type => 1, cb_prefix_output => 'prefix_event_output', message_multiple => 'All event waits are OK', skipped_code => { 11 => -1 }}, ]; - $self->{maps_counters}->{event} = [ + + $self->{maps_counters}->{event_count} = [ + { label => 'event-count', set => { + key_values => [ { name => 'count' } ], + output_template => 'Event Wait Count : %d events' , output_use => 'count_absolute', + perfdatas => [ + { label => 'event_wait_count', value => 'count_absolute', template => '%d', min => 0 } + ], + } + }, + ]; + $self->{maps_counters}->{event} = [ { label => 'total-waits-sec', set => { key_values => [ { name => 'total_waits', diff => 1 }, { name => 'display' } ], per_second => 1, @@ -55,7 +67,7 @@ sub set_counters { ], } }, - ]; + ], } sub custom_usage_calc { @@ -64,7 +76,18 @@ sub custom_usage_calc { $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'}; my $delta_total = $options{new_datas}->{$self->{instance} . '_time_waited_micro'} - $options{old_datas}->{$self->{instance} . '_time_waited_micro'}; $self->{result_values}->{prct_wait} = 100 * ($delta_total / 1000000) / $options{delta_time}; - + + return 0; +} + +sub custom_count_calc { + my ($self, %options) = @_; + + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'}; + + my $delta_total = $options{new_datas}->{$self->{instance} . '_time_waited_micro'} - $options{old_datas}->{$self->{instance} . '_time_waited_micro'}; + $self->{result_values}->{prct_wait} = 100 * ($delta_total / 1000000) / $options{delta_time}; + return 0; } @@ -77,6 +100,8 @@ sub new { $options{options}->add_options(arguments => { "filter-name:s" => { name => 'filter_name' }, + "wait-time-min:s" => { name => 'wait_time_min', default => 1000 }, + "show-details" => { name => 'show_details' } }); return $self; } @@ -93,20 +118,20 @@ sub manage_selection { $self->{sql}->connect(); my $query = q{ - SELECT e.event#, e.name, + SELECT e.event#, e.name, NVL(s.total_waits, 0), NVL(s.total_timeouts, 0), NVL(s.time_waited, 0), NVL(s.time_waited_micro, 0), NVL(s.average_wait, 0) FROM v$event_name e LEFT JOIN sys.v_$system_event s ON e.name = s.event - }; + }; if ($self->{sql}->is_version_minimum(version => '10')) { $query = q{ - SELECT e.event_id, e.name, + SELECT e.event_id, e.name, NVL(s.total_waits, 0), NVL(s.total_timeouts, 0), NVL(s.time_waited, 0), NVL(s.time_waited_micro, 0), NVL(s.average_wait, 0) FROM v$event_name e LEFT JOIN sys.v_$system_event s ON e.name = s.event }; } - + $self->{sql}->query(query => $query); my $result = $self->{sql}->fetchall_arrayref(); @@ -126,15 +151,52 @@ sub manage_selection { time_waited_micro => $time_waited_micro }; } - + + my $query_count = "SELECT count(*) as NB + FROM v\$session + WHERE WAIT_TIME_MICRO>" . $self->{option_results}->{wait_time_min} . " + AND status='ACTIVE' and WAIT_CLASS <>'Idle'"; + + $self->{sql}->query(query => $query_count); + $result = $self->{sql}->fetchrow_hashref(); + + $self->{event_count}->{count} = $result->{NB}; + + if (defined($self->{option_results}->{show_details})) { + my $query_details = "SELECT + a.username USERNAME, + a.program PROGRAM, + a.event EVENT, + round(a.WAIT_TIME_MICRO/1000000,0) SEC_WAIT, + d.sql_text SQL_TEXT + FROM + v\$session a, + v\$sqlstats d + WHERE + a.sql_id = d.sql_id + and a.status='ACTIVE' + and a.wait_class <> 'Idle' + and WAIT_TIME_MICRO>" . $self->{option_results}->{wait_time_min} . " + and a.sid not in (SELECT SID FROM V\$SESSION WHERE audsid = userenv('SESSIONID')) + ORDER BY + a.WAIT_TIME_MICRO desc"; + + $self->{sql}->query(query => $query_details ); + while (my $result = $self->{sql}->fetchrow_hashref()) { + $self->{output}->output_add(long_msg => sprintf("Username: '%s', Program: '%s' Event: '%s', Second wait: '%s's, Details: '%s'\n", + $result->{USERNAME}, $result->{PROGRAM}, $result->{EVENT}, $result->{SEC_WAIT}, $result->{SQL_TEXT})); + } + } + if (scalar(keys %{$self->{event}}) <= 0) { $self->{output}->add_option_msg(short_msg => "No event found."); $self->{output}->option_exit(); } - - $self->{cache_name} = "oracle_" . $self->{mode} . '_' . $self->{sql}->get_unique_id4save() . '_' . + + $self->{cache_name} = "oracle_" . $self->{mode} . '_' . $self->{sql}->get_unique_id4save() . '_' . (defined($self->{option_results}->{filter_counters}) ? md5_hex($self->{option_results}->{filter_counters}) : md5_hex('all')) . '_' . (defined($self->{option_results}->{filter_name}) ? md5_hex($self->{option_results}->{filter_name}) : md5_hex('all')); + } 1; @@ -150,17 +212,25 @@ Check Oracle event wait usage. =item B<--warning-*> Threshold warning. -Can be: 'total-waits-sec', 'total-waits-time'. +Can be: 'total-waits-sec', 'total-waits-time', 'count'. =item B<--critical-*> Threshold critical. -Can be: 'total-waits-sec', 'total-waits-time'. +Can be: 'total-waits-sec', 'total-waits-time', 'count'. =item B<--filter-name> Filter by event name. Can be a regex. +=item B<--wait-time-min> + +Time in ms above which we count an event as waiting + +=item B<--show-details> + +Print details of waiting events (user, query, ...) in long output + =back =cut From 718d406b896e3e79b700025f28112b5f0fae38ec Mon Sep 17 00:00:00 2001 From: Simon Bomm Date: Thu, 7 Dec 2017 17:33:31 +0100 Subject: [PATCH 02/77] + add specific temp tablespace --- database/oracle/mode/temptablespace.pm | 202 +++++++++++++++++++++++++ 1 file changed, 202 insertions(+) create mode 100644 database/oracle/mode/temptablespace.pm diff --git a/database/oracle/mode/temptablespace.pm b/database/oracle/mode/temptablespace.pm new file mode 100644 index 000000000..97ce6eac9 --- /dev/null +++ b/database/oracle/mode/temptablespace.pm @@ -0,0 +1,202 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package database::oracle::mode::temptablespace; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use Digest::MD5 qw(md5_hex); + +my $instance_mode; + +sub custom_usage_perfdata { + my ($self, %options) = @_; + + my $label = 'used'; + my $value_perf = $self->{result_values}->{used}; + if (defined($instance_mode->{option_results}->{free})) { + $label = 'free'; + $value_perf = $self->{result_values}->{free}; + } + + my %total_options = (); + if ($instance_mode->{option_results}->{units} eq '%') { + $total_options{total} = $self->{result_values}->{total}; + $total_options{cast_int} = 1; + } + + $self->{output}->perfdata_add(label => $label, + value => $value_perf, unit => 'B', + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{label}, %total_options), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{label}, %total_options), + min => 0, max => $self->{result_values}->{total}); +} + +sub custom_usage_threshold { + my ($self, %options) = @_; + + my ($exit, $threshold_value); + $threshold_value = $self->{result_values}->{used}; + $threshold_value = $self->{result_values}->{free} if (defined($instance_mode->{option_results}->{free})); + if ($instance_mode->{option_results}->{units} eq '%') { + $threshold_value = $self->{result_values}->{prct_used}; + $threshold_value = $self->{result_values}->{prct_free} if (defined($instance_mode->{option_results}->{free})); + } + $exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{label}, exit_litteral => 'critical' }, { label => 'warning-'. $self->{label}, exit_litteral => 'warning' } ]); + return $exit; +} + +sub custom_usage_output { + my ($self, %options) = @_; + + my $msg = sprintf("Total: %s%s Used: %s%s (%.2f%%) Free: %s%s (%.2f%%)", + $self->{perfdata}->change_bytes(value => $self->{result_values}->{total}), + $self->{perfdata}->change_bytes(value => $self->{result_values}->{used}), $self->{result_values}->{prct_used}, + $self->{perfdata}->change_bytes(value => $self->{result_values}->{free}), $self->{result_values}->{prct_free}); + return $msg; +} + +sub custom_usage_calc { + my ($self, %options) = @_; + + $self->{result_values}->{total} = $options{new_datas}->{$self->{instance} . '_total'}; + $self->{result_values}->{used} = $options{new_datas}->{$self->{instance} . '_used'}; + $self->{result_values}->{prct_used} = $self->{result_values}->{used} * 100 / $self->{result_values}->{total}; + $self->{result_values}->{free} = $self->{result_values}->{total} - $self->{result_values}->{used}; + $self->{result_values}->{prct_free} = 100 - $self->{result_values}->{prct_used}; + + return 0; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'tmptablespace', type => 1, cb_prefix_output => 'prefix_tablespace_output', message_multiple => 'All temporary tablespaces are OK' }, + ]; + + $self->{maps_counters}->{tmptablespace} = [ + { label => 'usage', set => { + key_values => [ { name => 'used' }, { name => 'total' }, { name => 'display' } ], + closure_custom_calc => \&custom_usage_calc, + closure_custom_output => \&custom_usage_output, + closure_custom_perfdata => \&custom_usage_perfdata, + closure_custom_threshold_check => \&custom_usage_threshold, + } + }, + ]; +} + +sub prefix_tablespace_output { + my ($self, %options) = @_; + + return "Temp Tablespace '" . $options{instance_value}->{display} . "' "; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 0); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "units:s" => { name => 'units', default => '%' }, + "free" => { name => 'free' }, + }); + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; +} + + +sub manage_selection { + my ($self, %options) = @_; + $self->{sql} = $options{sql}; + $self->{sql}->connect(); + + my $query = q{ + WITH + TMP as + ( + SELECT + B.name, + C.block_size, + SUM (C.bytes) b_total + FROM + v$tablespace B join + v$tempfile C + using ( ts#) + GROUP BY + B.name, C.block_size + ) + SELECT + A.tablespace_name tablespace, TMP.b_total, + SUM (A.used_blocks * TMP.block_size) b_used, + TMP.b_total - SUM (A.used_blocks * TMP.block_size) / 1024 b_free + FROM + v$sort_segment A join TMP on A.tablespace_name = TMP.name + GROUP by + A.tablespace_name, TMP.b_total + }; + + $self->{sql}->query(query => $query); + + while (my $result = $self->{sql}->fetchrow_hashref()) { + $self->{tmptablespace}->{$result->{TABLESPACE}} = { used => $result->{B_USED}, total => $result->{B_TOTAL}, display => lc $result->{TABLESPACE} }; + } +} + +1; + +__END__ + +=head1 MODE + +Check Oracle TEMP tablespaces + +=over 8 + +=item B<--units> + +Unit of thresholds (Can be : '%' (default) or 'B') + +=item B<--free> + +Threshold are on free space left + +=item B<--warning-usage> + +Threshold warning. + +=item B<--critical-usage> + +Threshold critical. + +=back + +=cut From 90a59c09f4e2b6b1f5e000afaba0d58a2138646f Mon Sep 17 00:00:00 2001 From: Simon Bomm Date: Thu, 7 Dec 2017 17:33:59 +0100 Subject: [PATCH 03/77] + add specific undo tablespace --- database/oracle/mode/undotablespace.pm | 209 +++++++++++++++++++++++++ 1 file changed, 209 insertions(+) create mode 100644 database/oracle/mode/undotablespace.pm diff --git a/database/oracle/mode/undotablespace.pm b/database/oracle/mode/undotablespace.pm new file mode 100644 index 000000000..7695b2317 --- /dev/null +++ b/database/oracle/mode/undotablespace.pm @@ -0,0 +1,209 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package database::oracle::mode::undotablespace; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use Digest::MD5 qw(md5_hex); + +my $instance_mode; + +sub custom_usage_perfdata { + my ($self, %options) = @_; + + my $label = 'used'; + my $value_perf = $self->{result_values}->{used}; + if (defined($instance_mode->{option_results}->{free})) { + $label = 'free'; + $value_perf = $self->{result_values}->{free}; + } + + my %total_options = (); + if ($instance_mode->{option_results}->{units} eq '%') { + $total_options{total} = $self->{result_values}->{total}; + $total_options{cast_int} = 1; + } + + $self->{output}->perfdata_add(label => $label, + value => $value_perf, unit => 'B', + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{label}, %total_options), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{label}, %total_options), + min => 0, max => $self->{result_values}->{total}); +} + +sub custom_usage_threshold { + my ($self, %options) = @_; + + my ($exit, $threshold_value); + $threshold_value = $self->{result_values}->{used}; + $threshold_value = $self->{result_values}->{free} if (defined($instance_mode->{option_results}->{free})); + if ($instance_mode->{option_results}->{units} eq '%') { + $threshold_value = $self->{result_values}->{prct_used}; + $threshold_value = $self->{result_values}->{prct_free} if (defined($instance_mode->{option_results}->{free})); + } + $exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{label}, exit_litteral => 'critical' }, { label => 'warning-'. $self->{label}, exit_litteral => 'warning' } ]); + return $exit; +} + +sub custom_usage_output { + my ($self, %options) = @_; + + my $msg = sprintf("Total: %s%s Used: %s%s (%.2f%%) Free: %s%s (%.2f%%)", + $self->{perfdata}->change_bytes(value => $self->{result_values}->{total}), + $self->{perfdata}->change_bytes(value => $self->{result_values}->{used}), $self->{result_values}->{prct_used}, + $self->{perfdata}->change_bytes(value => $self->{result_values}->{free}), $self->{result_values}->{prct_free}); + return $msg; +} + +sub custom_usage_calc { + my ($self, %options) = @_; + + $self->{result_values}->{total} = $options{new_datas}->{$self->{instance} . '_total'}; + $self->{result_values}->{used} = $options{new_datas}->{$self->{instance} . '_used'}; + $self->{result_values}->{prct_used} = $self->{result_values}->{used} * 100 / $self->{result_values}->{total}; + $self->{result_values}->{free} = $self->{result_values}->{total} - $self->{result_values}->{used}; + $self->{result_values}->{prct_free} = 100 - $self->{result_values}->{prct_used}; + + return 0; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'undotablespace', type => 1, cb_prefix_output => 'prefix_tablespace_output', message_multiple => 'All undo tablespaces are OK' }, + ]; + + $self->{maps_counters}->{undotablespace} = [ + { label => 'usage', set => { + key_values => [ { name => 'used' }, { name => 'total' }, { name => 'display' } ], + closure_custom_calc => \&custom_usage_calc, + closure_custom_output => \&custom_usage_output, + closure_custom_perfdata => \&custom_usage_perfdata, + closure_custom_threshold_check => \&custom_usage_threshold, + } + }, + ]; +} + +sub prefix_tablespace_output { + my ($self, %options) = @_; + + return "Undo Tablespace '" . $options{instance_value}->{display} . "' "; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 0); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "units:s" => { name => 'units', default => '%' }, + "free" => { name => 'free' }, + }); + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; +} + + +sub manage_selection { + my ($self, %options) = @_; + $self->{sql} = $options{sql}; + $self->{sql}->connect(); + + my $query = q{ + WITH + UND as + ( + SELECT + a.tablespace_name, + nvl(sum(bytes),0) used_bytes + FROM + dba_undo_extents a + WHERE + tablespace_name in (select upper(value) from gv$parameter where name='undo_tablespace') and status in ('ACTIVE','UNEXPIRED') +group by a.tablespace_name + ), + DF as + ( + SELECT + b.tablespace_name, + round(SUM(decode(B.maxbytes, 0, B.BYTES/(1024*1024), B.maxbytes))) total_bytes + FROM + dba_data_files b + WHERE + tablespace_name in (select upper(value) from gv$parameter where name='undo_tablespace') group by b.tablespace_name + ) + SELECT + UND.tablespace_name, + UND.used_bytes, + DF.total_bytes + FROM UND left outer join DF + on (UND.tablespace_name=DF.tablespace_name) + order by DF.tablespace_name + }; + + $self->{sql}->query(query => $query); + + while (my $result = $self->{sql}->fetchrow_hashref()) { + $self->{undotablespace}->{$result->{TABLESPACE_NAME}} = { used => $result->{USED_BYTES}, total => $result->{TOTAL_BYTES}, display => lc $result->{TABLESPACE_NAME} }; + } +} + +1; + +__END__ + +=head1 MODE + +Check Oracle UNDO tablespaces + +=over 8 + +=item B<--units> + +Unit of threshold (Can be : '%' (default) or 'B') + +=item B<--free> + +Threshold are on free space left + +=item B<--warning-usage> + +Threshold warning. + +=item B<--critical-usage> + +Threshold critical. + +=back + +=cut From d992a3e734829097b4ef1fe6158957282e4af3c5 Mon Sep 17 00:00:00 2001 From: Simon Bomm Date: Thu, 7 Dec 2017 17:35:30 +0100 Subject: [PATCH 04/77] + update with new modes --- database/oracle/plugin.pm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/database/oracle/plugin.pm b/database/oracle/plugin.pm index f212c23c8..8ab60188f 100644 --- a/database/oracle/plugin.pm +++ b/database/oracle/plugin.pm @@ -47,6 +47,8 @@ sub new { 'rman-online-backup-age' => 'database::oracle::mode::rmanonlinebackupage', 'rollback-segment-usage' => 'database::oracle::mode::rollbacksegmentusage', 'tablespace-usage' => 'database::oracle::mode::tablespaceusage', + 'temp-usage' => 'database::oracle::mode::temptablespace', + 'undo-usage' => 'database::oracle::mode::undotablespace', 'session-usage' => 'database::oracle::mode::sessionusage', 'sql' => 'centreon::common::protocols::sql::mode::sql', 'sql-string' => 'centreon::common::protocols::sql::mode::sqlstring', From 4392eacfb10004f9be32dc81fd2ffc5cf79138a3 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Fri, 8 Dec 2017 09:33:51 +0100 Subject: [PATCH 05/77] Fix #327 --- apps/haproxy/snmp/mode/backendusage.pm | 278 ++++++++++++++++++++++++ apps/haproxy/snmp/mode/frontendusage.pm | 267 +++++++++++++++++++++++ apps/haproxy/snmp/plugin.pm | 49 +++++ 3 files changed, 594 insertions(+) create mode 100644 apps/haproxy/snmp/mode/backendusage.pm create mode 100644 apps/haproxy/snmp/mode/frontendusage.pm create mode 100644 apps/haproxy/snmp/plugin.pm diff --git a/apps/haproxy/snmp/mode/backendusage.pm b/apps/haproxy/snmp/mode/backendusage.pm new file mode 100644 index 000000000..56e941b34 --- /dev/null +++ b/apps/haproxy/snmp/mode/backendusage.pm @@ -0,0 +1,278 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::haproxy::snmp::mode::backendusage; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use Digest::MD5 qw(md5_hex); + +my $instance_mode; + +sub custom_status_threshold { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && + eval "$instance_mode->{option_results}->{critical_status}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && + eval "$instance_mode->{option_results}->{warning_status}") { + $status = 'warning'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_status_output { + my ($self, %options) = @_; + + my $msg = 'status : ' . $self->{result_values}->{status}; + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_alBackendStatus'}; + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'}; + return 0; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'backend', type => 1, cb_prefix_output => 'prefix_backend_output', message_multiple => 'All backends are ok' }, + ]; + + $self->{maps_counters}->{backend} = [ + { label => 'status', threshold => 0, set => { + key_values => [ { name => 'alBackendStatus' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_status_calc'), + closure_custom_output => $self->can('custom_status_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + { label => 'current-queue', set => { + key_values => [ { name => 'alBackendQueueCur' }, { name => 'display' } ], + output_template => 'Current queue : %s', + perfdatas => [ + { label => 'current_queue', value => 'alBackendQueueCur_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'current-sessions', set => { + key_values => [ { name => 'alBackendSessionCur' }, { name => 'display' } ], + output_template => 'Current sessions : %s', + perfdatas => [ + { label => 'current_sessions', value => 'alBackendSessionCur_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'total-sessions', set => { + key_values => [ { name => 'alBackendSessionTotal', diff => 1 }, { name => 'display' } ], + output_template => 'Total sessions : %s', + perfdatas => [ + { label => 'total_connections', value => 'alBackendSessionTotal_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'traffic-in', set => { + key_values => [ { name => 'alBackendBytesIN', diff => 1 }, { name => 'display' } ], + output_template => 'Traffic In : %s %s/s', + per_second => 1, output_change_bytes => 2, + perfdatas => [ + { label => 'traffic_in', value => 'alBackendBytesIN_per_second', template => '%.2f', + min => 0, unit => 'b/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'traffic-out', set => { + key_values => [ { name => 'alBackendBytesOUT', diff => 1 }, { name => 'display' } ], + output_template => 'Traffic Out : %s %s/s', + per_second => 1, output_change_bytes => 2, + perfdatas => [ + { label => 'traffic_out', value => 'alBackendBytesOUT_per_second', template => '%.2f', + min => 0, unit => 'b/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 1); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "filter-name:s" => { name => 'filter_name' }, + "warning-status:s" => { name => 'warning_status', default => '' }, + "critical-status:s" => { name => 'critical_status', default => '%{status} !~ /UP/i' }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; + $self->change_macros(); +} + +sub prefix_backend_output { + my ($self, %options) = @_; + + return "Backend '" . $options{instance_value}->{display} . "' "; +} + +sub change_macros { + my ($self, %options) = @_; + + foreach (('warning_status', 'critical_status')) { + if (defined($self->{option_results}->{$_})) { + $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; + } + } +} + +my $mapping = { + alBackendName => { oid => '.1.3.6.1.4.1.23263.4.2.1.3.3.1.3' }, + alBackendQueueCur => { oid => '.1.3.6.1.4.1.23263.4.2.1.3.3.1.4' }, + alBackendSessionCur => { oid => '.1.3.6.1.4.1.23263.4.2.1.3.3.1.7' }, + alBackendSessionTotal => { oid => '.1.3.6.1.4.1.23263.4.2.1.3.3.1.10' }, + alBackendBytesIN => { oid => '.1.3.6.1.4.1.23263.4.2.1.3.3.1.12' }, + alBackendBytesOUT => { oid => '.1.3.6.1.4.1.23263.4.2.1.3.3.1.13' }, + alBackendStatus => { oid => '.1.3.6.1.4.1.23263.4.2.1.3.3.1.20' }, +}; + +sub manage_selection { + my ($self, %options) = @_; + + if ($options{snmp}->is_snmpv1()) { + $self->{output}->add_option_msg(short_msg => "Need to use SNMP v2c or v3."); + $self->{output}->option_exit(); + } + + $self->{backend} = {}; + my $snmp_result = $options{snmp}->get_multiple_table( + oids => [ + { oid => $mapping->{alBackendName}->{oid} }, + { oid => $mapping->{alBackendQueueCur}->{oid} }, + { oid => $mapping->{alBackendSessionCur}->{oid} }, + { oid => $mapping->{alBackendSessionTotal}->{oid} }, + { oid => $mapping->{alBackendBytesIN}->{oid} }, + { oid => $mapping->{alBackendBytesOUT}->{oid} }, + { oid => $mapping->{alBackendStatus}->{oid} }, + ], + return_type => 1, nothing_quit => 1); + + foreach my $oid (keys %{$snmp_result}) { + next if ($oid !~ /^$mapping->{alBackendName}->{oid}\.(.*)$/); + my $instance = $1; + my $result = $options{snmp}->map_instance(mapping => $mapping, results => $snmp_result, instance => $instance); + + if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' && + $result->{alBackendName} !~ /$self->{option_results}->{filter_name}/) { + $self->{output}->output_add(long_msg => "skipping '" . $result->{wgPolicyName} . "': no matching filter.", debug => 1); + next; + } + + $result->{alBackendBytesIN} *= 8; + $result->{alBackendBytesOUT} *= 8; + $self->{backend}->{$instance} = { display => $result->{alBackendName}, + %$result + }; + } + + if (scalar(keys %{$self->{backend}}) <= 0) { + $self->{output}->add_option_msg(short_msg => "No backend found."); + $self->{output}->option_exit(); + } + + $self->{cache_name} = "haproxy_" . $self->{mode} . '_' . $options{snmp}->get_hostname() . '_' . $options{snmp}->get_port() . '_' . + (defined($self->{option_results}->{filter_counters}) ? md5_hex($self->{option_results}->{filter_counters}) : md5_hex('all')) . '_' . + (defined($self->{option_results}->{filter_name}) ? md5_hex($self->{option_results}->{filter_name}) : md5_hex('all')); +} + +1; + +__END__ + +=head1 MODE + +Check backend usage. + +=over 8 + +=item B<--filter-counters> + +Only display some counters (regexp can be used). +Example: --filter-counters='^total-sessions$' + +=item B<--filter-name> + +Filter backend name (can be a regexp). + +=item B<--warning-status> + +Set warning threshold for status. +Can used special variables like: %{status}, %{display} + +=item B<--critical-status> + +Set critical threshold for status (Default: '%{status} !~ /UP/i'). +Can used special variables like: %{status}, %{display} + +=item B<--warning-*> + +Threshold warning. +Can be: 'total-sessions', 'current-sessions', 'current-queue', +'traffic-in' (b/s), 'traffic-out' (b/s). + +=item B<--critical-*> + +Threshold critical. +Can be: 'total-sessions', 'current-sessions', 'current-queue', +'traffic-in' (b/s), 'traffic-out' (b/s). + +=back + +=cut diff --git a/apps/haproxy/snmp/mode/frontendusage.pm b/apps/haproxy/snmp/mode/frontendusage.pm new file mode 100644 index 000000000..5e40acd57 --- /dev/null +++ b/apps/haproxy/snmp/mode/frontendusage.pm @@ -0,0 +1,267 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::haproxy::snmp::mode::frontendusage; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use Digest::MD5 qw(md5_hex); + +my $instance_mode; + +sub custom_status_threshold { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && + eval "$instance_mode->{option_results}->{critical_status}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && + eval "$instance_mode->{option_results}->{warning_status}") { + $status = 'warning'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_status_output { + my ($self, %options) = @_; + + my $msg = 'status : ' . $self->{result_values}->{status}; + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_alFrontendStatus'}; + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'}; + return 0; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'frontend', type => 1, cb_prefix_output => 'prefix_frontend_output', message_multiple => 'All frontends are ok' }, + ]; + + $self->{maps_counters}->{frontend} = [ + { label => 'status', threshold => 0, set => { + key_values => [ { name => 'alFrontendStatus' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_status_calc'), + closure_custom_output => $self->can('custom_status_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + { label => 'current-sessions', set => { + key_values => [ { name => 'alFrontendSessionCur' }, { name => 'display' } ], + output_template => 'Current sessions : %s', + perfdatas => [ + { label => 'current_sessions', value => 'alFrontendSessionCur_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'total-sessions', set => { + key_values => [ { name => 'alFrontendSessionTotal', diff => 1 }, { name => 'display' } ], + output_template => 'Total sessions : %s', + perfdatas => [ + { label => 'total_connections', value => 'alFrontendSessionTotal_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'traffic-in', set => { + key_values => [ { name => 'alFrontendBytesIN', diff => 1 }, { name => 'display' } ], + output_template => 'Traffic In : %s %s/s', + per_second => 1, output_change_bytes => 2, + perfdatas => [ + { label => 'traffic_in', value => 'alFrontendBytesIN_per_second', template => '%.2f', + min => 0, unit => 'b/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'traffic-out', set => { + key_values => [ { name => 'alFrontendBytesOUT', diff => 1 }, { name => 'display' } ], + output_template => 'Traffic Out : %s %s/s', + per_second => 1, output_change_bytes => 2, + perfdatas => [ + { label => 'traffic_out', value => 'alFrontendBytesOUT_per_second', template => '%.2f', + min => 0, unit => 'b/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 1); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "filter-name:s" => { name => 'filter_name' }, + "warning-status:s" => { name => 'warning_status', default => '' }, + "critical-status:s" => { name => 'critical_status', default => '%{status} !~ /OPEN/i' }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; + $self->change_macros(); +} + +sub prefix_frontend_output { + my ($self, %options) = @_; + + return "Frontend '" . $options{instance_value}->{display} . "' "; +} + +sub change_macros { + my ($self, %options) = @_; + + foreach (('warning_status', 'critical_status')) { + if (defined($self->{option_results}->{$_})) { + $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; + } + } +} + +my $mapping = { + alFrontendName => { oid => '.1.3.6.1.4.1.23263.4.2.1.3.2.1.3' }, + alFrontendSessionCur => { oid => '.1.3.6.1.4.1.23263.4.2.1.3.2.1.4' }, + alFrontendSessionTotal => { oid => '.1.3.6.1.4.1.23263.4.2.1.3.2.1.7' }, + alFrontendBytesIN => { oid => '.1.3.6.1.4.1.23263.4.2.1.3.2.1.8' }, + alFrontendBytesOUT => { oid => '.1.3.6.1.4.1.23263.4.2.1.3.2.1.9' }, + alFrontendStatus => { oid => '.1.3.6.1.4.1.23263.4.2.1.3.2.1.13' }, +}; + +sub manage_selection { + my ($self, %options) = @_; + + if ($options{snmp}->is_snmpv1()) { + $self->{output}->add_option_msg(short_msg => "Need to use SNMP v2c or v3."); + $self->{output}->option_exit(); + } + + $self->{frontend} = {}; + my $snmp_result = $options{snmp}->get_multiple_table( + oids => [ + { oid => $mapping->{alFrontendName}->{oid} }, + { oid => $mapping->{alFrontendSessionCur}->{oid} }, + { oid => $mapping->{alFrontendSessionTotal}->{oid} }, + { oid => $mapping->{alFrontendBytesIN}->{oid} }, + { oid => $mapping->{alFrontendBytesOUT}->{oid} }, + { oid => $mapping->{alFrontendStatus}->{oid} }, + ], + return_type => 1, nothing_quit => 1); + + foreach my $oid (keys %{$snmp_result}) { + next if ($oid !~ /^$mapping->{alFrontendName}->{oid}\.(.*)$/); + my $instance = $1; + my $result = $options{snmp}->map_instance(mapping => $mapping, results => $snmp_result, instance => $instance); + + if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' && + $result->{alFrontendName} !~ /$self->{option_results}->{filter_name}/) { + $self->{output}->output_add(long_msg => "skipping '" . $result->{wgPolicyName} . "': no matching filter.", debug => 1); + next; + } + + $result->{alFrontendBytesIN} *= 8; + $result->{alFrontendBytesOUT} *= 8; + $self->{frontend}->{$instance} = { display => $result->{alFrontendName}, + %$result + }; + } + + if (scalar(keys %{$self->{frontend}}) <= 0) { + $self->{output}->add_option_msg(short_msg => "No frontend found."); + $self->{output}->option_exit(); + } + + $self->{cache_name} = "haproxy_" . $self->{mode} . '_' . $options{snmp}->get_hostname() . '_' . $options{snmp}->get_port() . '_' . + (defined($self->{option_results}->{filter_counters}) ? md5_hex($self->{option_results}->{filter_counters}) : md5_hex('all')) . '_' . + (defined($self->{option_results}->{filter_name}) ? md5_hex($self->{option_results}->{filter_name}) : md5_hex('all')); +} + +1; + +__END__ + +=head1 MODE + +Check frontend usage. + +=over 8 + +=item B<--filter-counters> + +Only display some counters (regexp can be used). +Example: --filter-counters='^total-connections$' + +=item B<--filter-name> + +Filter backend name (can be a regexp). + +=item B<--warning-status> + +Set warning threshold for status. +Can used special variables like: %{status}, %{display} + +=item B<--critical-status> + +Set critical threshold for status (Default: '%{status} !~ /OPEN/i'). +Can used special variables like: %{status}, %{display} + +=item B<--warning-*> + +Threshold warning. +Can be: 'total-sessions', 'current-sessions', +'traffic-in' (b/s), 'traffic-out' (b/s). + +=item B<--critical-*> + +Threshold critical. +Can be: 'total-sessions', 'current-sessions', +'traffic-in' (b/s), 'traffic-out' (b/s). + +=back + +=cut diff --git a/apps/haproxy/snmp/plugin.pm b/apps/haproxy/snmp/plugin.pm new file mode 100644 index 000000000..53237ade7 --- /dev/null +++ b/apps/haproxy/snmp/plugin.pm @@ -0,0 +1,49 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::haproxy::snmp::plugin; + +use strict; +use warnings; +use base qw(centreon::plugins::script_snmp); + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + %{$self->{modes}} = ( + 'backend-usage' => 'apps::haproxy::snmp::mode::backendusage', + 'frontend-usage' => 'apps::haproxy::snmp::mode::frontendusage', + ); + + return $self; +} + +1; + +__END__ + +=head1 PLUGIN DESCRIPTION + +Check haproxy software in SNMP. + +=cut From 7e89b55bbe1b03934cef5f49080af675115093e8 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Fri, 8 Dec 2017 09:34:39 +0100 Subject: [PATCH 06/77] prepare version --- changelog | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog b/changelog index ae6d22143..87b485d0a 100644 --- a/changelog +++ b/changelog @@ -3,6 +3,7 @@ * Plugin added: Redis Cli * Plugin added: Ubiquiti Edge SNMP * Plugin added: Arista SNMP + * Plugin added: Haproxy SNMP * Plugin added: JBoss JMX * Plugin added: NSClient Query * Break: Renamed Asterisk AMI From d62ed5b3e4d2add71fdc23b1880aa42cbf0349a4 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Fri, 8 Dec 2017 11:53:22 +0100 Subject: [PATCH 07/77] Ref #714 : WIP infoblox --- network/infoblox/snmp/mode/cpu.pm | 92 +++++++++++ network/infoblox/snmp/mode/dnsusage.pm | 209 +++++++++++++++++++++++++ network/infoblox/snmp/mode/memory.pm | 108 +++++++++++++ network/infoblox/snmp/plugin.pm | 52 ++++++ 4 files changed, 461 insertions(+) create mode 100644 network/infoblox/snmp/mode/cpu.pm create mode 100644 network/infoblox/snmp/mode/dnsusage.pm create mode 100644 network/infoblox/snmp/mode/memory.pm create mode 100644 network/infoblox/snmp/plugin.pm diff --git a/network/infoblox/snmp/mode/cpu.pm b/network/infoblox/snmp/mode/cpu.pm new file mode 100644 index 000000000..f9b2e26ad --- /dev/null +++ b/network/infoblox/snmp/mode/cpu.pm @@ -0,0 +1,92 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package network::infoblox::snmp::mode::cpu; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0 }, + ]; + + $self->{maps_counters}->{global} = [ + { label => 'usage', set => { + key_values => [ { name => 'cpu' } ], + output_template => 'CPU Usage : %.2f %%', + perfdatas => [ + { label => 'cpu_usage', value => 'cpu_absolute', template => '%.2f', + min => 0, max => 100, unit => '%' }, + ], + } + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + }); + + return $self; +} + +sub manage_selection { + my ($self, %options) = @_; + + my $oid_ibSystemMonitorCpuUsage = '.1.3.6.1.4.1.7779.3.1.1.2.1.8.1.1.0'; + my $snmp_result = $options{snmp}->get_leef(oids => [ + $oid_ibSystemMonitorCpuUsage + ], nothing_quit => 1); + + $self->{global} = { cpu => $snmp_result->{$oid_ibSystemMonitorCpuUsage} }; +} + +1; + +__END__ + +=head1 MODE + +Check CPU usage. + +=over 8 + +=item B<--warning-usage> + +Threshold warning. + +=item B<--critical-usage> + +Threshold critical. + +=back + +=cut diff --git a/network/infoblox/snmp/mode/dnsusage.pm b/network/infoblox/snmp/mode/dnsusage.pm new file mode 100644 index 000000000..5a9b2ff8d --- /dev/null +++ b/network/infoblox/snmp/mode/dnsusage.pm @@ -0,0 +1,209 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package network::infoblox::snmp::mode::dnsusage; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use Digest::MD5 qw(md5_hex); + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0 }, + { name => 'dns', type => 1, cb_prefix_output => 'prefix_dns_output', message_multiple => 'All dns zones are ok' } + ]; + + $self->{maps_counters}->{global} = [ + { label => 'total-query-rate', set => { + key_values => [ { name => 'ibDnsQueryRate' } ], + output_template => 'Total query rate : %s', + perfdatas => [ + { label => 'total_query_rate', value => 'ibDnsQueryRate_absolute', template => '%s', + min => 0 }, + ], + } + }, + { label => 'total-hit-ratio', set => { + key_values => [ { name => 'ibDnsHitRatio' } ], + output_template => 'Total hit ratio : %.2f %%', + perfdatas => [ + { label => 'total_hit_ratio', value => 'ibDnsHitRatio_absolute', template => '%.2f', + min => 0, max => 100, unit => '%' }, + ], + } + }, + ]; + + $self->{maps_counters}->{dns} = [ + { label => 'success-count', set => { + key_values => [ { name => 'ibBindZoneSuccess', diff => 1 }, { name => 'display' } ], + output_template => 'Success responses : %s', + perfdatas => [ + { label => 'success_count', value => 'ibBindZoneSuccess_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'referral-count', set => { + key_values => [ { name => 'ibBindZoneReferral', diff => 1 }, { name => 'display' } ], + output_template => 'Referrals : %s', + perfdatas => [ + { label => 'referral_count', value => 'ibBindZoneReferral_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'nxrrset-count', set => { + key_values => [ { name => 'ibBindZoneNxRRset', diff => 1 }, { name => 'display' } ], + output_template => 'Non-existent record : %s', + perfdatas => [ + { label => 'nxrrset_count', value => 'ibBindZoneNxRRset_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'failure-count', set => { + key_values => [ { name => 'ibBindZoneFailure', diff => 1 }, { name => 'display' } ], + output_template => 'Failed queries : %s', + perfdatas => [ + { label => 'failure_count', value => 'ibBindZoneFailure_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 1); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "filter-name:s" => { name => 'filter_name' }, + }); + + return $self; +} + +sub prefix_dns_output { + my ($self, %options) = @_; + + return "Zone '" . $options{instance_value}->{display} . "' "; +} + +my $mapping = { + ibBindZoneName => { oid => '.1.3.6.1.4.1.7779.3.1.1.3.1.1.1.1' }, + ibBindZoneSuccess => { oid => '.1.3.6.1.4.1.7779.3.1.1.3.1.1.1.2' }, + ibBindZoneReferral => { oid => '.1.3.6.1.4.1.7779.3.1.1.3.1.1.1.3' }, + ibBindZoneNxRRset => { oid => '.1.3.6.1.4.1.7779.3.1.1.3.1.1.1.4' }, + ibBindZoneFailure => { oid => '.1.3.6.1.4.1.7779.3.1.1.3.1.1.1.7' }, +}; +my $mapping2 = { + ibDnsHitRatio => { oid => '.1.3.6.1.4.1.7779.3.1.1.3.1.5' }, + ibDnsQueryRate => { oid => '.1.3.6.1.4.1.7779.3.1.1.3.1.6' }, +}; + +my $oid_ibZoneStatisticsEntry = '.1.3.6.1.4.1.7779.3.1.1.3.1.1.1'; +my $oid_ibDnsModule = '.1.3.6.1.4.1.7779.3.1.1.3.1'; + +sub manage_selection { + my ($self, %options) = @_; + + if ($options{snmp}->is_snmpv1()) { + $self->{output}->add_option_msg(short_msg => "Need to use SNMP v2c or v3."); + $self->{output}->option_exit(); + } + + $self->{dns} = {}; + my $snmp_result = $options{snmp}->get_multiple_table(oids => [ + { oid => $oid_ibZoneStatisticsEntry }, + { oid => $oid_ibDnsModule, start => $mapping2->{ibDnsHitRatio}->{oid} }, + ], nothing_quit => 1); + + foreach my $oid (keys %{$snmp_result->{$oid_ibZoneStatisticsEntry}}) { + next if ($oid !~ /^$mapping->{ibBindZoneName}->{oid}\.(.*)$/); + my $instance = $1; + my $result = $options{snmp}->map_instance(mapping => $mapping, results => $snmp_result->{$oid_ibZoneStatisticsEntry}, instance => $instance); + + if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' && + $result->{ibBindZoneName} !~ /$self->{option_results}->{filter_name}/) { + $self->{output}->output_add(long_msg => "skipping '" . $result->{ibBindZoneName} . "': no matching filter.", debug => 1); + next; + } + + $self->{dns}->{$instance} = { display => $result->{ibBindZoneName}, + %$result + }; + } + + if (scalar(keys %{$self->{dns}}) <= 0) { + $self->{output}->add_option_msg(short_msg => "No dns zone found."); + $self->{output}->option_exit(); + } + + my $result = $options{snmp}->map_instance(mapping => $mapping2, results => $snmp_result->{$oid_ibDnsModule}, instance => '0'); + $self->{global} = { %$result }; + + $self->{cache_name} = "infoblox_" . $self->{mode} . '_' . $options{snmp}->get_hostname() . '_' . $options{snmp}->get_port() . '_' . + (defined($self->{option_results}->{filter_counters}) ? md5_hex($self->{option_results}->{filter_counters}) : md5_hex('all')) . '_' . + (defined($self->{option_results}->{filter_name}) ? md5_hex($self->{option_results}->{filter_name}) : md5_hex('all')); +} + +1; + +__END__ + +=head1 MODE + +Check dns usage. + +=over 8 + +=item B<--filter-counters> + +Only display some counters (regexp can be used). +Example: --filter-counters='^success-coun$' + +=item B<--filter-name> + +Filter dns zone name (can be a regexp). + +=item B<--warning-*> + +Threshold warning. +Can be: 'total-query-rate', 'total-hit-ratio', 'success-count', 'referral-count', 'nxrrset-count', +'failure-count'. + +=item B<--critical-*> + +Threshold critical. +Can be: 'total-query-rate', 'total-hit-ratio', 'success-count', 'referral-count', 'nxrrset-count', +'failure-count'. + +=back + +=cut diff --git a/network/infoblox/snmp/mode/memory.pm b/network/infoblox/snmp/mode/memory.pm new file mode 100644 index 000000000..49996cdea --- /dev/null +++ b/network/infoblox/snmp/mode/memory.pm @@ -0,0 +1,108 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package network::infoblox::snmp::mode::memory; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'memory', type => 0 }, + ]; + + $self->{maps_counters}->{memory} = [ + { label => 'mem-usage', set => { + key_values => [ { name => 'ram_used' } ], + output_template => 'Memory Used: %.2f%%', + perfdatas => [ + { label => 'memory_used', value => 'ram_used_absolute', template => '%.2f', + min => 0, max => 100, unit => '%' }, + ], + } + }, + { label => 'swap-usage', set => { + key_values => [ { name => 'swap_used' } ], + output_template => 'Swap Used: %.2f%%', + perfdatas => [ + { label => 'swap_used', value => 'swap_used_absolute', template => '%.2f', + min => 0, max => 100, unit => '%' }, + ], + } + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + }); + + return $self; +} + +sub manage_selection { + my ($self, %options) = @_; + + my $oid_ibSystemMonitorMemUsage = '.1.3.6.1.4.1.7779.3.1.1.2.1.8.2.1.0'; + my $oid_ibSystemMonitorSwapUsage = '.1.3.6.1.4.1.7779.3.1.1.2.1.8.3.1.0'; + my $snmp_result = $options{snmp}->get_leef(oids => [ + $oid_ibSystemMonitorMemUsage, $oid_ibSystemMonitorSwapUsage, + ], nothing_quit => 1); + + $self->{memory} = { + ram_used => $snmp_result->{$oid_ibSystemMonitorMemUsage}, + swap_used => $snmp_result->{$oid_ibSystemMonitorSwapUsage}, + }; +} + +1; + +__END__ + +=head1 MODE + +Check memory usage. + +=over 8 + +=item B<--warning-*> + +Threshold warning. +Can be: 'mem-usage' (%), 'swap-usage' (%). + +=item B<--critical-*> + +Threshold critical. +Can be: 'mem-usage' (%), 'swap-usage' (%). + + +=back + +=cut diff --git a/network/infoblox/snmp/plugin.pm b/network/infoblox/snmp/plugin.pm new file mode 100644 index 000000000..e85447b53 --- /dev/null +++ b/network/infoblox/snmp/plugin.pm @@ -0,0 +1,52 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package network::infoblox::snmp::plugin; + +use strict; +use warnings; +use base qw(centreon::plugins::script_snmp); + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + %{$self->{modes}} = ( + 'cpu' => 'network::infoblox::snmp::mode::cpu', + 'dns-usage' => 'network::infoblox::snmp::mode::dnsusage', + 'interfaces' => 'snmp_standard::mode::interfaces', + 'list-interfaces' => 'snmp_standard::mode::listinterfaces', + 'memory' => 'network::infoblox::snmp::mode::memory', + ); + + return $self; +} + +1; + +__END__ + +=head1 PLUGIN DESCRIPTION + +Check Infoblox equipments in SNMP. + +=cut From 761de7e763b99f452090bbdc977b5d736667612c Mon Sep 17 00:00:00 2001 From: qgarnier Date: Fri, 8 Dec 2017 14:09:17 +0100 Subject: [PATCH 08/77] Fix #714 --- network/infoblox/snmp/mode/dhcpusage.pm | 193 ++++++++++++++++++++++++ network/infoblox/snmp/mode/dnsusage.pm | 2 +- network/infoblox/snmp/mode/services.pm | 166 ++++++++++++++++++++ network/infoblox/snmp/plugin.pm | 2 + 4 files changed, 362 insertions(+), 1 deletion(-) create mode 100644 network/infoblox/snmp/mode/dhcpusage.pm create mode 100644 network/infoblox/snmp/mode/services.pm diff --git a/network/infoblox/snmp/mode/dhcpusage.pm b/network/infoblox/snmp/mode/dhcpusage.pm new file mode 100644 index 000000000..001cf7ae2 --- /dev/null +++ b/network/infoblox/snmp/mode/dhcpusage.pm @@ -0,0 +1,193 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package network::infoblox::snmp::mode::dhcpusage; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use Digest::MD5 qw(md5_hex); + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0, cb_prefix_output => 'prefix_global_output' }, + { name => 'dhcp', type => 1, cb_prefix_output => 'prefix_dhcp_output', message_multiple => 'All dhcp subnets are ok' }, + ]; + + my @map = ( + ['ibDhcpTotalNoOfDiscovers', 'discovers : %s', 'total-discovers'], + ['ibDhcpTotalNoOfRequests', 'requests : %s', 'total-requests'], + ['ibDhcpTotalNoOfReleases', 'releases : %s', 'total-releases'], + ['ibDhcpTotalNoOfOffers', 'offers : %s', 'total-offers'], + ['ibDhcpTotalNoOfAcks', 'acks : %s', 'total-acks'], + ['ibDhcpTotalNoOfNacks', 'nacks : %s', 'total-nacks'], + ['ibDhcpTotalNoOfDeclines', 'declines : %s', 'total-declines'], + ['ibDhcpTotalNoOfInforms', 'informs : %s', 'total-informs'], + ['ibDhcpTotalNoOfOthers', 'others : %s', 'total-others'], + ); + + $self->{maps_counters}->{global} = []; + for (my $i = 0; $i < scalar(@map); $i++) { + my $perf_label = $map[$i]->[2]; + $perf_label =~ s/-/_/g; + push @{$self->{maps_counters}->{global}}, { label => $map[$i]->[2], set => { + key_values => [ { name => $map[$i]->[0], diff => 1 } ], + output_template => $map[$i]->[1], + perfdatas => [ + { label => $perf_label, value => $map[$i]->[0] . '_absolute', template => '%s', min => 0 }, + ], + } + }; + } + + $self->{maps_counters}->{dhcp} = [ + { label => 'subnet-used', set => { + key_values => [ { name => 'ibDHCPSubnetPercentUsed' }, { name => 'display' } ], + output_template => 'Used : %.2f %%', + perfdatas => [ + { label => 'subnet_used', value => 'iibDHCPSubnetPercentUsed_absolute', template => '%.2f', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 1); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "filter-name:s" => { name => 'filter_name' }, + }); + + return $self; +} + +sub prefix_global_output { + my ($self, %options) = @_; + + return "Total "; +} + +sub prefix_dhcp_output { + my ($self, %options) = @_; + + return "Subnet '" . $options{instance_value}->{display} . "' "; +} + +my $mapping = { + ibDhcpTotalNoOfDiscovers => { oid => '.1.3.6.1.4.1.7779.3.1.1.4.1.3.1' }, + ibDhcpTotalNoOfRequests => { oid => '.1.3.6.1.4.1.7779.3.1.1.4.1.3.2' }, + ibDhcpTotalNoOfReleases => { oid => '.1.3.6.1.4.1.7779.3.1.1.4.1.3.3' }, + ibDhcpTotalNoOfOffers => { oid => '.1.3.6.1.4.1.7779.3.1.1.4.1.3.4' }, + ibDhcpTotalNoOfAcks => { oid => '.1.3.6.1.4.1.7779.3.1.1.4.1.3.5' }, + ibDhcpTotalNoOfNacks => { oid => '.1.3.6.1.4.1.7779.3.1.1.4.1.3.6' }, + ibDhcpTotalNoOfDeclines => { oid => '.1.3.6.1.4.1.7779.3.1.1.4.1.3.7' }, + ibDhcpTotalNoOfInforms => { oid => '.1.3.6.1.4.1.7779.3.1.1.4.1.3.8' }, + ibDhcpTotalNoOfOthers => { oid => '.1.3.6.1.4.1.7779.3.1.1.4.1.3.9' }, +}; +my $mapping2 = { + ibDHCPSubnetNetworkAddress => { oid => '.1.3.6.1.4.1.7779.3.1.1.4.1.1.1.1' }, + ibDHCPSubnetNetworkMask => { oid => '.1.3.6.1.4.1.7779.3.1.1.4.1.1.1.2' }, + ibDHCPSubnetPercentUsed => { oid => '.1.3.6.1.4.1.7779.3.1.1.4.1.1.1.3' }, +}; + +my $oid_ibDHCPStatistics = '.1.3.6.1.4.1.7779.3.1.1.4.1.3'; +my $oid_ibDHCPSubnetEntry = '.1.3.6.1.4.1.7779.3.1.1.4.1.1.1'; + +sub manage_selection { + my ($self, %options) = @_; + + my $snmp_result = $options{snmp}->get_multiple_table(oids => [ + { oid => $oid_ibDHCPStatistics }, + { oid => $oid_ibDHCPSubnetEntry }, + ], nothing_quit => 1); + + $self->{dhcp} = {}; + foreach my $oid (keys %{$snmp_result->{$oid_ibDHCPSubnetEntry}}) { + next if ($oid !~ /^$mapping2->{ibDHCPSubnetNetworkAddress}->{oid}\.(.*)$/); + my $instance = $1; + my $result = $options{snmp}->map_instance(mapping => $mapping2, results => $snmp_result->{$oid_ibDHCPSubnetEntry}, instance => $instance); + + my $name = $result->{ibDHCPSubnetNetworkAddress} . '/' . $result->{ibDHCPSubnetNetworkMask}; + if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' && + $name !~ /$self->{option_results}->{filter_name}/) { + $self->{output}->output_add(long_msg => "skipping '" . $name . "': no matching filter.", debug => 1); + next; + } + + $self->{dhcp}->{$instance} = { display => $name, + %$result + }; + } + + my $result = $options{snmp}->map_instance(mapping => $mapping, results => $snmp_result->{$oid_ibDHCPStatistics}, instance => '0'); + $self->{global} = { %$result }; + + $self->{cache_name} = "infoblox_" . $self->{mode} . '_' . $options{snmp}->get_hostname() . '_' . $options{snmp}->get_port() . '_' . + (defined($self->{option_results}->{filter_counters}) ? md5_hex($self->{option_results}->{filter_counters}) : md5_hex('all')) . '_' . + (defined($self->{option_results}->{filter_name}) ? md5_hex($self->{option_results}->{filter_name}) : md5_hex('all')); +} + +1; + +__END__ + +=head1 MODE + +Check dhcp usage. + +=over 8 + +=item B<--filter-counters> + +Only display some counters (regexp can be used). +Example: --filter-counters='total-requests' + +=item B<--filter-name> + +Filter dhcp subnet name (can be a regexp). + +=item B<--warning-*> + +ibDhcpTotalNoOfDiscovers + +Threshold warning. +Can be: 'total-discovers', 'total-requests', 'total-releases', +'total-offers', 'total-acks', 'total-nacks', 'total-declines', +'total-informs', 'total-others', 'subnet-used' (%). + +=item B<--critical-*> + +Threshold critical. +Can be: 'total-discovers', 'total-requests', 'total-releases', +'total-offers', 'total-acks', 'total-nacks', 'total-declines', +'total-informs', 'total-others', 'subnet-used' (%). + +=back + +=cut diff --git a/network/infoblox/snmp/mode/dnsusage.pm b/network/infoblox/snmp/mode/dnsusage.pm index 5a9b2ff8d..8fee91ba4 100644 --- a/network/infoblox/snmp/mode/dnsusage.pm +++ b/network/infoblox/snmp/mode/dnsusage.pm @@ -31,7 +31,7 @@ sub set_counters { $self->{maps_counters_type} = [ { name => 'global', type => 0 }, - { name => 'dns', type => 1, cb_prefix_output => 'prefix_dns_output', message_multiple => 'All dns zones are ok' } + { name => 'dns', type => 1, cb_prefix_output => 'prefix_dns_output', message_multiple => 'All dns zones are ok' }, ]; $self->{maps_counters}->{global} = [ diff --git a/network/infoblox/snmp/mode/services.pm b/network/infoblox/snmp/mode/services.pm new file mode 100644 index 000000000..fd4ef9b09 --- /dev/null +++ b/network/infoblox/snmp/mode/services.pm @@ -0,0 +1,166 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package network::infoblox::snmp::mode::services; + +use base qw(centreon::plugins::templates::hardware); + +use strict; +use warnings; + +sub set_system { + my ($self, %options) = @_; + + $self->{regexp_threshold_overload_check_section_option} = '^(service)$'; + + $self->{cb_hook2} = 'snmp_execute'; + + $self->{thresholds} = { + default => [ + ['unknown', 'OK'], + ['working', 'OK'], + ['inactive', 'OK'], + ['warning', 'WARNING'], + ['failed', 'CRITICAL'], + ], + }; + + $self->{components_path} = 'network::infoblox::snmp::mode::components'; + $self->{components_module} = ['service']; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options, no_absent => 1, no_load_components => 1); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + }); + + return $self; +} + +sub snmp_execute { + my ($self, %options) = @_; + + $self->{snmp} = $options{snmp}; + $self->{results} = $self->{snmp}->get_multiple_table(oids => $self->{request}); +} + +1; + +=head1 MODE + +Check physical service status. + +=over 8 + +=item B<--component> + +Which component to check (Default: '.*'). +Can be: 'service'. + +=item B<--filter> + +Exclude some parts (comma seperated list) +Can also exclude specific instance: --filter=service,fan1 + +=item B<--no-component> + +Return an error if no compenents are checked. +If total (with skipped) is 0. (Default: 'critical' returns). + +=item B<--threshold-overload> + +Set to overload default threshold values (syntax: section,[instance,]status,regexp) +It used before default thresholds (order stays). +Example: --threshold-overload='service,OK,warning' + +=back + +=cut + +package network::infoblox::snmp::mode::components::service; + +use strict; +use warnings; + +my %map_service_status = ( + 1 => 'working', 2 => 'warning', + 3 => 'failed', 4 => 'inactive', 5 => 'unknown', +); +my %map_service_name = ( + 1 => 'dhcp', 2 => 'dns', 3 => 'ntp', 4 => 'tftp', 5 => 'http-file-dist', + 6 => 'ftp', 7 => 'bloxtools-move', 8 => 'bloxtools', 9 => 'node-status', + 10 => 'disk-usage', 11 => 'enet-lan', 12 => 'enet-lan2', 13 => 'enet-ha', + 14 => 'enet-mgmt', 15 => 'lcd', 16 => 'memory', 17 => 'replication', 18 => 'db-object', + 19 => 'raid-summary', 20 => 'raid-disk1', 21 => 'raid-disk2', 22 => 'raid-disk3', + 23 => 'raid-disk4', 24 => 'raid-disk5', 25 => 'raid-disk6', 26 => 'raid-disk7', + 27 => 'raid-disk8', 28 => 'fan1', 29 => 'fan2', 30 => 'fan3', 31 => 'fan4', + 32 => 'fan5', 33 => 'fan6', 34 => 'fan7', 35 => 'fan8', 36 => 'power-supply1', + 37 => 'power-supply2', 38 => 'ntp-sync', 39 => 'cpu1-temp', 40 => 'cpu2-temp', + 41 => 'sys-temp', 42 => 'raid-battery', 43 => 'cpu-usage', 44 => 'ospf', + 45 => 'bgp', 46 => 'mgm-service', 47 => 'subgrid-conn', 48 => 'network-capacity', + 49 => 'reporting', 50 => 'dns-cache-acceleration', 51 => 'ospf6', + 52 => 'swap-usage', 53 => 'discovery-consolidator', 54 => 'discovery-collector', + 55 => 'discovery-capacity', 56 => 'threat-protection', 57 => 'cloud-api', + 58 => 'threat-analytics', 59 => 'taxii', 60 => 'bfd', 61 => 'outbound', +); + +my $mapping = { + ibNodeServiceName => { oid => '.1.3.6.1.4.1.7779.3.1.1.2.1.10.1.1', map => \%map_service_name }, + ibNodeServiceStatus => { oid => '.1.3.6.1.4.1.7779.3.1.1.2.1.10.1.2', map => \%map_service_status }, +}; +my $oid_ibMemberNodeServiceStatusEntry = '.1.3.6.1.4.1.7779.3.1.1.2.1.10.1'; + +sub load { + my ($self) = @_; + + push @{$self->{request}}, { oid => $oid_ibMemberNodeServiceStatusEntry, end => $mapping->{ibNodeServiceStatus}->{oid} }; +} + +sub check { + my ($self) = @_; + + $self->{output}->output_add(long_msg => "Checking services"); + $self->{components}->{service} = {name => 'services', total => 0, skip => 0}; + return if ($self->check_filter(section => 'service')); + + foreach my $oid ($self->{snmp}->oid_lex_sort(keys %{$self->{results}->{$oid_ibMemberNodeServiceStatusEntry}})) { + next if ($oid !~ /^$mapping->{ibNodeServiceName}->{oid}\.(.*)$/); + my $instance = $1; + my $result = $self->{snmp}->map_instance(mapping => $mapping, results => $self->{results}->{$oid_ibMemberNodeServiceStatusEntry}, instance => $instance); + + next if ($self->check_filter(section => 'service', instance => $result->{ibNodeServiceName})); + + $self->{components}->{service}->{total}++; + $self->{output}->output_add(long_msg => sprintf("service '%s' status is '%s' [instance = %s]", + $result->{ibNodeServiceName}, $result->{ibNodeServiceStatus}, $result->{ibNodeServiceName})); + my $exit = $self->get_severity(section => 'default', instance => $result->{ibNodeServiceName}, value => $result->{ibNodeServiceStatus}); + if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) { + $self->{output}->output_add(severity => $exit, + short_msg => sprintf("Service '%s' status is '%s'", $result->{ibNodeServiceName}, $result->{ibNodeServiceStatus})); + } + } +} + +1; diff --git a/network/infoblox/snmp/plugin.pm b/network/infoblox/snmp/plugin.pm index e85447b53..dacdb286f 100644 --- a/network/infoblox/snmp/plugin.pm +++ b/network/infoblox/snmp/plugin.pm @@ -32,10 +32,12 @@ sub new { $self->{version} = '1.0'; %{$self->{modes}} = ( 'cpu' => 'network::infoblox::snmp::mode::cpu', + 'dhcp-usage' => 'network::infoblox::snmp::mode::dhcpusage', 'dns-usage' => 'network::infoblox::snmp::mode::dnsusage', 'interfaces' => 'snmp_standard::mode::interfaces', 'list-interfaces' => 'snmp_standard::mode::listinterfaces', 'memory' => 'network::infoblox::snmp::mode::memory', + 'services' => 'network::infoblox::snmp::mode::services', ); return $self; From 04abebe2a292f5ffbfb05eae4a5baa43600845d8 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Mon, 11 Dec 2017 10:29:07 +0100 Subject: [PATCH 09/77] Fix #738 --- hardware/ups/alpha/snmp/mode/alarms.pm | 139 +++++++++++ hardware/ups/alpha/snmp/mode/batterystatus.pm | 227 ++++++++++++++++++ hardware/ups/alpha/snmp/plugin.pm | 47 ++++ 3 files changed, 413 insertions(+) create mode 100644 hardware/ups/alpha/snmp/mode/alarms.pm create mode 100644 hardware/ups/alpha/snmp/mode/batterystatus.pm create mode 100644 hardware/ups/alpha/snmp/plugin.pm diff --git a/hardware/ups/alpha/snmp/mode/alarms.pm b/hardware/ups/alpha/snmp/mode/alarms.pm new file mode 100644 index 000000000..2c2b3a611 --- /dev/null +++ b/hardware/ups/alpha/snmp/mode/alarms.pm @@ -0,0 +1,139 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package hardware::ups::alpha::snmp::mode::alarms; + +use base qw(centreon::plugins::templates::hardware); + +use strict; +use warnings; + +sub set_system { + my ($self, %options) = @_; + + $self->{regexp_threshold_overload_check_section_option} = '^(alarm)$'; + + $self->{cb_hook2} = 'snmp_execute'; + + $self->{thresholds} = { + alarm => [ + ['on', 'CRITICAL'], + ['off', 'OK'], + ], + }; + + $self->{components_path} = 'hardware::ups::alpha::snmp::mode::components'; + $self->{components_module} = ['alarm']; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options, no_absent => 1, no_performance => 1, no_load_components => 1); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + }); + + return $self; +} + +sub snmp_execute { + my ($self, %options) = @_; + + $self->{snmp} = $options{snmp}; + $self->{results} = $self->{snmp}->get_multiple_table(oids => $self->{request}); +} + +1; + +=head1 MODE + +Check alarms. + +=over 8 + +=item B<--filter> + +Exclude some parts (comma seperated list) +Can also exclude specific instance: --filter="alarm,FAN Alarm" + +=item B<--no-component> + +Return an error if no compenents are checked. +If total (with skipped) is 0. (Default: 'critical' returns). + +=item B<--threshold-overload> + +Set to overload default threshold values (syntax: section,[instance,]status,regexp) +It used before default thresholds (order stays). +Example: --threshold-overload='alarm,FAN Alarm,OK,on' + +=back + +=cut + +package hardware::ups::alpha::snmp::mode::components::alarm; + +use strict; +use warnings; + +my %map_status = (0 => 'off', 1 => 'on'); + +my $mapping = { + upsAlarmDescr => { oid => '.1.3.6.1.4.1.7309.6.1.5.2.1.2' }, + upsAlarmStatus => { oid => '.1.3.6.1.4.1.7309.6.1.5.2.1.3', map => \%map_status }, +}; +my $oid_upsAlarmEntry = '.1.3.6.1.4.1.7309.6.1.5.2.1'; + +sub load { + my ($self) = @_; + + push @{$self->{request}}, { oid => $oid_upsAlarmEntry }; +} + +sub check { + my ($self) = @_; + + $self->{output}->output_add(long_msg => "Checking alarms"); + $self->{components}->{alarm} = {name => 'alarms', total => 0, skip => 0}; + return if ($self->check_filter(section => 'alarm')); + + my ($exit, $warn, $crit, $checked); + foreach my $oid ($self->{snmp}->oid_lex_sort(keys %{$self->{results}->{$oid_upsAlarmEntry}})) { + next if ($oid !~ /^$mapping->{upsAlarmStatus}->{oid}\.(.*)$/); + my $instance = $1; + my $result = $self->{snmp}->map_instance(mapping => $mapping, results => $self->{results}->{$oid_upsAlarmEntry}, instance => $instance); + + next if ($self->check_filter(section => 'alarm', instance => $instance)); + + $self->{components}->{alarm}->{total}++; + $self->{output}->output_add(long_msg => sprintf("alarm '%s' status is '%s' [instance = %s]", + $result->{upsAlarmDescr}, $result->{upsAlarmStatus}, $result->{upsAlarmDescr})); + $exit = $self->get_severity(section => 'alarm', value => $result->{upsAlarmStatus}); + if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) { + $self->{output}->output_add(severity => $exit, + short_msg => sprintf("Alarm '%s' status is '%s'", $result->{upsAlarmDescr}, $result->{upsAlarmStatus})); + } + } +} + +1; diff --git a/hardware/ups/alpha/snmp/mode/batterystatus.pm b/hardware/ups/alpha/snmp/mode/batterystatus.pm new file mode 100644 index 000000000..f9bca7635 --- /dev/null +++ b/hardware/ups/alpha/snmp/mode/batterystatus.pm @@ -0,0 +1,227 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package hardware::ups::alpha::snmp::mode::batterystatus; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +my $instance_mode; + +sub custom_threshold_output { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && + eval "$instance_mode->{option_results}->{critical_status}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && + eval "$instance_mode->{option_results}->{warning_status}") { + $status = 'warning'; + } elsif (defined($instance_mode->{option_results}->{unknown_status}) && $instance_mode->{option_results}->{unknown_status} ne '' && + eval "$instance_mode->{option_results}->{unknown_status}") { + $status = 'unknown'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_status_output { + my ($self, %options) = @_; + + my $msg = sprintf("Battery status is '%s'", $self->{result_values}->{status}); + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_upsBatteryStatus'}; + return 0; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0 }, + ]; + + $self->{maps_counters}->{global} = [ + { label => 'status', threshold => 0, set => { + key_values => [ { name => 'upsBatteryStatus' } ], + closure_custom_calc => $self->can('custom_status_calc'), + closure_custom_output => $self->can('custom_status_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_threshold_output'), + } + }, + { label => 'load', set => { + key_values => [ { name => 'upsBatteryCapacity' } ], + output_template => 'Remaining capacity : %s %%', + perfdatas => [ + { label => 'load', value => 'upsBatteryCapacity_absolute', template => '%s', + min => 0, max => 100, unit => '%' }, + ], + } + }, + { label => 'current', set => { + key_values => [ { name => 'upsBatteryChargingCurrent' } ], + output_template => 'Current : %s A', + perfdatas => [ + { label => 'current', value => 'upsBatteryChargingCurrent_absolute', template => '%s', + min => 0, unit => 'A' }, + ], + } + }, + { label => 'voltage', set => { + key_values => [ { name => 'upsBatteryVoltage' } ], + output_template => 'Voltage : %s V', + perfdatas => [ + { label => 'voltage', value => 'upsBatteryVoltage_absolute', template => '%s', + unit => 'V' }, + ], + } + }, + { label => 'temperature', set => { + key_values => [ { name => 'upsBatteryTemperature' } ], + output_template => 'Temperature : %s C', + perfdatas => [ + { label => 'temperature', value => 'upsBatteryTemperature_absolute', template => '%s', + unit => 'C'}, + ], + } + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "unknown-status:s" => { name => 'unknown_status', default => '%{status} =~ /unknown/i' }, + "warning-status:s" => { name => 'warning_status', default => '%{status} =~ /batteryLow/i' }, + "critical-status:s" => { name => 'critical_status', default => '%{status} =~ /batteryDepleted/i' }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; + $self->change_macros(); +} + +sub change_macros { + my ($self, %options) = @_; + + foreach (('warning_status', 'critical_status', 'unknown_status')) { + if (defined($self->{option_results}->{$_})) { + $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; + } + } +} + +my %map_battery_status = ( + 1 => 'unknown', 2 => 'batteryNormal', 3 => 'batteryLow', 4 => 'batteryDepleted', +); + +my $mapping = { + upsBatteryStatus => { oid => '.1.3.6.1.4.1.7309.6.1.2.1', map => \%map_battery_status }, + upsBatteryVoltage => { oid => '.1.3.6.1.4.1.7309.6.1.2.3' }, + upsBatteryChargingCurrent => { oid => '.1.3.6.1.4.1.7309.6.1.2.4' }, + upsBatteryCapacity => { oid => '.1.3.6.1.4.1.7309.6.1.2.5' }, + upsBatteryTemperature => { oid => '.1.3.6.1.4.1.7309.6.1.2.6' }, +}; +my $oid_upsBattery = '.1.3.6.1.4.1.7309.6.1.2'; + +sub manage_selection { + my ($self, %options) = @_; + + my $snmp_result = $options{snmp}->get_table(oid => $oid_upsBattery, + nothing_quit => 1); + + my $result = $options{snmp}->map_instance(mapping => $mapping, results => $snmp_result, instance => '0'); + $result->{upsBatteryVoltage} *= 0.1; + $result->{upsBatteryChargingCurrent} *= 0.1; + $self->{global} = { %$result }; +} + +1; + +__END__ + +=head1 MODE + +Check battery status. + +=over 8 + +=item B<--filter-counters> + +Only display some counters (regexp can be used). +Example: --filter-counters='^status|load$' + +=item B<--unknown-status> + +Set warning threshold for status (Default: '%{status} =~ /unknown/i'). +Can used special variables like: %{status} + +=item B<--warning-status> + +Set warning threshold for status (Default: '%{status} =~ /batteryLow/i'). +Can used special variables like: %{status} + +=item B<--critical-status> + +Set critical threshold for status (Default: '%{status} =~ /batteryDepleted/i'). +Can used special variables like: %{status} + +=item B<--warning-*> + +Threshold warning. +Can be: 'load', 'voltage', 'current', 'temperature'. + +=item B<--critical-*> + +Threshold critical. +Can be: 'load', 'voltage', 'current', 'temperature'. + +=back + +=cut diff --git a/hardware/ups/alpha/snmp/plugin.pm b/hardware/ups/alpha/snmp/plugin.pm new file mode 100644 index 000000000..e19ef0174 --- /dev/null +++ b/hardware/ups/alpha/snmp/plugin.pm @@ -0,0 +1,47 @@ +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package hardware::ups::alpha::snmp::plugin; + +use strict; +use warnings; +use base qw(centreon::plugins::script_snmp); + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '0.1'; + %{$self->{modes}} = ( + 'battery-status' => 'hardware::ups::alpha::snmp::mode::batterystatus', + 'alarms' => 'hardware::ups::alpha::snmp::mode::alarms', + ); + + return $self; +} + +1; + +__END__ + +=head1 PLUGIN DESCRIPTION + +Check UPS Alpha through SNMP. + +=cut From 2e009eb3db3eb7baa8cc6bb706dd63d119ade8b7 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Mon, 11 Dec 2017 11:00:40 +0100 Subject: [PATCH 10/77] Fix #781 --- database/mysql/mode/databasessize.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/mysql/mode/databasessize.pm b/database/mysql/mode/databasessize.pm index 3e809ee2f..c872fd38a 100644 --- a/database/mysql/mode/databasessize.pm +++ b/database/mysql/mode/databasessize.pm @@ -61,7 +61,7 @@ sub run { $self->{sql} = $options{sql}; $self->{sql}->connect(); - $self->{sql}->query(query => 'SELECT table_schema AS NAME, SUM(data_length+index_length) + $self->{sql}->query(query => 'SELECT table_schema AS NAME, IFNULL(SUM(data_length+index_length), 0) FROM information_schema.tables GROUP BY table_schema'); my $result = $self->{sql}->fetchall_arrayref(); From f41161046835b254ea53e20c665143507d1c633a Mon Sep 17 00:00:00 2001 From: qgarnier Date: Mon, 11 Dec 2017 15:50:56 +0100 Subject: [PATCH 11/77] Fix #596 --- .../akcp/snmp/mode/components/humidity.pm | 98 ++++++++++------- .../akcp/snmp/mode/components/resources.pm | 4 +- .../akcp/snmp/mode/components/serial.pm | 3 +- .../akcp/snmp/mode/components/switch.pm | 3 +- .../akcp/snmp/mode/components/temperature.pm | 101 +++++++++++------- .../akcp/snmp/mode/components/water.pm | 71 ++++++++++++ hardware/sensors/akcp/snmp/mode/sensors.pm | 10 +- 7 files changed, 202 insertions(+), 88 deletions(-) create mode 100644 hardware/sensors/akcp/snmp/mode/components/water.pm diff --git a/hardware/sensors/akcp/snmp/mode/components/humidity.pm b/hardware/sensors/akcp/snmp/mode/components/humidity.pm index 057961cb5..80b368429 100644 --- a/hardware/sensors/akcp/snmp/mode/components/humidity.pm +++ b/hardware/sensors/akcp/snmp/mode/components/humidity.pm @@ -25,64 +25,73 @@ use warnings; use hardware::sensors::akcp::snmp::mode::components::resources qw(%map_default1_status %map_online); my $mapping = { - hhmsSensorArrayHumidityDescription => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.17.1.1' }, - hhmsSensorArrayHumidityPercent => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.17.1.3' }, - hhmsSensorArrayHumidityStatus => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.17.1.4', map => \%map_default1_status }, - hhmsSensorArrayHumidityOnline => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.17.1.5', map => \%map_online }, - hhmsSensorArrayHumidityHighWarning => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.17.1.7' }, - hhmsSensorArrayHumidityHighCritical => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.17.1.8' }, - hhmsSensorArrayHumidityLowWarning => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.17.1.9' }, - hhmsSensorArrayHumidityLowCritical => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.17.1.10' }, + HumidityDescription => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.17.1.1' }, # hhmsSensorArrayHumidityDescription + HumidityPercent => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.17.1.3' }, # hhmsSensorArrayHumidityPercent + HumidityStatus => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.17.1.4', map => \%map_default1_status }, # hhmsSensorArrayHumidityStatus + HumidityOnline => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.17.1.5', map => \%map_online }, # hhmsSensorArrayHumidityOnline + HumidityHighWarning => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.17.1.7' }, # hhmsSensorArrayHumidityHighWarning + HumidityHighCritical => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.17.1.8' }, # hhmsSensorArrayHumidityHighCritical + HumidityLowWarning => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.17.1.9' }, # hhmsSensorArrayHumidityLowWarning + HumidityLowCritical => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.17.1.10' }, # hhmsSensorArrayHumidityLowCritical }; +my $mapping2 = { + HumidityDescription => { oid => '.1.3.6.1.4.1.3854.3.5.3.1.2' }, # humidityDescription + HumidityPercent => { oid => '.1.3.6.1.4.1.3854.3.5.3.1.4' }, # humidityPercent + HumidityStatus => { oid => '.1.3.6.1.4.1.3854.3.5.3.1.6', map => \%map_default1_status }, # humidityStatus + HumidityOnline => { oid => '.1.3.6.1.4.1.3854.3.5.3.1.8', map => \%map_online }, # humidityGoOffline + HumidityHighWarning => { oid => '.1.3.6.1.4.1.3854.3.5.3.1.11' }, # humidityHighWarning + HumidityHighCritical => { oid => '.1.3.6.1.4.1.3854.3.5.3.1.12' }, # humidityHighCritical + HumidityLowWarning => { oid => '.1.3.6.1.4.1.3854.3.5.3.1.10' }, # humidityLowWarning + HumidityLowCritical => { oid => '.1.3.6.1.4.1.3854.3.5.3.1.9' }, # humidityLowCritical +}; + my $oid_hhmsSensorArrayHumidityEntry = '.1.3.6.1.4.1.3854.1.2.2.1.17.1'; +my $oid_humidityEntry = '.1.3.6.1.4.1.3854.3.5.3.1'; sub load { my ($self) = @_; - push @{$self->{request}}, { oid => $oid_hhmsSensorArrayHumidityEntry }; + push @{$self->{request}}, { oid => $oid_hhmsSensorArrayHumidityEntry }, + { oid => $oid_humidityEntry, end => $mapping2->{HumidityHighCritical}->{oid} }; } -sub check { - my ($self) = @_; +sub check_humidity { + my ($self, %options) = @_; - $self->{output}->output_add(long_msg => "Checking humidities"); - $self->{components}->{humidity} = {name => 'humidities', total => 0, skip => 0}; - return if ($self->check_filter(section => 'humidity')); - - foreach my $oid ($self->{snmp}->oid_lex_sort(keys %{$self->{results}->{$oid_hhmsSensorArrayHumidityEntry}})) { - next if ($oid !~ /^$mapping->{hhmsSensorArrayHumidityOnline}->{oid}\.(.*)$/); + foreach my $oid ($self->{snmp}->oid_lex_sort(keys %{$self->{results}->{$options{entry}}})) { + next if ($oid !~ /^$options{mapping}->{HumidityOnline}->{oid}\.(.*)$/); my $instance = $1; - my $result = $self->{snmp}->map_instance(mapping => $mapping, results => $self->{results}->{$oid_hhmsSensorArrayHumidityEntry}, instance => $instance); + my $result = $self->{snmp}->map_instance(mapping => $options{mapping}, results => $self->{results}->{$options{entry}}, instance => $instance); next if ($self->check_filter(section => 'humidity', instance => $instance)); - if ($result->{hhmsSensorArrayHumidityOnline} eq 'offline') { - $self->{output}->output_add(long_msg => sprintf("skipping '%s': is offline", $result->{hhmsSensorArrayHumidityDescription})); + if ($result->{HumidityOnline} eq 'offline') { + $self->{output}->output_add(long_msg => sprintf("skipping '%s': is offline", $result->{HumidityDescription})); next; } $self->{components}->{humidity}->{total}++; $self->{output}->output_add(long_msg => sprintf("humidity '%s' status is '%s' [instance = %s] [value = %s]", - $result->{hhmsSensorArrayHumidityDescription}, $result->{hhmsSensorArrayHumidityStatus}, $instance, - $result->{hhmsSensorArrayHumidityPercent})); + $result->{HumidityDescription}, $result->{HumidityStatus}, $instance, + $result->{HumidityPercent})); - my $exit = $self->get_severity(label => 'default1', section => 'humidity', value => $result->{hhmsSensorArrayHumidityStatus}); + my $exit = $self->get_severity(label => 'default1', section => 'humidity', value => $result->{HumidityStatus}); if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) { $self->{output}->output_add(severity => $exit, - short_msg => sprintf("Humdity '%s' status is '%s'", $result->{hhmsSensorArrayHumidityDescription}, $result->{hhmsSensorArrayHumidityStatus})); + short_msg => sprintf("Humdity '%s' status is '%s'", $result->{HumidityDescription}, $result->{HumidityStatus})); } - my ($exit2, $warn, $crit, $checked) = $self->get_severity_numeric(section => 'humidity', instance => $instance, value => $result->{hhmsSensorArrayHumidityPercent}); + my ($exit2, $warn, $crit, $checked) = $self->get_severity_numeric(section => 'humidity', instance => $instance, value => $result->{HumidityPercent}); if ($checked == 0) { - $result->{hhmsSensorArrayHumidityLowWarning} = (defined($result->{hhmsSensorArrayHumidityLowWarning}) && $result->{hhmsSensorArrayHumidityLowWarning} =~ /[0-9]/) ? - $result->{hhmsSensorArrayHumidityLowWarning} : ''; - $result->{hhmsSensorArrayHumidityLowCritical} = (defined($result->{hhmsSensorArrayHumidityLowCritical}) && $result->{hhmsSensorArrayHumidityLowCritical} =~ /[0-9]/) ? - $result->{hhmsSensorArrayHumidityLowCritical} : ''; - $result->{hhmsSensorArrayHumidityHighWarning} = (defined($result->{hhmsSensorArrayHumidityHighWarning}) && $result->{hhmsSensorArrayHumidityHighWarning} =~ /[0-9]/) ? - $result->{hhmsSensorArrayHumidityHighWarning} : ''; - $result->{hhmsSensorArrayHumidityHighCritical} = (defined($result->{hhmsSensorArrayHumidityHighCritical}) && $result->{hhmsSensorArrayHumidityHighCritical} =~ /[0-9]/) ? - $result->{hhmsSensorArrayHumidityHighCritical} : ''; - my $warn_th = $result->{hhmsSensorArrayHumidityLowWarning} . ':' . $result->{hhmsSensorArrayHumidityHighWarning}; - my $crit_th = $result->{hhmsSensorArrayHumidityLowCritical} . ':' . $result->{hhmsSensorArrayHumidityHighCritical}; + $result->{HumidityLowWarning} = (defined($result->{HumidityLowWarning}) && $result->{HumidityLowWarning} =~ /[0-9]/) ? + $result->{HumidityLowWarning} : ''; + $result->{HumidityLowCritical} = (defined($result->{HumidityLowCritical}) && $result->{HumidityLowCritical} =~ /[0-9]/) ? + $result->{HumidityLowCritical} : ''; + $result->{HumidityHighWarning} = (defined($result->{HumidityHighWarning}) && $result->{HumidityHighWarning} =~ /[0-9]/) ? + $result->{HumidityHighWarning} : ''; + $result->{HumidityHighCritical} = (defined($result->{HumidityHighCritical}) && $result->{HumidityHighCritical} =~ /[0-9]/) ? + $result->{HumidityHighCritical} : ''; + my $warn_th = $result->{HumidityLowWarning} . ':' . $result->{HumidityHighWarning}; + my $crit_th = $result->{HumidityLowCritical} . ':' . $result->{HumidityHighCritical}; $self->{perfdata}->threshold_validate(label => 'warning-humidity-instance-' . $instance, value => $warn_th); $self->{perfdata}->threshold_validate(label => 'critical-humidity-instance-' . $instance, value => $crit_th); @@ -92,14 +101,25 @@ sub check { if (!$self->{output}->is_status(value => $exit2, compare => 'ok', litteral => 1)) { $self->{output}->output_add(severity => $exit2, - short_msg => sprintf("Humdity '%s' is %s %%", $result->{hhmsSensorArrayHumidityDescription}, $result->{hhmsSensorArrayHumidityPercent})); + short_msg => sprintf("Humdity '%s' is %s %%", $result->{HumidityDescription}, $result->{HumidityPercent})); } - $self->{output}->perfdata_add(label => 'humidity_' . $result->{hhmsSensorArrayHumidityDescription}, unit => '%', - value => $result->{hhmsSensorArrayHumidityPercent}, + $self->{output}->perfdata_add(label => 'humidity_' . $result->{HumidityDescription}, unit => '%', + value => $result->{HumidityPercent}, warning => $warn, critical => $crit, min => 0, max => 100); } } -1; \ No newline at end of file +sub check { + my ($self) = @_; + + $self->{output}->output_add(long_msg => "Checking humidities"); + $self->{components}->{humidity} = {name => 'humidities', total => 0, skip => 0}; + return if ($self->check_filter(section => 'humidity')); + + check_humidity($self, entry => $oid_hhmsSensorArrayHumidityEntry, mapping => $mapping); + check_humidity($self, entry => $oid_humidityEntry, mapping => $mapping2); +} + +1; diff --git a/hardware/sensors/akcp/snmp/mode/components/resources.pm b/hardware/sensors/akcp/snmp/mode/components/resources.pm index e9b8d40e3..dd718bda4 100644 --- a/hardware/sensors/akcp/snmp/mode/components/resources.pm +++ b/hardware/sensors/akcp/snmp/mode/components/resources.pm @@ -40,6 +40,8 @@ our @EXPORT_OK = qw(%map_default1_status %map_default2_status %map_online %map_d 5 => 'lowWarning', 6 => 'lowCritical', 7 => 'sensorError', + 8 => 'relayOn', + 9 => 'relayOff', ); %map_default2_status = ( @@ -59,4 +61,4 @@ our @EXPORT_OK = qw(%map_default1_status %map_default2_status %map_online %map_d 1 => 'C', ); -1; \ No newline at end of file +1; diff --git a/hardware/sensors/akcp/snmp/mode/components/serial.pm b/hardware/sensors/akcp/snmp/mode/components/serial.pm index 5fb817352..d32b639f0 100644 --- a/hardware/sensors/akcp/snmp/mode/components/serial.pm +++ b/hardware/sensors/akcp/snmp/mode/components/serial.pm @@ -64,9 +64,8 @@ sub check { if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) { $self->{output}->output_add(severity => $exit, short_msg => sprintf("Serial '%s' status is '%s'", $result->{hhmsSensorArraySerialDescription}, $result->{hhmsSensorArraySerialStatus})); - next; } } } -1; \ No newline at end of file +1; diff --git a/hardware/sensors/akcp/snmp/mode/components/switch.pm b/hardware/sensors/akcp/snmp/mode/components/switch.pm index c3ffb8c6e..25b7511f1 100644 --- a/hardware/sensors/akcp/snmp/mode/components/switch.pm +++ b/hardware/sensors/akcp/snmp/mode/components/switch.pm @@ -64,9 +64,8 @@ sub check { if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) { $self->{output}->output_add(severity => $exit, short_msg => sprintf("Switch '%s' status is '%s'", $result->{hhmsSensorArraySwitchDescription}, $result->{hhmsSensorArraySwitchStatus})); - next; } } } -1; \ No newline at end of file +1; diff --git a/hardware/sensors/akcp/snmp/mode/components/temperature.pm b/hardware/sensors/akcp/snmp/mode/components/temperature.pm index 957f479eb..7cd0985ad 100644 --- a/hardware/sensors/akcp/snmp/mode/components/temperature.pm +++ b/hardware/sensors/akcp/snmp/mode/components/temperature.pm @@ -25,65 +25,75 @@ use warnings; use hardware::sensors::akcp::snmp::mode::components::resources qw(%map_default1_status %map_online %map_degree_type); my $mapping = { - hhmsSensorArrayTempDescription => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.16.1.1' }, - hhmsSensorArrayTempDegree => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.16.1.3' }, - hhmsSensorArrayTempStatus => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.16.1.4', map => \%map_default1_status }, - hhmsSensorArrayTempOnline => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.16.1.5', map => \%map_online }, - hhmsSensorArrayTempHighWarning => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.16.1.7' }, - hhmsSensorArrayTempHighCritical => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.16.1.8' }, - hhmsSensorArrayTempLowWarning => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.16.1.9' }, - hhmsSensorArrayTempLowCritical => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.16.1.10' }, - hhmsSensorArrayTempDegreeType => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.16.1.12', map => \%map_degree_type }, + TempDescription => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.16.1.1' }, # hhmsSensorArrayTempDescription + TempDegree => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.16.1.3' }, # hhmsSensorArrayTempDegree + TempStatus => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.16.1.4', map => \%map_default1_status }, # hhmsSensorArrayTempStatus + TempOnline => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.16.1.5', map => \%map_online }, # hhmsSensorArrayTempOnline + TempHighWarning => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.16.1.7' }, # hhmsSensorArrayTempHighWarning + TempHighCritical => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.16.1.8' }, # hhmsSensorArrayTempHighCritical + TempLowWarning => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.16.1.9' }, # hhmsSensorArrayTempLowWarning + TempLowCritical => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.16.1.10' }, # hhmsSensorArrayTempLowCritical + TempDegreeType => { oid => '.1.3.6.1.4.1.3854.1.2.2.1.16.1.12', map => \%map_degree_type }, # hhmsSensorArrayTempDegreeType }; +my $mapping2 = { + TempDescription => { oid => '.1.3.6.1.4.1.3854.3.5.2.1.2' }, # temperatureDescription + TempDegree => { oid => '.1.3.6.1.4.1.3854.3.5.2.1.4' }, # temperatureDegree + TempStatus => { oid => '.1.3.6.1.4.1.3854.3.5.2.1.6', map => \%map_default1_status }, # temperatureStatus + TempOnline => { oid => '.1.3.6.1.4.1.3854.3.5.2.1.8', map => \%map_online }, # temperatureGoOffline + TempHighWarning => { oid => '.1.3.6.1.4.1.3854.3.5.2.1.11' }, # temperatureHighWarning + TempHighCritical => { oid => '.1.3.6.1.4.1.3854.3.5.2.1.12' }, # temperatureHighCritical + TempLowWarning => { oid => '.1.3.6.1.4.1.3854.3.5.2.1.10' }, # temperatureLowWarning + TempLowCritical => { oid => '.1.3.6.1.4.1.3854.3.5.2.1.9' }, # temperatureLowCritical + TempDegreeType => { oid => '.1.3.6.1.4.1.3854.3.5.2.1.5'}, # temperatureUnit +}; + my $oid_hhmsSensorArrayTempEntry = '.1.3.6.1.4.1.3854.1.2.2.1.16.1'; +my $oid_temperatureEntry = '.1.3.6.1.4.1.3854.3.5.2.1'; sub load { my ($self) = @_; - push @{$self->{request}}, { oid => $oid_hhmsSensorArrayTempEntry }; + push @{$self->{request}}, { oid => $oid_hhmsSensorArrayTempEntry }, + { oid => $oid_temperatureEntry, end => $mapping2->{TempHighCritical}->{oid} }; } -sub check { - my ($self) = @_; +sub check_temperature { + my ($self, %options) = @_; - $self->{output}->output_add(long_msg => "Checking temperatures"); - $self->{components}->{temperature} = {name => 'temperatures', total => 0, skip => 0}; - return if ($self->check_filter(section => 'temperature')); - - foreach my $oid ($self->{snmp}->oid_lex_sort(keys %{$self->{results}->{$oid_hhmsSensorArrayTempEntry}})) { - next if ($oid !~ /^$mapping->{hhmsSensorArrayTempOnline}->{oid}\.(.*)$/); + foreach my $oid ($self->{snmp}->oid_lex_sort(keys %{$self->{results}->{$options{entry}}})) { + next if ($oid !~ /^$options{mapping}->{TempOnline}->{oid}\.(.*)$/); my $instance = $1; - my $result = $self->{snmp}->map_instance(mapping => $mapping, results => $self->{results}->{$oid_hhmsSensorArrayTempEntry}, instance => $instance); + my $result = $self->{snmp}->map_instance(mapping => $options{mapping}, results => $self->{results}->{$options{entry}}, instance => $instance); next if ($self->check_filter(section => 'temperature', instance => $instance)); - if ($result->{hhmsSensorArrayTempOnline} eq 'offline') { - $self->{output}->output_add(long_msg => sprintf("skipping '%s': is offline", $result->{hhmsSensorArrayTempDescription})); + if ($result->{TempOnline} eq 'offline') { + $self->{output}->output_add(long_msg => sprintf("skipping '%s': is offline", $result->{TempDescription})); next; } $self->{components}->{temperature}->{total}++; $self->{output}->output_add(long_msg => sprintf("temperature '%s' status is '%s' [instance = %s] [value = %s]", - $result->{hhmsSensorArrayTempDescription}, $result->{hhmsSensorArrayTempStatus}, $instance, - $result->{hhmsSensorArrayTempDegree})); + $result->{TempDescription}, $result->{TempStatus}, $instance, + $result->{TempDegree})); - my $exit = $self->get_severity(label => 'default1', section => 'temperature', value => $result->{hhmsSensorArrayTempStatus}); + my $exit = $self->get_severity(label => 'default1', section => 'temperature', value => $result->{TempStatus}); if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) { $self->{output}->output_add(severity => $exit, - short_msg => sprintf("Temperature '%s' status is '%s'", $result->{hhmsSensorArrayTempDescription}, $result->{hhmsSensorArrayTempStatus})); + short_msg => sprintf("Temperature '%s' status is '%s'", $result->{TempDescription}, $result->{TempStatus})); } - my ($exit2, $warn, $crit, $checked) = $self->get_severity_numeric(section => 'temperature', instance => $instance, value => $result->{hhmsSensorArrayTempDegree}); + my ($exit2, $warn, $crit, $checked) = $self->get_severity_numeric(section => 'temperature', instance => $instance, value => $result->{TempDegree}); if ($checked == 0) { - $result->{hhmsSensorArrayTempLowWarning} = (defined($result->{hhmsSensorArrayTempLowWarning}) && $result->{hhmsSensorArrayTempLowWarning} =~ /[0-9]/) ? - $result->{hhmsSensorArrayTempLowWarning} : ''; - $result->{hhmsSensorArrayTempLowCritical} = (defined($result->{hhmsSensorArrayTempLowCritical}) && $result->{hhmsSensorArrayTempLowCritical} =~ /[0-9]/) ? - $result->{hhmsSensorArrayTempLowCritical} : ''; - $result->{hhmsSensorArrayTempHighWarning} = (defined($result->{hhmsSensorArrayTempHighWarning}) && $result->{hhmsSensorArrayTempHighWarning} =~ /[0-9]/) ? - $result->{hhmsSensorArrayTempHighWarning} : ''; - $result->{hhmsSensorArrayTempHighCritical} = (defined($result->{hhmsSensorArrayTempHighCritical}) && $result->{hhmsSensorArrayTempHighCritical} =~ /[0-9]/) ? - $result->{hhmsSensorArrayTempHighCritical} : ''; - my $warn_th = $result->{hhmsSensorArrayTempLowWarning} . ':' . $result->{hhmsSensorArrayTempHighWarning}; - my $crit_th = $result->{hhmsSensorArrayTempLowCritical} . ':' . $result->{hhmsSensorArrayTempHighCritical}; + $result->{TempLowWarning} = (defined($result->{TempLowWarning}) && $result->{TempLowWarning} =~ /[0-9]/) ? + $result->{TempLowWarning} * $options{threshold_mult} : ''; + $result->{TempLowCritical} = (defined($result->{TempLowCritical}) && $result->{TempLowCritical} =~ /[0-9]/) ? + $result->{TempLowCritical} * $options{threshold_mult} : ''; + $result->{TempHighWarning} = (defined($result->{TempHighWarning}) && $result->{TempHighWarning} =~ /[0-9]/) ? + $result->{TempHighWarning} * $options{threshold_mult} : ''; + $result->{TempHighCritical} = (defined($result->{TempHighCritical}) && $result->{TempHighCritical} =~ /[0-9]/) ? + $result->{TempHighCritical} * $options{threshold_mult} : ''; + my $warn_th = $result->{TempLowWarning} . ':' . $result->{TempHighWarning}; + my $crit_th = $result->{TempLowCritical} . ':' . $result->{TempHighCritical}; $self->{perfdata}->threshold_validate(label => 'warning-temperature-instance-' . $instance, value => $warn_th); $self->{perfdata}->threshold_validate(label => 'critical-temperature-instance-' . $instance, value => $crit_th); @@ -93,14 +103,25 @@ sub check { if (!$self->{output}->is_status(value => $exit2, compare => 'ok', litteral => 1)) { $self->{output}->output_add(severity => $exit2, - short_msg => sprintf("Temperature '%s' is %s %s", $result->{hhmsSensorArrayTempDescription}, $result->{hhmsSensorArrayTempDegree}, $result->{hhmsSensorArrayTempDegreeType})); + short_msg => sprintf("Temperature '%s' is %s %s", $result->{TempDescription}, $result->{TempDegree}, $result->{TempDegreeType})); } - $self->{output}->perfdata_add(label => 'temperature_' . $result->{hhmsSensorArrayTempDescription}, unit => $result->{hhmsSensorArrayTempDegreeType}, - value => $result->{hhmsSensorArrayTempDegree}, + $self->{output}->perfdata_add(label => 'temperature_' . $result->{TempDescription}, unit => $result->{TempDegreeType}, + value => $result->{TempDegree}, warning => $warn, critical => $crit, ); } } -1; \ No newline at end of file +sub check { + my ($self) = @_; + + $self->{output}->output_add(long_msg => "Checking temperatures"); + $self->{components}->{temperature} = {name => 'temperatures', total => 0, skip => 0}; + return if ($self->check_filter(section => 'temperature')); + + check_temperature($self, entry => $oid_hhmsSensorArrayTempEntry, mapping => $mapping, threshold_mult => 1); + check_temperature($self, entry => $oid_temperatureEntry, mapping => $mapping2, threshold_mult => 0.1); +} + +1; diff --git a/hardware/sensors/akcp/snmp/mode/components/water.pm b/hardware/sensors/akcp/snmp/mode/components/water.pm new file mode 100644 index 000000000..b0785ce5c --- /dev/null +++ b/hardware/sensors/akcp/snmp/mode/components/water.pm @@ -0,0 +1,71 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package hardware::sensors::akcp::snmp::mode::components::water; + +use strict; +use warnings; +use hardware::sensors::akcp::snmp::mode::components::resources qw(%map_default1_status %map_online); + +my $mapping = { + waterDescription => { oid => '.1.3.6.1.4.1.3854.3.5.9.1.2' }, + waterStatus => { oid => '.1.3.6.1.4.1.3854.3.5.9.1.6', map => \%map_default1_status }, + waterGoOffline => { oid => '.1.3.6.1.4.1.3854.3.5.9.1.8', map => \%map_online }, +}; +my $oid_waterEntry = '.1.3.6.1.4.1.3854.3.5.9.1'; + +sub load { + my ($self) = @_; + + push @{$self->{request}}, { oid => $oid_waterEntry, end => $mapping->{waterGoOffline}->{oid} }; +} + +sub check { + my ($self) = @_; + + $self->{output}->output_add(long_msg => "Checking waters"); + $self->{components}->{water} = {name => 'waters', total => 0, skip => 0}; + return if ($self->check_filter(section => 'water')); + + foreach my $oid ($self->{snmp}->oid_lex_sort(keys %{$self->{results}->{$oid_waterEntry}})) { + next if ($oid !~ /^$mapping->{waterGoOffline}->{oid}\.(.*)$/); + my $instance = $1; + my $result = $self->{snmp}->map_instance(mapping => $mapping, results => $self->{results}->{$oid_waterEntry}, instance => $instance); + + next if ($self->check_filter(section => 'water', instance => $instance)); + if ($result->{waterGoOffline} eq 'offline') { + $self->{output}->output_add(long_msg => sprintf("skipping '%s': is offline", $result->{waterDescription})); + next; + } + $self->{components}->{water}->{total}++; + + $self->{output}->output_add(long_msg => sprintf("water '%s' status is '%s' [instance = %s]", + $result->{waterDescription}, $result->{waterStatus}, $instance, + )); + + my $exit = $self->get_severity(label => 'default1', section => 'water', value => $result->{waterStatus}); + if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) { + $self->{output}->output_add(severity => $exit, + short_msg => sprintf("Water '%s' status is '%s'", $result->{waterDescription}, $result->{waterStatus})); + } + } +} + +1; diff --git a/hardware/sensors/akcp/snmp/mode/sensors.pm b/hardware/sensors/akcp/snmp/mode/sensors.pm index c1686a883..e92391a70 100644 --- a/hardware/sensors/akcp/snmp/mode/sensors.pm +++ b/hardware/sensors/akcp/snmp/mode/sensors.pm @@ -28,7 +28,7 @@ use warnings; sub set_system { my ($self, %options) = @_; - $self->{regexp_threshold_overload_check_section_option} = '^(temperature|humidity|switch|serial)$'; + $self->{regexp_threshold_overload_check_section_option} = '^(temperature|humidity|switch|serial|water)$'; $self->{regexp_threshold_numeric_check_section_option} = '^(temperature|humidity)$'; $self->{cb_hook2} = 'snmp_execute'; @@ -42,6 +42,8 @@ sub set_system { ['lowWarning', 'WARNING'], ['lowCritical', 'CRITICAL'], ['sensorError', 'CRITICAL'], + ['relayOn', 'OK'], + ['relayOff', 'OK'], ], default2 => [ ['noStatus', 'OK'], @@ -52,7 +54,7 @@ sub set_system { }; $self->{components_path} = 'hardware::sensors::akcp::snmp::mode::components'; - $self->{components_module} = ['temperature', 'humidity', 'switch', 'serial']; + $self->{components_module} = ['temperature', 'humidity', 'switch', 'serial', 'water']; } sub snmp_execute { @@ -88,7 +90,7 @@ Check sensors. =item B<--component> Which component to check (Default: '.*'). -Can be: 'temperature', 'humidity', 'switch', 'serial'. +Can be: 'temperature', 'humidity', 'switch', 'serial', 'water'. =item B<--filter> @@ -118,4 +120,4 @@ Example: --warning='temperature,.*,50' =back -=cut \ No newline at end of file +=cut From c6ac9e90f285f5da742c958c03c38af40495be34 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Tue, 12 Dec 2017 16:55:38 +0100 Subject: [PATCH 12/77] add colubris snmp plugin --- network/colubris/snmp/mode/apusage.pm | 256 ++++++++++++++++++++++++++ network/colubris/snmp/mode/cpu.pm | 139 ++++++++++++++ network/colubris/snmp/mode/load.pm | 125 +++++++++++++ network/colubris/snmp/mode/memory.pm | 129 +++++++++++++ network/colubris/snmp/mode/storage.pm | 108 +++++++++++ network/colubris/snmp/plugin.pm | 54 ++++++ 6 files changed, 811 insertions(+) create mode 100644 network/colubris/snmp/mode/apusage.pm create mode 100644 network/colubris/snmp/mode/cpu.pm create mode 100644 network/colubris/snmp/mode/load.pm create mode 100644 network/colubris/snmp/mode/memory.pm create mode 100644 network/colubris/snmp/mode/storage.pm create mode 100644 network/colubris/snmp/plugin.pm diff --git a/network/colubris/snmp/mode/apusage.pm b/network/colubris/snmp/mode/apusage.pm new file mode 100644 index 000000000..9ede7ddbb --- /dev/null +++ b/network/colubris/snmp/mode/apusage.pm @@ -0,0 +1,256 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package network::colubris::snmp::mode::apusage; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use Digest::MD5 qw(md5_hex); + +my $instance_mode; + +sub custom_status_threshold { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + if (defined($instance_mode->{option_results}->{critical_ap_status}) && $instance_mode->{option_results}->{critical_ap_status} ne '' && + eval "$instance_mode->{option_results}->{critical_ap_status}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{warning_ap_status}) && $instance_mode->{option_results}->{warning_ap_status} ne '' && + eval "$instance_mode->{option_results}->{warning_ap_status}") { + $status = 'warning'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_status_output { + my ($self, %options) = @_; + + my $msg = 'Operational State : ' . $self->{result_values}->{state}; + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{state} = $options{new_datas}->{$self->{instance} . '_state'}; + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'}; + return 0; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0 }, + { name => 'ap', type => 1, cb_prefix_output => 'prefix_ap_output', message_multiple => 'All access points are OK' }, + ]; + + $self->{maps_counters}->{global} = [ + { label => 'total-ap', set => { + key_values => [ { name => 'total_ap' } ], + output_template => 'Total AP : %s', + perfdatas => [ + { label => 'total_ap', value => 'total_ap_absolute', template => '%s', min => 0 }, + ], + } + }, + { label => 'total-users', set => { + key_values => [ { name => 'total_users' } ], + output_template => 'Total Users : %s', + perfdatas => [ + { label => 'total_users', value => 'total_users_absolute', template => '%s', min => 0 }, + ], + } + }, + ]; + + $self->{maps_counters}->{ap} = [ + { label => 'ap-status', threshold => 0, set => { + key_values => [ { name => 'state' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_status_calc'), + closure_custom_output => $self->can('custom_status_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + { label => 'ap-users', set => { + key_values => [ { name => 'users' }, { name => 'display' } ], + output_template => 'Current Users: %s', + perfdatas => [ + { label => 'ap_users', value => 'users_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + ]; +} + +sub prefix_ap_output { + my ($self, %options) = @_; + + return "AP '" . $options{instance_value}->{display} . "' "; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 1); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "filter-name:s" => { name => 'filter_name' }, + "warning-ap-status:s" => { name => 'warning_ap_status', default => '' }, + "critical-ap-status:s" => { name => 'critical_ap_status', default => '%{state} eq "disconnected"' }, + }); + return $self; +} + +sub change_macros { + my ($self, %options) = @_; + + foreach (('warning_ap_status', 'critical_ap_status')) { + if (defined($self->{option_results}->{$_})) { + $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; + } + } +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $self->change_macros(); + $instance_mode = $self; +} + +my %map_device_state = ( + 1 => 'disconnected', 2 => 'authorized', 3 => 'join', 4 => 'firmware', + 5 => 'security', 6 => 'configuration', 7 => 'running' +); + +my $mapping = { + coDevDisState => { oid => '.1.3.6.1.4.1.8744.5.23.1.2.1.1.5', map => \%map_device_state }, + coDevDisSystemName => { oid => '.1.3.6.1.4.1.8744.5.23.1.2.1.1.6' }, +}; + +my $mapping2 = { + coDevWirCliStaMACAddress => { oid => '.1.3.6.1.4.1.8744.5.25.1.7.1.1.2' }, +}; + +sub manage_selection { + my ($self, %options) = @_; + + $self->{cache_name} = "colubris_" . $options{snmp}->get_hostname() . '_' . $options{snmp}->get_port() . '_' . $self->{mode} . '_' . + (defined($self->{option_results}->{filter_counters}) ? md5_hex($self->{option_results}->{filter_counters}) : md5_hex('all')) . '_' . + (defined($self->{option_results}->{filter_name}) ? md5_hex($self->{option_results}->{filter_name}) : md5_hex('all')); + + my $snmp_result = $options{snmp}->get_multiple_table(oids => [ + { oid => $mapping->{coDevDisState}->{oid} }, + { oid => $mapping->{coDevDisSystemName}->{oid} }, + { oid => $mapping2->{coDevWirCliStaMACAddress}->{oid} }, + ], nothing_quit => 1, return_type => 1); + + $self->{ap} = {}; + $self->{global} = { total_ap => 0, total_users => 0 }; + foreach my $oid (sort keys %{$snmp_result}) { + next if ($oid !~ /^$mapping->{coDevDisSystemName}->{oid}\.(.*)$/); + my $instance = $1; + my $result = $options{snmp}->map_instance(mapping => $mapping, results => $snmp_result, instance => $instance); + if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' && + $result->{coDevDisSystemName} !~ /$self->{option_results}->{filter_name}/) { + $self->{output}->output_add(long_msg => "skipping '" . $result->{coDevDisSystemName} . "': no matching filter.", debug => 1); + next; + } + + $self->{global}->{total_ap}++; + $self->{ap}->{$instance} = { + display => $result->{coDevDisSystemName}, + state => $result->{coDevDisState}, + users => 0, + }; + } + + foreach my $oid (sort keys %{$snmp_result}) { + next if ($oid !~ /^$mapping2->{coDevWirCliStaMACAddress}->{oid}\.(.*?)\./); + my $instance = $1; + + next if (!defined($self->{ap}->{$instance})); + + $self->{global}->{total_users}++; + $self->{ap}->{$instance}->{users}++; + } + + if (scalar(keys %{$self->{ap}}) <= 0) { + $self->{output}->add_option_msg(short_msg => "No access point found."); + $self->{output}->option_exit(); + } +} + +1; + +__END__ + +=head1 MODE + +Check AP status and users connected. + +=over 8 + +=item B<--filter-name> + +Filter ap name with regexp. + +=item B<--warning-*> + +Threshold warning. +Can be: 'total-ap', 'total-users', 'ap-users'. + +=item B<--critical-*> + +Threshold critical. +Can be: 'total-ap', 'total-users', 'ap-users'. + +=item B<--warning-ap-status> + +Set warning threshold for status. +Can used special variables like: %{state}, %{display} + +=item B<--critical-ap-status> + +Set critical threshold for status (Default: '%{state} eq "disconnected"'). +Can used special variables like: %{state}, %{display} + +=back + +=cut diff --git a/network/colubris/snmp/mode/cpu.pm b/network/colubris/snmp/mode/cpu.pm new file mode 100644 index 000000000..d21f38f8f --- /dev/null +++ b/network/colubris/snmp/mode/cpu.pm @@ -0,0 +1,139 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package network::colubris::snmp::mode::cpu; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0, cb_prefix_output => 'prefix_cpu_output' }, + ]; + + $self->{maps_counters}->{global} = [ + { label => 'current', set => { + key_values => [ { name => 'usage_now' } ], + output_template => '%.2f %% (current)', + perfdatas => [ + { label => 'cpu_current', value => 'usage_now_absolute', template => '%.2f', + unit => '%', min => 0, max => 100 }, + ], + } + }, + { label => '5s', set => { + key_values => [ { name => 'usage_5s' } ], + output_template => '%.2f %% (5sec)', + perfdatas => [ + { label => 'cpu_5s', value => 'usage_5s_absolute', template => '%.2f', + unit => '%', min => 0, max => 100 }, + ], + } + }, + { label => '10s', set => { + key_values => [ { name => 'usage_10s' } ], + output_template => '%.2f %% (10sec)', + perfdatas => [ + { label => 'cpu_10s', value => 'usage_10s_absolute', template => '%.2f', + unit => '%', min => 0, max => 100 }, + ], + } + }, + { label => '20s', set => { + key_values => [ { name => 'usage_20s' } ], + output_template => '%.2f %% (5sec)', + perfdatas => [ + { label => 'cpu_20s', value => 'usage_20s_absolute', template => '%.2f', + unit => '%', min => 0, max => 100 }, + ], + } + }, + ]; +} + +sub prefix_cpu_output { + my ($self, %options) = @_; + + return "CPU "; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + }); + + return $self; +} + +sub manage_selection { + my ($self, %options) = @_; + + my $oid_coUsInfoCpuUseNow = '.1.3.6.1.4.1.8744.5.21.1.1.5.0'; + my $oid_coUsInfoCpuUse5Sec = '.1.3.6.1.4.1.8744.5.21.1.1.6.0'; + my $oid_coUsInfoCpuUse10Sec = '.1.3.6.1.4.1.8744.5.21.1.1.7.0'; + my $oid_coUsInfoCpuUse20Sec = '.1.3.6.1.4.1.8744.5.21.1.1.8.0'; + my $snmp_result = $options{snmp}->get_leef(oids => [$oid_coUsInfoCpuUseNow, + $oid_coUsInfoCpuUse5Sec, $oid_coUsInfoCpuUse10Sec, $oid_coUsInfoCpuUse20Sec], nothing_quit => 1); + + $self->{global} = { + usage_now => $snmp_result->{$oid_coUsInfoCpuUseNow}, + usage_5s => $snmp_result->{$oid_coUsInfoCpuUse5Sec}, + usage_10s => $snmp_result->{$oid_coUsInfoCpuUse10Sec}, + usage_20s => $snmp_result->{$oid_coUsInfoCpuUse20Sec}, + }; +} + +1; + +__END__ + +=head1 MODE + +Check CPU usage. + +=over 8 + +=item B<--filter-counters> + +Only display some counters (regexp can be used). +Example: --filter-counters='20s' + +=item B<--warning-*> + +Threshold warning. +Can be: 'current', '5s', '10s', '20s'. + +=item B<--critical-*> + +Threshold critical. +Can be: 'current', '5s', '10s', '20s'. + +=back + +=cut diff --git a/network/colubris/snmp/mode/load.pm b/network/colubris/snmp/mode/load.pm new file mode 100644 index 000000000..7d75dd06f --- /dev/null +++ b/network/colubris/snmp/mode/load.pm @@ -0,0 +1,125 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package network::colubris::snmp::mode::load; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0, cb_prefix_output => 'prefix_load_output' } + ]; + + $self->{maps_counters}->{global} = [ + { label => '1min', set => { + key_values => [ { name => 'load1' } ], + output_template => '%s', + perfdatas => [ + { label => 'load1', value => 'load1_absolute', template => '%s', min => 0 }, + ], + } + }, + { label => '5min', set => { + key_values => [ { name => 'load5' } ], + output_template => '%s', + perfdatas => [ + { label => 'load5', value => 'load5_absolute', template => '%s', min => 0 }, + ], + } + }, + { label => '1min', set => { + key_values => [ { name => 'load15' } ], + output_template => '%s', + perfdatas => [ + { label => 'load15', value => 'load15_absolute', template => '%s', min => 0 }, + ], + } + }, + ]; +} + +sub prefix_load_output { + my ($self, %options) = @_; + + return "Load average: "; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + }); + + return $self; +} + +sub manage_selection { + my ($self, %options) = @_; + + my $oid_coUsInfoLoadAverage1Min = '.1.3.6.1.4.1.8744.5.21.1.1.5.0'; + my $oid_coUsInfoLoadAverage5Min = '.1.3.6.1.4.1.8744.5.21.1.1.6.0'; + my $oid_coUsInfoLoadAverage15Min = '.1.3.6.1.4.1.8744.5.21.1.1.7.0'; + my $snmp_result = $options{snmp}->get_leef(oids => [$oid_coUsInfoLoadAverage1Min, + $oid_coUsInfoLoadAverage5Min, $oid_coUsInfoLoadAverage15Min], nothing_quit => 1); + + $self->{global} = { + load1 => $snmp_result->{$oid_coUsInfoLoadAverage1Min}, + load5 => $snmp_result->{$oid_coUsInfoLoadAverage5Min}, + load15 => $snmp_result->{$oid_coUsInfoLoadAverage15Min}, + }; +} + +1; + +__END__ + +=head1 MODE + +Check load-average. + +=over 8 + +=item B<--filter-counters> + +Only display some counters (regexp can be used). +Example: --filter-counters='15min' + +=item B<--warning-*> + +Threshold warning. +Can be: '1min', '5min', '15min'. + +=item B<--critical-*> + +Threshold critical. +Can be: '1min', '5min', '15min'. + +=back + +=cut diff --git a/network/colubris/snmp/mode/memory.pm b/network/colubris/snmp/mode/memory.pm new file mode 100644 index 000000000..31f7c39ff --- /dev/null +++ b/network/colubris/snmp/mode/memory.pm @@ -0,0 +1,129 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package network::colubris::snmp::mode::memory; + +use base qw(centreon::plugins::mode); + +use strict; +use warnings; + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "warning:s" => { name => 'warning' }, + "critical:s" => { name => 'critical' }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::init(%options); + + if (($self->{perfdata}->threshold_validate(label => 'warning', value => $self->{option_results}->{warning})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong warning threshold '" . $self->{option_results}->{warning} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'critical', value => $self->{option_results}->{critical})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong critical threshold '" . $self->{option_results}->{critical} . "'."); + $self->{output}->option_exit(); + } +} + +sub run { + my ($self, %options) = @_; + $self->{snmp} = $options{snmp}; + + my $oid_coUsInfoRamTotal = '.1.3.6.1.4.1.8744.5.21.1.1.9.0'; + my $oid_coUsInfoRamFree = '.1.3.6.1.4.1.8744.5.21.1.1.10.0'; + my $oid_coUsInfoRamBuffer = '.1.3.6.1.4.1.8744.5.21.1.1.11.0'; + my $oid_coUsInfoRamCached = '.1.3.6.1.4.1.8744.5.21.1.1.12.0'; + + my $result = $self->{snmp}->get_leef(oids => [ + $oid_coUsInfoRamTotal, $oid_coUsInfoRamFree, + $oid_coUsInfoRamBuffer, $oid_coUsInfoRamCached + ], nothing_quit => 1); + + my $cached_used = $result->{$oid_coUsInfoRamCached}; + my $buffer_used = $result->{$oid_coUsInfoRamBuffer}; + my $physical_used = ($result->{$oid_coUsInfoRamTotal}) - ($result->{$oid_coUsInfoRamFree}); + my $nobuf_used = $physical_used - $buffer_used - $cached_used; + + my $total_size = $result->{$oid_coUsInfoRamTotal}; + + my $prct_used = $nobuf_used * 100 / $total_size; + my $exit = $self->{perfdata}->threshold_check(value => $prct_used, threshold => [ { label => 'critical', exit_litteral => 'critical' }, { label => 'warning', exit_litteral => 'warning' } ]); + + my ($total_value, $total_unit) = $self->{perfdata}->change_bytes(value => $total_size); + my ($nobuf_value, $nobuf_unit) = $self->{perfdata}->change_bytes(value => $nobuf_used); + my ($buffer_value, $buffer_unit) = $self->{perfdata}->change_bytes(value => $buffer_used); + my ($cached_value, $cached_unit) = $self->{perfdata}->change_bytes(value => $cached_used); + + $self->{output}->output_add(severity => $exit, + short_msg => sprintf("Ram Total: %s, Used (-buffers/cache): %s (%.2f%%), Buffer: %s, Cached: %s", + $total_value . " " . $total_unit, + $nobuf_value . " " . $nobuf_unit, $prct_used, + $buffer_value . " " . $buffer_unit, + $cached_value . " " . $cached_unit)); + + $self->{output}->perfdata_add(label => "cached", unit => 'B', + value => $cached_used, + min => 0); + $self->{output}->perfdata_add(label => "buffer", unit => 'B', + value => $buffer_used, + min => 0); + $self->{output}->perfdata_add(label => "used", unit => 'B', + value => $nobuf_used, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning', total => $total_size, cast_int => 1), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical', total => $total_size, cast_int => 1), + min => 0, max => $total_size); + + $self->{output}->display(); + $self->{output}->exit(); +} + +1; + +__END__ + +=head1 MODE + +Check memory usage. + +=over 8 + +=item B<--warning> + +Threshold warning in percent. + +=item B<--critical> + +Threshold critical in percent. + +=back + +=cut diff --git a/network/colubris/snmp/mode/storage.pm b/network/colubris/snmp/mode/storage.pm new file mode 100644 index 000000000..ef6bc1774 --- /dev/null +++ b/network/colubris/snmp/mode/storage.pm @@ -0,0 +1,108 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package network::colubris::snmp::mode::storage; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'storage', type => 0 } + ]; + + $self->{maps_counters}->{storage} = [ + { label => 'permanent-usage', set => { + key_values => [ { name => 'perm_used' } ], + output_template => 'Permanent Storage Used: %.2f%%', + perfdatas => [ + { label => 'storage_permanent_used', value => 'perm_used_absolute', template => '%.2f', + min => 0, max => 100, unit => '%' }, + ], + } + }, + { label => 'temporary-usage', set => { + key_values => [ { name => 'temp_used' } ], + output_template => 'Temporary Storage Used: %.2f%%', + perfdatas => [ + { label => 'storage_temporary_used', value => 'temp_used_absolute', template => '%.2f', + min => 0, max => 100, unit => '%' }, + ], + } + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + }); + + return $self; +} + +sub manage_selection { + my ($self, %options) = @_; + + my $oid_coUsInfoStorageUsePermanent = '.1.3.6.1.4.1.8744.5.21.1.1.13.0'; + my $oid_coUsInfoStorageUseTemporary = '.1.3.6.1.4.1.8744.5.21.1.1.14.0'; + my $snmp_result = $options{snmp}->get_leef(oids => [ + $oid_coUsInfoStorageUsePermanent, $oid_coUsInfoStorageUseTemporary, + ], nothing_quit => 1); + + $self->{storage} = { + perm_used => $snmp_result->{$oid_coUsInfoStorageUsePermanent}, + temp_used => $snmp_result->{$oid_coUsInfoStorageUseTemporary}, + }; +} + +1; + +__END__ + +=head1 MODE + +Check storage usage. + +=over 8 + +=item B<--warning-*> + +Threshold warning. +Can be: 'permanent-usage' (%), 'temporary-usage' (%). + +=item B<--critical-*> + +Threshold critical. +Can be: 'permanent-usage' (%), 'temporary-usage' (%). + + +=back + +=cut diff --git a/network/colubris/snmp/plugin.pm b/network/colubris/snmp/plugin.pm new file mode 100644 index 000000000..5fb8332b7 --- /dev/null +++ b/network/colubris/snmp/plugin.pm @@ -0,0 +1,54 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package network::colubris::snmp::plugin; + +use strict; +use warnings; +use base qw(centreon::plugins::script_snmp); + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + %{$self->{modes}} = ( + 'ap-usage' => 'network::colubris::snmp::mode::apusage', + 'cpu' => 'network::colubris::snmp::mode::cpu', + 'interfaces' => 'snmp_standard::mode::interfaces', + 'list-interfaces' => 'snmp_standard::mode::listinterfaces', + 'load' => 'network::colubris::snmp::mode::load', + 'memory' => 'network::colubris::snmp::mode::memory', + 'storage' => 'network::colubris::snmp::mode::storage', + ); + + return $self; +} + +1; + +__END__ + +=head1 PLUGIN DESCRIPTION + +Check Colubris equipments in SNMP. + +=cut From 8a40884f5af7e71ac79593f0d34ab77de4a4714e Mon Sep 17 00:00:00 2001 From: qgarnier Date: Tue, 12 Dec 2017 17:41:30 +0100 Subject: [PATCH 13/77] fix variable kingdee --- apps/kingdee/eas/mode/oraclesession.pm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/apps/kingdee/eas/mode/oraclesession.pm b/apps/kingdee/eas/mode/oraclesession.pm index d91ba1267..fbf7bac23 100644 --- a/apps/kingdee/eas/mode/oraclesession.pm +++ b/apps/kingdee/eas/mode/oraclesession.pm @@ -118,8 +118,7 @@ sub run { $scheduler = $1 if $webcontent =~ /^WAIT_CLASS=Scheduler\sCOUNT=(\d+)/mi; $idle = $1 if $webcontent =~ /^WAIT_CLASS=Idle\sCOUNT=(\d+)/mi; - #cpu cpuwait - my $cpu wait = $idle + $network ; + my $cpuandwait = $idle + $network; $self->{output}->output_add(severity => "ok", short_msg => sprintf("Other: %d", $other)); $self->{output}->output_add(severity => "ok", short_msg => sprintf("Queueing: %d", $queueing)); @@ -131,7 +130,7 @@ sub run { $self->{output}->output_add(severity => "ok", short_msg => sprintf("System I/O: %d", $systemio)); $self->{output}->output_add(severity => "ok", short_msg => sprintf("User I/O: %d", $userio)); $self->{output}->output_add(severity => "ok", short_msg => sprintf("Scheduler: %d", $scheduler)); - $self->{output}->output_add(severity => "ok", short_msg => sprintf("CPU + CPU Wait: %d", $cpu wait)); + $self->{output}->output_add(severity => "ok", short_msg => sprintf("CPU + CPU Wait: %d", $cpuandwait)); my $exit = $self->{perfdata}->threshold_check(value => $activecount, threshold => [ { label => 'crit_activecount', exit_litteral => 'critical' }, { label => 'warn_activecount', exit_litteral => 'warning' } ]); @@ -151,7 +150,7 @@ sub run { $self->{output}->perfdata_add(label => "System I/O", unit => '', value => sprintf("%d", $systemio)); $self->{output}->perfdata_add(label => "User I/O", unit => '', value => sprintf("%d", $userio)); $self->{output}->perfdata_add(label => "Scheduler", unit => '', value => sprintf("%d", $scheduler)); - $self->{output}->perfdata_add(label => "CPU + CPU Wait", unit => '', value => sprintf("%d", $cpu wait)); + $self->{output}->perfdata_add(label => "CPU + CPU Wait", unit => '', value => sprintf("%d", $cpuandwait)); $self->{output}->perfdata_add(label => "ActiveCount", unit => '', value => sprintf("%d", $activecount), From 2115e58a2004126be864bbde1a752b6c274b0852 Mon Sep 17 00:00:00 2001 From: Rico29 Date: Wed, 13 Dec 2017 08:58:44 +0100 Subject: [PATCH 14/77] Update guide.rst Correction snmp_standard::plugin -> apps::protocols::snmp::plugin --- docs/fr/user/guide.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/fr/user/guide.rst b/docs/fr/user/guide.rst index 706615686..4201384f1 100644 --- a/docs/fr/user/guide.rst +++ b/docs/fr/user/guide.rst @@ -461,7 +461,7 @@ Comment puis-je vérifier la valeur d'un OID SNMP générique ? Il y a un plugin SNMP générique pour vérifier cela. Voici un exemple pour obtenir l'OID SNMP 'SysUptime' : :: - $ perl centreon_plugins.pl --plugin=snmp_standard::plugin --mode=numeric-value --oid='.1.3.6.1.2.1.1.3.0' --hostname=127.0.0.1 --snmp-version=2c --snmp-community=public + $ perl centreon_plugins.pl --plugin=apps::protocols::snmp::plugin --mode=numeric-value --oid='.1.3.6.1.2.1.1.3.0' --hostname=127.0.0.1 --snmp-version=2c --snmp-community=public --------------------------------------------------------------------- Comment utiliser un serveur memcached pour la rétention des données ? From 6ff1c49cf52a6efe93dccaa43f49d5bd5de8e1b2 Mon Sep 17 00:00:00 2001 From: Rico29 Date: Wed, 13 Dec 2017 09:00:41 +0100 Subject: [PATCH 15/77] Update guide.rst Correction plugin=snmp_standard::plugin -> plugin=apps::protocols::snmp::plugin --- docs/en/user/guide.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/user/guide.rst b/docs/en/user/guide.rst index 36ad83640..e913a939b 100644 --- a/docs/en/user/guide.rst +++ b/docs/en/user/guide.rst @@ -453,7 +453,7 @@ How can i check a generic SNMP OID value ? There is a generic SNMP plugin to check it. An example to get 'SysUptime' SNMP OID: :: - $ perl centreon_plugins.pl --plugin=snmp_standard::plugin --mode=numeric-value --oid='.1.3.6.1.2.1.1.3.0' --hostname=127.0.0.1 --snmp-version=2c --snmp-community=public + $ perl centreon_plugins.pl --plugin=apps::protocols::snmp::plugin --mode=numeric-value --oid='.1.3.6.1.2.1.1.3.0' --hostname=127.0.0.1 --snmp-version=2c --snmp-community=public ---------------------------------------- How can i check ipv6 equipment in SNMP ? From 7575d9ab04cd94611f6aa317f1a36d6628b996d5 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Wed, 13 Dec 2017 16:25:04 +0100 Subject: [PATCH 16/77] aws: working progress --- cloud/aws/custom/awscli.pm | 183 ----------- cloud/aws/custom/paws.pm | 179 +++++++++++ cloud/aws/mode/cloudwatch.pm | 296 ------------------ cloud/aws/mode/cloudwatchgetmetrics.pm | 246 +++++++++++++++ cloud/aws/mode/instancestate.pm | 207 ------------ cloud/aws/mode/list.pm | 256 --------------- cloud/aws/mode/metrics/ec2instancecpu.pm | 51 --- .../metrics/ec2instancecpucreditbalance.pm | 51 --- .../mode/metrics/ec2instancecpucreditusage.pm | 51 --- cloud/aws/mode/metrics/ec2instancenetwork.pm | 66 ---- cloud/aws/mode/metrics/rdsinstancecpu.pm | 53 ---- cloud/aws/mode/metrics/s3bucketsize.pm | 74 ----- cloud/aws/plugin.pm | 22 +- 13 files changed, 429 insertions(+), 1306 deletions(-) delete mode 100644 cloud/aws/custom/awscli.pm create mode 100644 cloud/aws/custom/paws.pm delete mode 100644 cloud/aws/mode/cloudwatch.pm create mode 100644 cloud/aws/mode/cloudwatchgetmetrics.pm delete mode 100644 cloud/aws/mode/instancestate.pm delete mode 100644 cloud/aws/mode/list.pm delete mode 100644 cloud/aws/mode/metrics/ec2instancecpu.pm delete mode 100644 cloud/aws/mode/metrics/ec2instancecpucreditbalance.pm delete mode 100644 cloud/aws/mode/metrics/ec2instancecpucreditusage.pm delete mode 100644 cloud/aws/mode/metrics/ec2instancenetwork.pm delete mode 100644 cloud/aws/mode/metrics/rdsinstancecpu.pm delete mode 100644 cloud/aws/mode/metrics/s3bucketsize.pm diff --git a/cloud/aws/custom/awscli.pm b/cloud/aws/custom/awscli.pm deleted file mode 100644 index 92947b8e2..000000000 --- a/cloud/aws/custom/awscli.pm +++ /dev/null @@ -1,183 +0,0 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package cloud::aws::custom::awscli; - -use strict; -use warnings; -use JSON; -use centreon::plugins::misc; - -sub new { - my ( $class, %options ) = @_; - my $self = {}; - bless $self, $class; - - # $options{options} = options object - # $options{output} = output object - # $options{exit_value} = integer - # $options{noptions} = integer - - if ( !defined( $options{output} ) ) { - print "Class Custom: Need to specify 'output' argument.\n"; - exit 3; - } - if ( !defined( $options{options} ) ) { - $options{output}->add_option_msg( short_msg => "Class Custom: Need to specify 'options' argument." ); - $options{output}->option_exit(); - } - - if ( !defined( $options{noptions} ) ) { - $options{options}->add_options( arguments => { - "region:s" => { name => 'region' }, - "command:s" => { name => 'command', default => 'aws' }, - "command-path:s" => { name => 'command_path' }, - "sudo" => { name => 'sudo' }, - } ); - } - $options{options}->add_help(package => __PACKAGE__, sections => 'AWSCLI OPTIONS', once => 1); - - $self->{output} = $options{output}; - $self->{mode} = $options{mode}; - return $self; -} - -# Method to manage multiples -sub set_options { - my ( $self, %options ) = @_; - - # options{options_result} - - $self->{option_results} = $options{option_results}; -} - -# Method to manage multiples -sub set_defaults { - my ( $self, %options ) = @_; - - # Manage default value - foreach ( keys %{ $options{default} } ) { - if ( $_ eq $self->{mode} ) { - for ( my $i = 0 ; $i < scalar( @{ $options{default}->{$_} } ) ; $i++ ) - { - foreach my $opt ( keys %{ $options{default}->{$_}[$i] } ) { - if ( !defined( $self->{option_results}->{$opt}[$i] ) ) { - $self->{option_results}->{$opt}[$i] = $options{default}->{$_}[$i]->{$opt}; - } - } - } - } - } -} - -sub check_options { - my ($self, %options) = @_; - return 0; -} - -sub execReq { - my ($self, $options) = @_; - my $jsoncontent; - - if (!defined($options->{output})) { - $options->{output} = 'json'; - } - - my $json = JSON->new; - my $json_encoded = $options->{command} . " " . $options->{subcommand}; - if (defined($self->{option_results}->{region})) { - $json_encoded = $json_encoded . " --region '". $self->{option_results}->{region} . "'"; - } - if (defined($options->{json})) { - $json_encoded = $json_encoded . " --cli-input-json '" . $json->encode( $options->{json} ) . "'"; - } - - $self->{option_results}->{timeout} = 30; - - if ($options->{output} eq 'text') { - $self->{stdout} = centreon::plugins::misc::execute( - output => $self->{output}, - options => $self->{option_results}, - sudo => $self->{option_results}->{sudo}, - command => $self->{option_results}->{command}, - command_path => $self->{option_results}->{command_path}, - command_options => $json_encoded - ); - my @return = split /\n/, $self->{stdout}; - $jsoncontent = $json->encode( [@return] ); - } else { - $jsoncontent = centreon::plugins::misc::execute( - output => $self->{output}, - options => $self->{option_results}, - sudo => $self->{option_results}->{sudo}, - command => $self->{option_results}->{command}, - command_path => $self->{option_results}->{command_path}, - command_options => $json_encoded - ); - } - if ($? > 0) { - $self->{output}->add_option_msg( short_msg => "Cannot run aws" ); - $self->{output}->option_exit(); - } - eval { $self->{command_return} = $json->decode($jsoncontent); }; - if ($@) { - $self->{output}->add_option_msg( short_msg => "Cannot decode json answer" ); - $self->{output}->option_exit(); - } - return $self->{command_return}; -} - -1; - -__END__ - -=head1 NAME - -AWS CLI API - -=head1 SYNOPSIS - -AWS cli API custom mode - -=over 8 - -=item B<--region> - -(optional) The region to use (should be configured directly in aws). - -=item B<--sudo> - -Use 'sudo' to execute the command. - -=item B<--command> - -(optional) Command to get information (Default: 'aws'). - -=item B<--command-path> - -(optional) Command path (Default: none). - -=back - -=head1 DESCRIPTION - -B. - -=cut diff --git a/cloud/aws/custom/paws.pm b/cloud/aws/custom/paws.pm new file mode 100644 index 000000000..69e17b4a2 --- /dev/null +++ b/cloud/aws/custom/paws.pm @@ -0,0 +1,179 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package cloud::aws::custom::paws; + +use strict; +use warnings; +use Paws; +use DateTime; + +sub new { + my ($class, %options) = @_; + my $self = {}; + bless $self, $class; + + if (!defined($options{output})) { + print "Class Custom: Need to specify 'output' argument.\n"; + exit 3; + } + if (!defined($options{options})) { + $options{output}->add_option_msg(short_msg => "Class Custom: Need to specify 'options' argument."); + $options{output}->option_exit(); + } + + if (!defined($options{noptions})) { + $options{options}->add_options(arguments => + { + "aws-secret-key:s" => { name => 'aws_secret_key' }, + "aws-access-key:s" => { name => 'aws_access_key' }, + }); + } + $options{options}->add_help(package => __PACKAGE__, sections => 'AWS OPTIONS', once => 1); + + $self->{output} = $options{output}; + $self->{mode} = $options{mode}; + + return $self; +} + +sub set_options { + my ($self, %options) = @_; + + $self->{option_results} = $options{option_results}; +} + +sub set_defaults { + my ($self, %options) = @_; + + foreach (keys %{$options{default}}) { + if ($_ eq $self->{mode}) { + for (my $i = 0; $i < scalar(@{$options{default}->{$_}}); $i++) { + foreach my $opt (keys %{$options{default}->{$_}[$i]}) { + if (!defined($self->{option_results}->{$opt}[$i])) { + $self->{option_results}->{$opt}[$i] = $options{default}->{$_}[$i]->{$opt}; + } + } + } + } + } +} + +sub check_options { + my ($self, %options) = @_; + + if (defined($self->{option_results}->{aws_secret_key}) && $self->{option_results}->{aws_secret_key} ne '') { + $ENV{AWS_SECRET_KEY} = $self->{option_results}->{aws_secret_key}; + } + if (defined($self->{option_results}->{aws_access_key}) && $self->{option_results}->{aws_access_key} ne '') { + $ENV{AWS_ACCESS_KEY} = $self->{option_results}->{aws_access_key}; + } + + return 0; +} + +sub cloudwatch_get_metrics { + my ($self, %options) = @_; + + my $metric_results = {}; + eval { + my $cw = Paws->service('CloudWatch', region => $options{region}); + my $start_time = DateTime->now->subtract(seconds => $options{timeframe})->iso8601; + my $end_time = DateTime->now->iso8601; + + foreach my $metric_name (@{$options{metrics}}) { + my $metric_result = $cw->GetMetricStatistics( + MetricName => $metric_name, + Namespace => $options{namespace}, + Statistics => $options{statistics}, + #ExtendedStatistics => ['p100'], + EndTime => $end_time, + StartTime => $start_time, + Period => $options{period}, + #Unit => $unit, + Dimensions => $options{dimensions}, + ); + + $metric_results->{$metric_result->{Label}} = { points => 0 }; + foreach my $point (@{$metric_result->{Datapoints}}) { + if (defined($point->{Average})) { + $metric_results->{$metric_result->{Label}}->{average} = 0 if (!defined($metric_results->{$metric_result->{Label}}->{average})); + $metric_results->{$metric_result->{Label}}->{average} += $point->{Average}; + } + if (defined($point->{Minimum})) { + $metric_results->{$metric_result->{Label}}->{minimum} = $point->{Minimum} + if (!defined($metric_results->{$metric_result->{Label}}->{minimum}) || $point->{Minimum} < $metric_results->{$metric_result->{Label}}->{minimum}); + } + if (defined($point->{Maximum})) { + $metric_results->{$metric_result->{Label}}->{maximum} = $point->{Maximum} + if (!defined($metric_results->{$metric_result->{Label}}->{maximum}) || $point->{Maximum} > $metric_results->{$metric_result->{Label}}->{maximum}); + } + if (defined($point->{Sum})) { + $metric_results->{$metric_result->{Label}}->{sum} = 0 if (!defined($metric_results->{$metric_result->{Label}}->{sum})); + $metric_results->{$metric_result->{Label}}->{sum} += $point->{Sum}; + } + + $metric_results->{$metric_result->{Label}}->{points}++; + } + + if (defined($metric_results->{$metric_result->{Label}}->{average})) { + $metric_results->{$metric_result->{Label}}->{average} /= $metric_results->{$metric_result->{Label}}->{points}; + } + } + }; + if ($@) { + $self->{output}->add_option_msg(short_msg => "error: $@"); + $self->{output}->option_exit(); + } + + return $metric_results; +} + +1; + +__END__ + +=head1 NAME + +Amazon AWS + +=head1 SYNOPSIS + +Amazon AWS + +=head1 AWS OPTIONS + +=over 8 + +=item B<--aws-secret-key> + +Set AWS secret key. + +=item B<--aws-access-key> + +Set AWS access key. + +=back + +=head1 DESCRIPTION + +B. + +=cut diff --git a/cloud/aws/mode/cloudwatch.pm b/cloud/aws/mode/cloudwatch.pm deleted file mode 100644 index 9c8822d82..000000000 --- a/cloud/aws/mode/cloudwatch.pm +++ /dev/null @@ -1,296 +0,0 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package cloud::aws::mode::cloudwatch; - -use base qw(centreon::plugins::mode); - -use strict; -use warnings; -use centreon::plugins::misc; -use POSIX; -use JSON; - -my $CloudwatchMetrics = { - cpu => "cloud::aws::mode::metrics::ec2instancecpu", - traffic => "cloud::aws::mode::metrics::ec2instancenetwork", - cpucreditusage => "cloud::aws::mode::metrics::ec2instancecpucreditusage", - cpucreditbalance => "cloud::aws::mode::metrics::ec2instancecpucreditbalance", - bucketsize => "cloud::aws::mode::metrics::s3bucketsize", - rdscpu => "cloud::aws::mode::metrics::rdsinstancecpu", -}; - -my $StatisticsType = "Average,Minimum,Maximum,Sum,SampleCount"; -my $def_endtime = time(); - -my $apiRequest = { - 'command' => 'cloudwatch', - 'subcommand' => 'get-metric-statistics', -}; - -sub new -{ - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options); - bless $self, $class; - - $self->{version} = '0.1'; - - $options{options}->add_options( - arguments => { - "metric:s" => {name => 'metric'}, - "period:s" => {name => 'period', default => 300}, - "starttime:s" => {name => 'starttime'}, - "endtime:s" => {name => 'endtime'}, - "statistics:s" => {name => 'statistics', default => 'Average'}, - "exclude-statistics:s" => {name => 'exclude-statistics'}, - "object:s" => {name => 'object'}, - "warning:s" => {name => 'warning'}, - "critical:s" => {name => 'critical'}, - } - ); - $self->{result} = {}; - - return $self; -} - -sub check_options -{ - my ($self, %options) = @_; - $self->SUPER::init(%options); - - $self->{option_results}->{def_endtime} = $def_endtime; - - if (($self->{perfdata}->threshold_validate(label => 'warning', value => $self->{option_results}->{warning})) == 0) - { - $self->{output}->add_option_msg(short_msg => "Wrong warning threshold '" . $self->{option_results}->{warning} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'critical', value => $self->{option_results}->{critical})) == 0) - { - $self->{output}->add_option_msg(short_msg => "Wrong critical threshold '" . $self->{option_results}->{critical} . "'."); - $self->{output}->option_exit(); - } - - if (!defined($self->{option_results}->{metric})) - { - $self->{output}->add_option_msg( - severity => 'UNKNOWN', - short_msg => "Please give a metric to watch (cpu, disk, ...)." - ); - $self->{output}->option_exit(); - } - - if (!defined($self->{option_results}->{object})) - { - $self->{output}->add_option_msg( - severity => 'UNKNOWN', - short_msg => "Please give the object to request (instanceid, ...)." - ); - $self->{output}->option_exit(); - } - - if (!defined($self->{option_results}->{endtime})) - { - $self->{option_results}->{endtime} = strftime("%FT%H:%M:%S.000Z", gmtime($self->{option_results}->{def_endtime})); - } - - if (!defined($self->{option_results}->{starttime})) - { - $self->{option_results}->{starttime} = strftime("%FT%H:%M:%S.000Z", gmtime($self->{option_results}->{def_endtime} - 600)); - } - - # Getting some parameters - # statistics - if ($self->{option_results}->{statistics} eq 'all') - { - @{$self->{option_results}->{statisticstab}} = split(/,/, $StatisticsType); - } - else - { - @{$self->{option_results}->{statisticstab}} = split(/,/, $self->{option_results}->{statistics}); - foreach my $curstate (@{$self->{option_results}->{statisticstab}}) - { - if (!grep { /^$curstate$/ } split(/,/, $StatisticsType)) - { - $self->{output}->add_option_msg( - severity => 'UNKNOWN', - short_msg => "The statistic $curstate doesn't exist." - ); - $self->{output}->option_exit(); - } - } - } - - # exclusions - if (defined($self->{option_results}->{'exclude-statistics'})) - { - my @excludetab = split(/,/, $self->{option_results}->{'exclude-statistics'}); - my %array1 = map { $_ => 1 } @excludetab; - @{$self->{option_results}->{statisticstab}} = grep { not $array1{$_} } @{$self->{option_results}->{statisticstab}}; - } - - # Force Average statistic - if (!grep $_ eq 'Average', @{$self->{option_results}->{statisticstab}}) - { - my $statistics = join(',', @{$self->{option_results}->{statisticstab}}); - if (!$statistics eq '') - { - $statistics = $statistics . ',Average'; - } - else - { - $statistics = 'Average'; - } - @{$self->{option_results}->{statisticstab}} = split(/,/, $statistics); - } -} - -sub manage_selection -{ - my ($self, $metric) = @_; - my @result; - - my @Dimensions = ( - { - 'Value' => $self->{option_results}->{object}, - 'Name' => $metric->{ObjectName} - } - ); - - if (defined($metric->{ExtraDimensions})) - { - push @Dimensions, $metric->{ExtraDimensions}; - } - - $apiRequest->{json} = { - 'StartTime' => $self->{option_results}->{starttime}, - 'EndTime' => $self->{option_results}->{endtime}, - 'Period' => $self->{option_results}->{period}, - 'MetricName' => $metric->{MetricName}, - 'Unit' => $metric->{Unit}, - 'Statistics' => $self->{option_results}->{statisticstab}, - 'Dimensions' => [@Dimensions], - 'Namespace' => $metric->{NameSpace} - }; -} - -sub run -{ - my ($self, %options) = @_; - - my ($msg, $exit_code, $awsapi); - - if ( defined( $CloudwatchMetrics->{ $self->{option_results}->{metric} } ) ) { - centreon::plugins::misc::mymodule_load(output => $options{output}, module => $CloudwatchMetrics->{$self->{option_results}->{metric}}, - error_msg => "Cannot load module '" . $CloudwatchMetrics->{$self->{option_results}->{metric}} . "'."); - my $func = $CloudwatchMetrics->{$self->{option_results}->{metric}}->can('cloudwatchCheck'); - $func->($self); - } else { - $self->{output}->add_option_msg( short_msg => "Wrong option. Cannot find metric '" . $self->{option_results}->{metric} . "'." ); - $self->{output}->option_exit(); - } - - foreach my $metric (@{$self->{metric}}) - { - $self->manage_selection($metric); - $awsapi = $options{custom}; - $self->{command_return} = $awsapi->execReq($apiRequest); - $self->{output}->perfdata_add( - label => sprintf($metric->{Labels}->{PerfData}, unit => $metric->{Labels}->{Unit}), - value => sprintf($metric->{Labels}->{Value}, $self->{command_return}->{Datapoints}[0]->{Average}), - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'), - - #min => 0, - #max => 100 - ); - $exit_code = $self->{perfdata}->threshold_check( - value => $self->{command_return}->{Datapoints}[0]->{Average}, - threshold => [{label => 'critical', 'exit_litteral' => 'critical'}, {label => 'warning', exit_litteral => 'warning'}] - ); - - $self->{output}->output_add(long_msg => sprintf($metric->{Labels}->{LongOutput}, $self->{command_return}->{Datapoints}[0]->{Average})); - - $self->{output}->output_add( - severity => $exit_code, - short_msg => sprintf($metric->{Labels}->{ShortOutput}, $self->{command_return}->{Datapoints}[0]->{Average}) - ); - } - - $self->{output}->display(); - $self->{output}->exit(); -} - -1; - -__END__ - -=head1 MODE - -Get cloudwatch metrics. -This doc is partly based on the official AWS CLI documentation. - -=over 8 - -=item B<--exclude-statistics> - -(optional) Statistics to exclude from the query. 'Average' can't be excluded. - -=item B<--metric> - -Metric to query. - -=item B<--period> - -(optional) The granularity, in seconds, of the returned datapoints. period must be at least 60 seconds and must be a multiple of 60. The default value is 300. - -=item B<--start-time> - -(optional) The time stamp to use for determining the first datapoint to return. The value specified is inclusive; results include datapoints with the time stamp specified. -exemple: 2014-04-09T23:18:00 - -=item B<--end-time> - -(optional) The time stamp to use for determining the last datapoint to return. The value specified is exclusive; results will include datapoints up to the time stamp specified. -exemple: 2014-04-09T23:18:00 - -=item B<--statistics> - -(optional) The metric statistics to return. For information about specific statistics returned by GetMetricStatistics, go to statistics in the Amazon CloudWatch Developer Guide. -Valid Values: Average | Sum | SampleCount | Maximum | Minimum -Average is the default and always included. -'all' for all statistics values. - -=item B<--object> - -Name of the object to request (InstanceId for an EC2 instance, for exemple). - -=item B<--warning> - -(optional) Threshold warning. - -=item B<--critical> - -(optional) Threshold critical. - -=back - -=cut diff --git a/cloud/aws/mode/cloudwatchgetmetrics.pm b/cloud/aws/mode/cloudwatchgetmetrics.pm new file mode 100644 index 000000000..c0d16faa4 --- /dev/null +++ b/cloud/aws/mode/cloudwatchgetmetrics.pm @@ -0,0 +1,246 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package cloud::aws::mode::cloudwatchgetmetrics; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +sub custom_metric_perfdata { + my ($self, %options) = @_; + + $self->{output}->perfdata_add(label => $self->{result_values}->{perf_label}, + value => $self->{result_values}->{value}, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-metric'), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-metric'), + ); + +} + +sub custom_metric_threshold { + my ($self, %options) = @_; + + my $exit = $self->{perfdata}->threshold_check(value => $self->{result_values}->{value}, + threshold => [ { label => 'critical-metric', exit_litteral => 'critical' }, + { label => 'warning-metric', exit_litteral => 'warning' } ]); + return $exit; +} + + +sub custom_metric_output { + my ($self, %options) = @_; + + my $msg = "Metric '" . $self->{result_values}->{display} . "' value is " . $self->{result_values}->{value}; + return $msg; +} + +sub custom_metric_calc { + my ($self, %options) = @_; + + $self->{result_values}->{value} = $options{new_datas}->{$self->{instance} . '_value'}; + $self->{result_values}->{perf_label} = $options{new_datas}->{$self->{instance} . '_perf_label'}; + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'}; + return 0; +} + + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'metrics', type => 1, message_multiple => 'All metrics are ok' }, + ]; + + $self->{maps_counters}->{metrics} = [ + { label => 'metric', set => { + key_values => [ { name => 'value' }, { name => 'perf_label' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_metric_calc'), + closure_custom_output => $self->can('custom_metric_output'), + closure_custom_perfdata => $self->can('custom_metric_perfdata'), + closure_custom_threshold_check => $self->can('custom_metric_threshold'), + } + } + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "region:s" => { name => 'region' }, + "namespace:s" => { name => 'namespace' }, + "dimension:s%" => { name => 'dimension' }, + "metric:s@" => { name => 'metric' }, + "statistic:s@" => { name => 'statistic' }, + "timeframe:s" => { name => 'timeframe', default => 600 }, + "period:s" => { name => 'period', default => 60 }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + if (!defined($self->{option_results}->{region}) || $self->{option_results}->{namespace} eq '') { + $self->{output}->add_option_msg(short_msg => "Need to specify --region option."); + $self->{output}->option_exit(); + } + if (!defined($self->{option_results}->{namespace}) || $self->{option_results}->{namespace} eq '') { + $self->{output}->add_option_msg(short_msg => "Need to specify --namespace option."); + $self->{output}->option_exit(); + } + + $self->{aws_metrics} = []; + if (defined($self->{option_results}->{metric})) { + $self->{aws_metrics} = [@{$self->{option_results}->{metric}}]; + } + if (scalar(@{$self->{aws_metrics}}) <= 0) { + $self->{output}->add_option_msg(short_msg => "Need to specify --metric option."); + $self->{output}->option_exit(); + } + + $self->{dimension_name} = ''; + my $append = ''; + $self->{aws_dimensions} = []; + if (defined($self->{option_results}->{dimension})) { + foreach (keys %{$self->{option_results}->{dimension}}) { + push @{$self->{aws_dimensions}}, { Name => $_, Value => $self->{option_results}->{dimension}->{$_} }; + $self->{dimension_name} .= $append . $_ . '.' . $self->{option_results}->{dimension}->{$_}; + $append = '-'; + } + } + if ($self->{dimension_name} eq '') { + $self->{output}->add_option_msg(short_msg => "Need to specify --dimension option."); + $self->{output}->option_exit(); + } + + $self->{aws_statistics} = ['Average']; + if (defined($self->{option_results}->{statistic})) { + $self->{aws_statistics} = []; + foreach my $stat (@{$self->{option_results}->{statistic}}) { + if ($stat ne '') { + push @{$self->{aws_statistics}}, ucfirst(lc($stat)); + } + } + } + + foreach my $metric_name ($self->{aws_metrics}) { + foreach my $statistic ($self->{aws_statistics}) { + my $entry = { label => lc($metric_name) . '-' . $statistic, set => { + key_values => [ { name => $metric_name . '_' . $statistic }, { name => 'display' } ], + output_template => $metric_name . ' ' . ucfirst($statistic) . ' : %s', + perfdatas => [ + { label => lc($metric_name) . '_' . $statistic, value => $metric_name . '_' . $statistic . '_absolute', template => '%s', + label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }; + push @{$self->{maps_counters}->{dimensions}}, $entry; + } + } +} + +sub manage_selection { + my ($self, %options) = @_; + + my $metric_results = $options{custom}->cloudwatch_get_metrics( + region => $self->{option_results}->{region}, + namespace => $self->{option_results}->{namespace}, + dimensions => $self->{aws_dimensions}, + metrics => $self->{aws_metrics}, + statistics => $self->{aws_statistics}, + timeframe => $self->{option_results}->{timeframe}, + period => $self->{option_results}->{period}, + ); + + $self->{metrics} = {}; + foreach my $label (keys %{$metric_results}) { + foreach my $stat (('minimum', 'maximum', 'average', 'sum')) { + next if (!defined($metric_results->{$label}->{$stat})); + + $self->{metrics}->{$self->{dimension_name} . '_' . $label . '_' . $stat} = { + display => $self->{dimension_name} . '_' . $label . '_' . $stat, + value => $metric_results->{$label}->{$stat}, + perf_label => $label . '_' . $stat, + }; + } + } +} + +1; + +__END__ + +=head1 MODE + +Check cloudwatch metrics (same dimension and namespace). + +Example: +perl centreon_plugins.pl --plugin=cloud::aws::plugin --custommode=paws --mode=cloudwatch-get-metrics --region=eu-west-1 --namespace=AWS/EC2 --dimension=InstanceId=i-01622936185e32a45 --metric=CPUUtilization --metric=CPUCreditUsage --statistic=average --statistic=max –-period=60 --timeframe=600 --warning-metric= --critical-metric= + +=over 8 + +=item B<--region> + +Set the region name (Required). + +=item B<--namespace> + +Set cloudwatch namespace (Required). + +=item B<--dimension> + +Set cloudwatch dimensions (Required). + +=item B<--metric> + +Set cloudwatch metrics (Required). + +=item B<--statistic> + +Set cloudwatch statistics (Default: 'average'). + +=item B<--period> + +Set period in seconds (Default: 60). + +=item B<--timeframe> + +Set timeframe in seconds (Default: 600). + +=item B<--warning-metric> + +Threshold warning. + +=item B<--critical-metric> + +Threshold critical. + +=back + +=cut diff --git a/cloud/aws/mode/instancestate.pm b/cloud/aws/mode/instancestate.pm deleted file mode 100644 index 7e4798f60..000000000 --- a/cloud/aws/mode/instancestate.pm +++ /dev/null @@ -1,207 +0,0 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package cloud::aws::mode::instancestate; - -use base qw(centreon::plugins::mode); - -use strict; -use warnings; -use centreon::plugins::misc; -use Data::Dumper; -use JSON; - -my %EC2_instance_states = ( - 'pending' => 'WARNING', - 'running' => 'OK', - 'shutting-down' => 'CRITICAL', - 'terminated' => 'CRITICAL', - 'stopping' => 'CRITICAL', - 'stopped' => 'CRITICAL' -); - -my $apiRequest = { - 'command' => 'ec2', - 'subcommand' => 'describe-instance-status', -}; - -sub new { - my ( $class, %options ) = @_; - my $self = $class->SUPER::new( package => __PACKAGE__, %options ); - bless $self, $class; - - $self->{version} = '0.1'; - - $options{options}->add_options( - arguments => { - "state:s" => { name => 'state', default => 'all' }, - "no-includeallinstances" => { name => 'includeallinstances' }, - "exclude:s" => { name => 'exclude' }, - "instanceid:s" => { name => 'instanceid' } - } - ); - $self->{result} = {}; - return $self; -} - -sub check_options { - my ($self, %options) = @_; - $self->SUPER::init(%options); -} - -sub manage_selection { - my ($self, %options) = @_; - - my (@result, $awsapi); - - # Getting some parameters - # includeallinstances - if (defined($self->{option_results}->{includeallinstances})) { - $self->{option_results}->{includeallinstances} = JSON::false; - } else { - $self->{option_results}->{includeallinstances} = JSON::true; - } - - # states - if ($self->{option_results}->{state} eq 'all') { - @{$self->{option_results}->{statetab} } = keys %EC2_instance_states; - } else { - @{$self->{option_results}->{statetab}} = split /,/, $self->{option_results}->{state}; - foreach my $curstate (@{$self->{option_results}->{statetab}}) { - if (!grep { /^$curstate$/ } keys(%EC2_instance_states)) { - $self->{output}->add_option_msg(severity => 'UNKNOWN', short_msg => "The state doesn't exist."); - $self->{output}->option_exit(); - } - } - } - - # exclusions - if (defined($self->{option_results}->{exclude})) { - my @excludetab = split /,/, $self->{option_results}->{exclude}; - my %array1 = map { $_ => 1 } @excludetab; - @{$self->{option_results}->{statetab}} = grep { not $array1{$_} } @{$self->{option_results}->{statetab}}; - } - my $states = join(',',@{$self->{option_results}->{statetab}}); - - # Getting data from AWS - # Building JSON - $apiRequest->{json} = { - 'DryRun' => JSON::false, - 'IncludeAllInstances' => $self->{option_results}->{includeallinstances}, - 'Filters' => [ - { - 'Name' => 'instance-state-name', - 'Values' => $self->{option_results}->{statetab}, - }], - }; - # InstanceIds - if (defined($self->{option_results}->{instanceid})) { - my @InstanceIds = split(/,/, $self->{option_results}->{instanceid}); - @{$apiRequest->{json}{InstanceIds}} = @InstanceIds; - } - - # Requesting API - $awsapi = $options{custom}; - $self->{command_return} = $awsapi->execReq($apiRequest); - - # Compute data - $self->{option_results}->{instancecount}->{total} = 0; - foreach my $curstate (@{$self->{option_results}->{statetab}}) { - $self->{option_results}->{instancecount}->{$curstate} = 0; - } - foreach my $l (@{$self->{command_return}->{InstanceStatuses}}) { - $self->{result}->{instance}->{$l->{InstanceId}} = $l->{InstanceState}->{Name}; - - # long output for each instance - $self->{output}->output_add(long_msg => "'" . $l->{InstanceId} . "' [state = " . $l->{InstanceState}->{Name} . ']'); - - foreach my $curstate (@{$self->{option_results}->{statetab}}) { - if ($l->{InstanceState}->{Name} eq $curstate) { - $self->{option_results}->{instancecount}->{$curstate}++; - } - } - $self->{option_results}->{instancecount}->{total}++; - } -} - -sub run { - my ( $self, %options ) = @_; - - my ( $msg, $exit_code ); - my $old_status = 'OK'; - - $self->manage_selection(%options); - - # Send formated data to Centreon - # Perf data - $self->{output}->perfdata_add( - label => 'total', - value => $self->{option_results}->{instancecount}->{'total'}, - ); - - foreach my $curstate (@{$self->{option_results}->{statetab}}) { - $self->{output}->perfdata_add( - label => $curstate, - value => $self->{option_results}->{instancecount}->{$curstate}, - ); - - # Most critical state - if ($self->{option_results}->{instancecount}->{$curstate} != 0) { - $exit_code = $EC2_instance_states{$curstate}; - $exit_code = $self->{output}->get_most_critical(status => [ $exit_code, $old_status ]); - $old_status = $exit_code; - } - } - - # Output message - $self->{output}->output_add( - severity => $exit_code, - short_msg => sprintf("Total instances: %s", $self->{option_results}->{instancecount}->{total}) - ); - - $self->{output}->display(); - $self->{output}->exit(); -} - -1; - -__END__ - -=head1 MODE - -Get the state of your EC2 instances (running, stopped, ...) - -=over 8 - -=item B<--state> - -(optional) Specific state to query. - -=item B<--no-includeallinstances> - -(optional) Includes the health status for running instances only. - -=item B<--exclude> - -(optional) State to exclude from the query. - -=back - -=cut diff --git a/cloud/aws/mode/list.pm b/cloud/aws/mode/list.pm deleted file mode 100644 index e21c4329d..000000000 --- a/cloud/aws/mode/list.pm +++ /dev/null @@ -1,256 +0,0 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -package cloud::aws::mode::list; - -use base qw(centreon::plugins::mode); -use strict; -use warnings; -use centreon::plugins::misc; -use JSON; - -my $AWSServices = 'EC2,S3,RDS'; -my @Disco_service_tab = ('EC2', 'RDS'); -my $EC2_instance_states = 'running,stopped'; -my $awsapi; - -sub new -{ - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options); - bless $self, $class; - $self->{version} = '0.1'; - $options{options}->add_options( - arguments => { - "service:s" => {name => 'service', default => $AWSServices}, - "exclude-service:s" => {name => 'exclude_service'}, - "ec2-state:s"=>{name=> 'ec2_state', default => $EC2_instance_states}, - "ec2-exclude-state:s" => {name => 'ec2_exclude_state'}, - } - ); - $self->{result} = {}; - return $self; -} - -sub check_options { - my ($self, %options) = @_; - $self->SUPER::init(%options); -} - -sub api_request { - my ($self, %options) = @_; - - @{$self->{option_results}->{servicetab}} = split( /,/, $self->{option_results}->{service} ); - # exclusions - if (defined($self->{option_results}->{exclude_service})) { - my @excludetab = split /,/, $self->{option_results}->{exclude_service}; - my %array1 = map { $_ => 1 } @excludetab; - @{$self->{option_results}->{servicetab}} = grep { not $array1{$_} } @{$self->{option_results}->{servicetab}}; - } - - foreach my $service (@{$self->{option_results}->{servicetab}}) { - $self->{result}->{count}->{$service} = 0; - if ($service eq 'EC2') { - $self->EC2(%options); - } elsif ($service eq 'S3') { - $self->S3(%options); - } elsif ($service eq 'RDS') { - $self->RDS(%options); - } else { - $self->{output}->add_option_msg(short_msg => "Service $service doesn't exists" ); - $self->{output}->option_exit(); - } - } -} - -sub EC2 -{ - my ($self, %options) = @_; - my $apiRequest = { - 'command' => 'ec2', - 'subcommand' => 'describe-instances', - }; - - # Building JSON - my @ec2_statestab = split(/,/, $self->{option_results}->{ec2_state}); - # exclusions - if (defined($self->{option_results}->{ec2_exclude_state})) { - my @excludetab = split /,/, $self->{option_results}->{ec2_exclude_state}; - my %array1 = map { $_ => 1 } @excludetab; - @ec2_statestab = grep { not $array1{$_} } @ec2_statestab; - } - $apiRequest->{json} = { - 'DryRun' => JSON::false, - 'Filters' => [ - { - 'Name' => 'instance-state-name', - 'Values' => [@ec2_statestab], - } - ], - }; - - # Requesting API - $awsapi = $options{custom}; - $self->{command_return} = $awsapi->execReq($apiRequest); - - # Compute data - foreach my $instance (@{$self->{command_return}->{Reservations}}) { - foreach my $tags (@{$instance->{Instances}[0]->{Tags}}) { - if ($tags->{Key} eq 'Name') { - $instance->{Instances}[0]->{Name} = $tags->{Value}; - } - } - $self->{result}->{'EC2'}->{$instance->{Instances}[0]->{InstanceId}} = - { - State => $instance->{Instances}[0]->{State}->{Name}, - Name => $instance->{Instances}[0]->{Name} - }; - - $self->{result}->{count}->{'EC2'}++; - } -} - -sub S3 -{ - my ($self, %options) = @_; - my (@buckets, @return) = (); - my $apiRequest = { - 'command' => 's3', - 'subcommand' => 'ls', - 'output' => 'text' - }; - - # Requesting API - $awsapi = $options{custom}; - $self->{command_return} = $awsapi->execReq($apiRequest); - - # Exec command - foreach my $line (@{$self->{command_return}}) { - my ($date, $time, $name) = split / /, $line; - my $creationdate = $date . " " . $time; - push(@buckets, { Name => $name, CreationDate => $creationdate }); - } - - # Compute data - foreach my $bucket (@buckets) { - $self->{result}->{'S3'}->{$bucket->{Name}} = - {'Creation date' => $bucket->{CreationDate}}; - $self->{result}->{count}->{'S3'}++; - } -} - -sub RDS -{ - my ($self, %options) = @_; - my $apiRequest = { - 'command' => 'rds', - 'subcommand' => 'describe-db-instances', - }; - - # Requesting API - $awsapi = $options{custom}; - $self->{command_return} = $awsapi->execReq($apiRequest); - - # Compute data - foreach my $dbinstance (@{$self->{command_return}->{DBInstances}}) { - $self->{result}->{'RDS'}->{$dbinstance->{DBInstanceIdentifier}} = { - State => $dbinstance->{DBInstanceStatus}, - Name => $dbinstance->{DBInstanceIdentifier} - }; - $self->{result}->{count}->{RDS}++; - } -} - -sub disco_format { - my ($self, %options) = @_; - - my $names = [ 'name', 'id', 'state', 'service' ]; - $self->{output}->add_disco_format( elements => $names ); -} - -sub disco_show -{ - my ($self, %options) = @_; - $self->api_request(%options); - foreach my $service (@Disco_service_tab) { - foreach my $device (keys %{$self->{result}->{$service}}) { - $self->{output}->add_disco_entry( - name => $self->{result}->{$service}->{$device}->{Name}, - id => $device, - state => $self->{result}->{$service}->{$device}->{State}, - service => $service, - ); - } - } -} - -sub run -{ - my ($self, %options) = @_; - $self->api_request(%options); - - # Send formated data to Centreon - foreach my $service (@{$self->{option_results}->{servicetab}}) { - $self->{output}->output_add(long_msg => sprintf("AWS service: %s", $service)); - foreach my $device (keys %{$self->{result}->{$service}}) { - my $output = $device . " ["; - foreach my $value (sort(keys %{$self->{result}->{$service}->{$device}})) { - $output = $output . $value . " = " . $self->{result}->{$service}->{$device}->{$value} . ", "; - } - $output =~ s/, $//; - $output = $output . "]"; - $self->{output}->output_add(long_msg => $output); - } - $self->{output}->output_add(short_msg => sprintf("%s: %s", $service, $self->{result}->{count}->{$service})); - } - $self->{output}->display( - nolabel => 1, - force_ignore_perfdata => 1, - force_long_output => 1 - ); - $self->{output}->exit(); -} -1; -__END__ - -=head1 MODE - -List your EC2, RDS instance and S3 buckets - -=over 8 - -=item B<--service> - -(optional) List one particular service. - -=item B<--exclude-service> - -(optional) Service to exclude from the scan. - -=item B<--ec2-state> - -(optional) State to request (default: 'running','stopped') - -=item B<--ec2-exclude-state> - -(optional) State to exclude from the scan. - -=back - -=cut diff --git a/cloud/aws/mode/metrics/ec2instancecpu.pm b/cloud/aws/mode/metrics/ec2instancecpu.pm deleted file mode 100644 index 0fbd0276b..000000000 --- a/cloud/aws/mode/metrics/ec2instancecpu.pm +++ /dev/null @@ -1,51 +0,0 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package cloud::aws::mode::metrics::ec2instancecpu; - -use strict; -use warnings; -use Exporter; -our @ISA = qw(Exporter); -our @EXPORT = qw(&cloudwatchCheck); - -my @Param; - -$Param[0] = { - 'NameSpace' => 'AWS/EC2', - 'MetricName' => 'CPUUtilization', - 'ObjectName' => 'InstanceId', - 'Unit' => 'Percent', - 'Labels' => { - 'ShortOutput' => "CPU Usage is %.2f%%", - 'LongOutput' => "CPU Usage is %.2f%%", - 'PerfData' => 'cpu', - 'Unit' => '%', - 'Value' => "%.2f", - } -}; - -sub cloudwatchCheck { - my ($self) = @_; - - @{ $self->{metric} } = @Param; -} - -1; diff --git a/cloud/aws/mode/metrics/ec2instancecpucreditbalance.pm b/cloud/aws/mode/metrics/ec2instancecpucreditbalance.pm deleted file mode 100644 index 2eccc18d2..000000000 --- a/cloud/aws/mode/metrics/ec2instancecpucreditbalance.pm +++ /dev/null @@ -1,51 +0,0 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package cloud::aws::mode::metrics::ec2instancecpucreditbalance; - -use strict; -use warnings; -use Exporter; -our @ISA = qw(Exporter); -our @EXPORT = qw(&cloudwatchCheck); - -my @Param; - -$Param[0] = { - 'NameSpace' => 'AWS/EC2', - 'MetricName' => 'CPUCreditBalance', - 'ObjectName' => 'InstanceId', - 'Unit' => 'Count', - 'Labels' => { - 'ShortOutput' => "CPUCreditBalance is %.2f%%", - 'LongOutput' => "CPUCreditBalance is %.2f%%", - 'PerfData' => 'CPUCreditBalance', - 'Unit' => 'Count', - 'Value' => "%.2f", - } -}; - -sub cloudwatchCheck { - my ($self) = @_; - - @{ $self->{metric} } = @Param; -} - -1; diff --git a/cloud/aws/mode/metrics/ec2instancecpucreditusage.pm b/cloud/aws/mode/metrics/ec2instancecpucreditusage.pm deleted file mode 100644 index a98f9e083..000000000 --- a/cloud/aws/mode/metrics/ec2instancecpucreditusage.pm +++ /dev/null @@ -1,51 +0,0 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package cloud::aws::mode::metrics::ec2instancecpucreditusage; - -use strict; -use warnings; -use Exporter; -our @ISA = qw(Exporter); -our @EXPORT = qw(&cloudwatchCheck); - -my @Param; - -$Param[0] = { - 'NameSpace' => 'AWS/EC2', - 'MetricName' => 'CPUCreditUsage', - 'ObjectName' => 'InstanceId', - 'Unit' => 'Count', - 'Labels' => { - 'ShortOutput' => "CPUCreditUsage is %.2f%%", - 'LongOutput' => "CPUCreditUsage is %.2f%%", - 'PerfData' => 'CPUCreditUsage', - 'Unit' => 'Count', - 'Value' => "%.2f", - } -}; - -sub cloudwatchCheck { - my ($self) = @_; - - @{ $self->{metric} } = @Param; -} - -1; diff --git a/cloud/aws/mode/metrics/ec2instancenetwork.pm b/cloud/aws/mode/metrics/ec2instancenetwork.pm deleted file mode 100644 index 394edacc2..000000000 --- a/cloud/aws/mode/metrics/ec2instancenetwork.pm +++ /dev/null @@ -1,66 +0,0 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package cloud::aws::mode::metrics::ec2instancenetwork; - -use strict; -use warnings; -use Data::Dumper; -use Exporter; -our @ISA = qw(Exporter); -our @EXPORT = qw(&cloudwatchCheck); - -my @Param; - -$Param[0] = { - 'NameSpace' => 'AWS/EC2', - 'MetricName' => 'NetworkIn', - 'ObjectName' => 'InstanceId', - 'Unit' => 'Bytes', - 'Labels' => { - 'ShortOutput' => "Traffic In %s Bytes", - 'LongOutput' => "Traffic In %s Bytes", - 'PerfData' => 'traffic_in', - 'Unit' => 'B', - 'Value' => "%.2f", - } -}; - -$Param[1] = { - 'NameSpace' => 'AWS/EC2', - 'MetricName' => 'NetworkOut', - 'ObjectName' => 'InstanceId', - 'Unit' => 'Bytes', - 'Labels' => { - 'ShortOutput' => "Traffic Out %s Bytes", - 'LongOutput' => "Traffic Out %s Bytes", - 'PerfData' => 'traffic_out', - 'Unit' => 'B', - 'Value' => "%.2f", - } -}; - -sub cloudwatchCheck { - my ($self) = @_; - - @{ $self->{metric} } = @Param; -} - -1; diff --git a/cloud/aws/mode/metrics/rdsinstancecpu.pm b/cloud/aws/mode/metrics/rdsinstancecpu.pm deleted file mode 100644 index 614598b25..000000000 --- a/cloud/aws/mode/metrics/rdsinstancecpu.pm +++ /dev/null @@ -1,53 +0,0 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package cloud::aws::mode::metrics::rdsinstancecpu; - -use strict; -use warnings; -use POSIX; -use Exporter; -our @ISA = qw(Exporter); -our @EXPORT = qw(&cloudwatchCheck); - -my @Param; - -$Param[0] = { - 'NameSpace' => 'AWS/RDS', - 'MetricName' => 'CPUUtilization', - 'ObjectName' => 'DBInstanceIdentifier', - 'Unit' => 'Percent', - 'Labels' => { - 'ShortOutput' => "CPU Usage is %.2f%%", - 'LongOutput' => "CPU Usage is %.2f%%", - 'PerfData' => 'cpu', - 'Unit' => '%', - 'Value' => "%.2f", - } -}; - -sub cloudwatchCheck { - my ($self) = @_; - - @{ $self->{metric} } = @Param; - $self->{option_results}->{starttime} = strftime( "%FT%H:%M:%S.000Z", gmtime( $self->{option_results}->{def_endtime} - 300 ) ); -} - -1; diff --git a/cloud/aws/mode/metrics/s3bucketsize.pm b/cloud/aws/mode/metrics/s3bucketsize.pm deleted file mode 100644 index 98c794218..000000000 --- a/cloud/aws/mode/metrics/s3bucketsize.pm +++ /dev/null @@ -1,74 +0,0 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package cloud::aws::mode::metrics::s3bucketsize; - -use strict; -use warnings; -use POSIX; -use Exporter; -our @ISA = qw(Exporter); -our @EXPORT = qw(&cloudwatchCheck); - -my @Param; - -$Param[0] = { - 'NameSpace' => 'AWS/S3', - 'MetricName' => 'BucketSizeBytes', - 'ObjectName' => 'BucketName', - 'Unit' => 'Bytes', - 'ExtraDimensions' => { - 'Name' => 'StorageType', - 'Value'=> 'StandardStorage' - }, - 'Labels' => { - 'ShortOutput' => "Bucket size is %s Bytes", - 'LongOutput' => "Bucket size is %s Bytes", - 'PerfData' => 'size', - 'Unit' => 'Bytes', - 'Value' => "%s", - } -}; -$Param[1] = { - 'NameSpace' => 'AWS/S3', - 'MetricName' => 'NumberOfObjects', - 'ObjectName' => 'BucketName', - 'Unit' => 'Count', - 'ExtraDimensions' => { - 'Name' => 'StorageType', - 'Value'=> 'AllStorageTypes' - }, - 'Labels' => { - 'ShortOutput' => "Number of objects is %s", - 'LongOutput' => "Number of objects is %s", - 'PerfData' => 'number', - 'Unit' => '', - 'Value' => "%s", - } -}; - -sub cloudwatchCheck { - my ($self) = @_; - - @{ $self->{metric} } = @Param; - $self->{option_results}->{starttime} = strftime( "%FT%H:%M:%S.000Z", gmtime( $self->{option_results}->{def_endtime} - 86400 ) ); -} - -1; diff --git a/cloud/aws/plugin.pm b/cloud/aws/plugin.pm index 40bf1da07..b19dd9a3a 100644 --- a/cloud/aws/plugin.pm +++ b/cloud/aws/plugin.pm @@ -31,21 +31,16 @@ sub new { $self->{version} = '0.1'; %{ $self->{modes} } = ( - 'instancestate' => 'cloud::aws::mode::instancestate', - 'list' => 'cloud::aws::mode::list', - 'cloudwatch' => 'cloud::aws::mode::cloudwatch', + 'cloudwatch-get-alarms' => 'cloud::aws::mode::cloudwatchgetalarms', + 'cloudwatch-get-metrics' => 'cloud::aws::mode::cloudwatchgetmetrics', + 'cloudwatch-list-metrics' => 'cloud::aws::mode::cloudwatchlistmetrics', ); + $self->{custom_modes}{paws} = 'cloud::aws::custom::paws'; $self->{custom_modes}{awscli} = 'cloud::aws::custom::awscli'; return $self; } -sub init { - my ( $self, %options ) = @_; - - $self->SUPER::init(%options); -} - 1; __END__ @@ -54,13 +49,4 @@ __END__ Check Amazon AWS cloud. -=over 8 - -For this plugin to work, you have to install and configure: -awscli (http://docs.aws.amazon.com/cli/latest/userguide/installing.html#install-bundle-other-os). -perl-json -perl-Module-Load - -=back - =cut From ad2e0ca332826072da65d2ae5095422e52d3362e Mon Sep 17 00:00:00 2001 From: qgarnier Date: Wed, 13 Dec 2017 20:10:09 +0100 Subject: [PATCH 17/77] Fix #826 --- centreon/common/jvm/mode/memorydetailed.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/centreon/common/jvm/mode/memorydetailed.pm b/centreon/common/jvm/mode/memorydetailed.pm index 62ed2883d..044f18df0 100644 --- a/centreon/common/jvm/mode/memorydetailed.pm +++ b/centreon/common/jvm/mode/memorydetailed.pm @@ -201,8 +201,8 @@ sub manage_selection { my $result = $options{custom}->get_attributes(request => $self->{request}, nothing_quit => 1); $self->{mem} = {}; - foreach my $key (keys %$result) { - $key =~ /name=(.*?),type/; + foreach my $key (keys %$result) { + $key =~ /(?:[:,])name=(.*?)(?:,|$)/; my $memtype = $1; if (!defined($mapping_memory{$memtype})) { From 4ea5b2a7e56a07432a81e3decbf40d315c6dbd2c Mon Sep 17 00:00:00 2001 From: qgarnier Date: Thu, 14 Dec 2017 08:54:16 +0100 Subject: [PATCH 18/77] add debug for nsclient request query --- apps/nsclient/restapi/mode/query.pm | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/nsclient/restapi/mode/query.pm b/apps/nsclient/restapi/mode/query.pm index 182b763b9..339d94b71 100644 --- a/apps/nsclient/restapi/mode/query.pm +++ b/apps/nsclient/restapi/mode/query.pm @@ -158,6 +158,7 @@ sub run { } my ($content) = $self->{http}->request(url_path => '/query/' . $self->{option_results}->{command} . '?' . $encoded_args); + $self->{output}->output_add(long_msg => "nsclient return = " . $content, debug => 1); $self->check_nscp_result(content => $content); $self->{output}->exit(); From 26f55b10c2a4f465167fa50fa265899abc5244d0 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Thu, 14 Dec 2017 09:39:43 +0100 Subject: [PATCH 19/77] add awscli custom mode --- cloud/aws/custom/awscli.pm | 213 +++++++++++++++++++++++++++++++++++++ 1 file changed, 213 insertions(+) create mode 100644 cloud/aws/custom/awscli.pm diff --git a/cloud/aws/custom/awscli.pm b/cloud/aws/custom/awscli.pm new file mode 100644 index 000000000..c74a0cdc4 --- /dev/null +++ b/cloud/aws/custom/awscli.pm @@ -0,0 +1,213 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package cloud::aws::custom::awscli; + +use strict; +use warnings; +use DateTime; +use JSON::XS; + +sub new { + my ($class, %options) = @_; + my $self = {}; + bless $self, $class; + + if (!defined($options{output})) { + print "Class Custom: Need to specify 'output' argument.\n"; + exit 3; + } + if (!defined($options{options})) { + $options{output}->add_option_msg(short_msg => "Class Custom: Need to specify 'options' argument."); + $options{output}->option_exit(); + } + + if (!defined($options{noptions})) { + $options{options}->add_options(arguments => + { + "aws-secret-key:s" => { name => 'aws_secret_key' }, + "aws-access-key:s" => { name => 'aws_access_key' }, + "timeout:s" => { name => 'timeout', default => 50 }, + "sudo" => { name => 'sudo' }, + "command:s" => { name => 'command', default => 'aws' }, + "command-path:s" => { name => 'command_path' }, + "command-options:s" => { name => 'command_options', default => '' }, + }); + } + $options{options}->add_help(package => __PACKAGE__, sections => 'AWS OPTIONS', once => 1); + + $self->{output} = $options{output}; + $self->{mode} = $options{mode}; + + return $self; +} + +sub set_options { + my ($self, %options) = @_; + + $self->{option_results} = $options{option_results}; +} + +sub set_defaults { + my ($self, %options) = @_; + + foreach (keys %{$options{default}}) { + if ($_ eq $self->{mode}) { + for (my $i = 0; $i < scalar(@{$options{default}->{$_}}); $i++) { + foreach my $opt (keys %{$options{default}->{$_}[$i]}) { + if (!defined($self->{option_results}->{$opt}[$i])) { + $self->{option_results}->{$opt}[$i] = $options{default}->{$_}[$i]->{$opt}; + } + } + } + } + } +} + +sub check_options { + my ($self, %options) = @_; + + if (defined($self->{option_results}->{aws_secret_key}) && $self->{option_results}->{aws_secret_key} ne '') { + $ENV{AWS_SECRET_ACCESS_KEY} = $self->{option_results}->{aws_secret_key}; + } + if (defined($self->{option_results}->{aws_access_key}) && $self->{option_results}->{aws_access_key} ne '') { + $ENV{AWS_ACCESS_KEY_ID} = $self->{option_results}->{aws_access_key}; + } + + return 0; +} + +sub cloudwatch_get_metrics_set_cmd { + my ($self, %options) = @_; + + return if (defined($self->{option_results}->{command_options}) && $self->{option_results}->{command_options} ne ''); + $self->{option_results}->{command_options} = + "cloudwatch get-metric-statistics --region $options{region} --namespace $options{namespace} --metric-name '$options{metric_name}' --start-time $options{start_time} --end-time $options{end_time} --period $options{period} --statistics " . join(' ', @{$options{statistics}}) . " --output json --dimensions"; + foreach my $entry (@{$options{dimensions}}) { + $self->{option_results}->{command_options} .= " 'Name=$entry->{Name},Value=$entry->{Value}'"; + } +} + +sub cloudwatch_get_metrics { + my ($self, %options) = @_; + + my $metric_results = {}; + my $start_time = DateTime->now->subtract(seconds => $options{timeframe})->iso8601; + my $end_time = DateTime->now->iso8601; + + foreach my $metric_name (@{$options{metrics}}) { + $self->cloudwatch_get_metrics_set_cmd(%options, metric_name => $metric_name, start_time => $start_time, end_time => $end_time); + my ($response) = centreon::plugins::misc::execute(output => $self->{output}, + options => $self->{option_results}, + sudo => $self->{option_results}->{sudo}, + command => $self->{option_results}->{command}, + command_path => $self->{option_results}->{command_path}, + command_options => $self->{option_results}->{command_options}); + my $metric_result; + eval { + $metric_result = JSON::XS->new->utf8->decode($response); + }; + if ($@) { + $self->{output}->add_option_msg(short_msg => "Cannot decode json response: $@"); + $self->{output}->option_exit(); + } + + $metric_results->{$metric_result->{Label}} = { points => 0 }; + foreach my $point (@{$metric_result->{Datapoints}}) { + if (defined($point->{Average})) { + $metric_results->{$metric_result->{Label}}->{average} = 0 if (!defined($metric_results->{$metric_result->{Label}}->{average})); + $metric_results->{$metric_result->{Label}}->{average} += $point->{Average}; + } + if (defined($point->{Minimum})) { + $metric_results->{$metric_result->{Label}}->{minimum} = $point->{Minimum} + if (!defined($metric_results->{$metric_result->{Label}}->{minimum}) || $point->{Minimum} < $metric_results->{$metric_result->{Label}}->{minimum}); + } + if (defined($point->{Maximum})) { + $metric_results->{$metric_result->{Label}}->{maximum} = $point->{Maximum} + if (!defined($metric_results->{$metric_result->{Label}}->{maximum}) || $point->{Maximum} > $metric_results->{$metric_result->{Label}}->{maximum}); + } + if (defined($point->{Sum})) { + $metric_results->{$metric_result->{Label}}->{sum} = 0 if (!defined($metric_results->{$metric_result->{Label}}->{sum})); + $metric_results->{$metric_result->{Label}}->{sum} += $point->{Sum}; + } + + $metric_results->{$metric_result->{Label}}->{points}++; + } + + if (defined($metric_results->{$metric_result->{Label}}->{average})) { + $metric_results->{$metric_result->{Label}}->{average} /= $metric_results->{$metric_result->{Label}}->{points}; + } + } + + return $metric_results; +} + +1; + +__END__ + +=head1 NAME + +Amazon AWS + +=head1 SYNOPSIS + +Amazon AWS + +=head1 AWS OPTIONS + +=over 8 + +=item B<--aws-secret-key> + +Set AWS secret key. + +=item B<--aws-access-key> + +Set AWS access key. + +=item B<--timeout> + +Set timeout (Default: 50). + +=item B<--sudo> + +Use 'sudo' to execute the command. + +=item B<--command> + +Command to get information (Default: 'aws'). +Can be changed if you have output in a file. + +=item B<--command-path> + +Command path (Default: none). + +=item B<--command-options> + +Command options (Default: none). + +=back + +=head1 DESCRIPTION + +B. + +=cut From 578e6933472d011c8505f93daa37d426dd21b375 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Thu, 14 Dec 2017 11:07:52 +0100 Subject: [PATCH 20/77] add mode aws cloudwatch-get-alarms --- cloud/aws/custom/awscli.pm | 66 ++++++-- cloud/aws/custom/paws.pm | 26 ++- cloud/aws/mode/cloudwatchgetalarms.pm | 223 +++++++++++++++++++++++++ cloud/aws/mode/cloudwatchgetmetrics.pm | 2 +- 4 files changed, 305 insertions(+), 12 deletions(-) create mode 100644 cloud/aws/mode/cloudwatchgetalarms.pm diff --git a/cloud/aws/custom/awscli.pm b/cloud/aws/custom/awscli.pm index c74a0cdc4..45e4b6fec 100644 --- a/cloud/aws/custom/awscli.pm +++ b/cloud/aws/custom/awscli.pm @@ -98,11 +98,13 @@ sub cloudwatch_get_metrics_set_cmd { my ($self, %options) = @_; return if (defined($self->{option_results}->{command_options}) && $self->{option_results}->{command_options} ne ''); - $self->{option_results}->{command_options} = + my $cmd_options = "cloudwatch get-metric-statistics --region $options{region} --namespace $options{namespace} --metric-name '$options{metric_name}' --start-time $options{start_time} --end-time $options{end_time} --period $options{period} --statistics " . join(' ', @{$options{statistics}}) . " --output json --dimensions"; foreach my $entry (@{$options{dimensions}}) { - $self->{option_results}->{command_options} .= " 'Name=$entry->{Name},Value=$entry->{Value}'"; - } + $cmd_options .= " 'Name=$entry->{Name},Value=$entry->{Value}'"; + } + + return $cmd_options; } sub cloudwatch_get_metrics { @@ -113,13 +115,15 @@ sub cloudwatch_get_metrics { my $end_time = DateTime->now->iso8601; foreach my $metric_name (@{$options{metrics}}) { - $self->cloudwatch_get_metrics_set_cmd(%options, metric_name => $metric_name, start_time => $start_time, end_time => $end_time); - my ($response) = centreon::plugins::misc::execute(output => $self->{output}, - options => $self->{option_results}, - sudo => $self->{option_results}->{sudo}, - command => $self->{option_results}->{command}, - command_path => $self->{option_results}->{command_path}, - command_options => $self->{option_results}->{command_options}); + my $cmd_options = $self->cloudwatch_get_metrics_set_cmd(%options, metric_name => $metric_name, start_time => $start_time, end_time => $end_time); + my ($response) = centreon::plugins::misc::execute( + output => $self->{output}, + options => $self->{option_results}, + sudo => $self->{option_results}->{sudo}, + command => $self->{option_results}->{command}, + command_path => $self->{option_results}->{command_path}, + command_options => $cmd_options); + my $metric_result; eval { $metric_result = JSON::XS->new->utf8->decode($response); @@ -159,6 +163,48 @@ sub cloudwatch_get_metrics { return $metric_results; } +sub cloudwatch_get_alarms_set_cmd { + my ($self, %options) = @_; + + return if (defined($self->{option_results}->{command_options}) && $self->{option_results}->{command_options} ne ''); + my $cmd_options = "cloudwatch describe-alarms --region $options{region} --output json"; + return $cmd_options; +} + +sub cloudwatch_get_alarms { + my ($self, %options) = @_; + + my $cmd_options = $self->cloudwatch_get_alarms_set_cmd(%options); + my ($response) = centreon::plugins::misc::execute( + output => $self->{output}, + options => $self->{option_results}, + sudo => $self->{option_results}->{sudo}, + command => $self->{option_results}->{command}, + command_path => $self->{option_results}->{command_path}, + command_options => $cmd_options + ); + my $alarm_result; + eval { + $alarm_result = JSON::XS->new->utf8->decode($response); + }; + if ($@) { + $self->{output}->add_option_msg(short_msg => "Cannot decode json response: $@"); + $self->{output}->option_exit(); + } + + my $alarm_results = []; + foreach my $alarm (@{$alarm_result->{MetricAlarms}}) { + push @$alarm_results, { + AlarmName => $alarm->{AlarmName}, + StateValue => $alarm->{StateValue}, + MetricName => $alarm->{MetricName}, + StateReason => $alarm->{StateReason}, + StateUpdatedTimestamp => $alarm->{StateUpdatedTimestamp}, + }; + } + return $alarm_results; +} + 1; __END__ diff --git a/cloud/aws/custom/paws.pm b/cloud/aws/custom/paws.pm index 69e17b4a2..e5d3da182 100644 --- a/cloud/aws/custom/paws.pm +++ b/cloud/aws/custom/paws.pm @@ -94,7 +94,7 @@ sub cloudwatch_get_metrics { my $metric_results = {}; eval { - my $cw = Paws->service('CloudWatch', region => $options{region}); + my $cw = Paws->service('CloudWatch', region => $options{region}); my $start_time = DateTime->now->subtract(seconds => $options{timeframe})->iso8601; my $end_time = DateTime->now->iso8601; @@ -146,6 +146,30 @@ sub cloudwatch_get_metrics { return $metric_results; } +sub cloudwatch_get_alarms { + my ($self, %options) = @_; + + my $alarm_results = []; + eval { + my $cw = Paws->service('CloudWatch', region => $options{region}); + my $alarms = $cw->DescribeAlarms(); + foreach my $alarm (@{$alarms->{MetricAlarms}}) { + push @$alarm_results, { + AlarmName => $alarm->{AlarmName}, + StateValue => $alarm->{StateValue}, + MetricName => $alarm->{MetricName}, + StateReason => $alarm->{StateReason}, + StateUpdatedTimestamp => $alarm->{StateUpdatedTimestamp}, + }; + } + }; + if ($@) { + $self->{output}->add_option_msg(short_msg => "error: $@"); + $self->{output}->option_exit(); + } + return $alarm_results; +} + 1; __END__ diff --git a/cloud/aws/mode/cloudwatchgetalarms.pm b/cloud/aws/mode/cloudwatchgetalarms.pm new file mode 100644 index 000000000..c37a83bfa --- /dev/null +++ b/cloud/aws/mode/cloudwatchgetalarms.pm @@ -0,0 +1,223 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package cloud::aws::mode::cloudwatchgetalarms; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use centreon::plugins::misc; +use centreon::plugins::statefile; + +my $instance_mode; + +sub custom_status_threshold { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && + eval "$instance_mode->{option_results}->{critical_status}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && + eval "$instance_mode->{option_results}->{warning_status}") { + $status = 'warning'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_status_output { + my ($self, %options) = @_; + + my $msg = sprintf("alarm [name: %s] [state: %s] [metric: %s] [reason: %s] %s", $self->{result_values}->{alarm_name}, + $self->{result_values}->{state_value}, $self->{result_values}->{metric_name}, + $self->{result_values}->{state_reason}, centreon::plugins::misc::change_seconds(value => $self->{result_values}->{last_update})); + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{alarm_name} = $options{new_datas}->{$self->{instance} . '_AlarmName'}; + $self->{result_values}->{state_value} = $options{new_datas}->{$self->{instance} . '_StateValue'}; + $self->{result_values}->{metric_name} = $options{new_datas}->{$self->{instance} . '_MetricName'}; + $self->{result_values}->{last_update} = $options{new_datas}->{$self->{instance} . '_LastUpdate'}; + $self->{result_values}->{state_reason} = $options{new_datas}->{$self->{instance} . '_StateReason'}; + return 0; +} + + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'alarms', type => 2, message_multiple => '0 problem(s) detected', display_counter_problem => { label => 'alerts', min => 0 }, + group => [ { name => 'alarm', skipped_code => { -11 => 1 } } ] + } + ]; + + $self->{maps_counters}->{alarm} = [ + { label => 'status', threshold => 0, set => { + key_values => [ { name => 'AlarmName' }, { name => 'StateValue' }, { name => 'MetricName' }, { name => 'StateReason' }, { name => 'LastUpdate' } ], + closure_custom_calc => $self->can('custom_status_calc'), + closure_custom_output => $self->can('custom_status_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "region:s" => { name => 'region' }, + "filter-alarm-name:s" => { name => 'filter_alarm_name' }, + "warning-status:s" => { name => 'warning_status', default => '%{state_value} =~ /INSUFFICIENT_DATA/i' }, + "critical-status:s" => { name => 'critical_status', default => '%{state_value} =~ /ALARM/i' }, + "memory" => { name => 'memory' }, + }); + + centreon::plugins::misc::mymodule_load(output => $self->{output}, module => 'Date::Parse', + error_msg => "Cannot load module 'Date::Parse'."); + $self->{statefile_cache} = centreon::plugins::statefile->new(%options); + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + if (!defined($self->{option_results}->{region}) || $self->{option_results}->{region} eq '') { + $self->{output}->add_option_msg(short_msg => "Need to specify --region option."); + $self->{output}->option_exit(); + } + $instance_mode = $self; + $self->change_macros(); + + if (defined($self->{option_results}->{memory})) { + $self->{statefile_cache}->check_options(%options); + } +} + +sub change_macros { + my ($self, %options) = @_; + + foreach (('warning_status', 'critical_status')) { + if (defined($self->{option_results}->{$_})) { + $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; + } + } +} + +sub manage_selection { + my ($self, %options) = @_; + + $self->{alarms}->{global} = { alarm => {} }; + my $alarm_results = $options{custom}->cloudwatch_get_alarms( + region => $self->{option_results}->{region}, + ); + + my $last_time; + if (defined($self->{option_results}->{memory})) { + $self->{statefile_cache}->read(statefile => 'cache_aws_' . $self->{mode} . '_' . $self->{option_results}->{region}); + $last_time = $self->{statefile_cache}->get(name => 'last_time'); + } + + my ($i, $current_time) = (1, time()); + foreach my $alarm (@{$alarm_results}) { + my $create_time = Date::Parse::str2time($alarm->{StateUpdatedTimestamp}); + if (!defined($create_time)) { + $self->{manager}->{output}->output_add(severity => 'UNKNOWN', + short_msg => "Can't Parse date '" . $alarm->{StateUpdatedTimestamp} . "'"); + next; + } + + next if (defined($self->{option_results}->{memory}) && defined($last_time) && $last_time > $create_time); + if (defined($self->{option_results}->{filter_alarm_name}) && $self->{option_results}->{filter_alarm_name} ne '' && + $alarm->{AlarmName} !~ /$self->{option_results}->{filter_alarm_name}/) { + $self->{output}->output_add(long_msg => "skipping '" . $alarm->{AlarmName} . "': no matching filter.", debug => 1); + next; + } + + my $diff_time = $current_time - $create_time; + + $self->{alarms}->{global}->{alarm}->{$i} = { + %$alarm, + LastUpdate => $diff_time, + }; + $i++; + } + + if (defined($self->{option_results}->{memory})) { + $self->{statefile_cache}->write(data => { last_time => $current_time }); + } +} + +1; + +__END__ + +=head1 MODE + +Check cloudwatch alarms. + +=over 8 + +=item B<--region> + +Set the region name (Required). + +=item B<--filter-alarm-name> + +Filter by alarm name (can be a regexp). + +=item B<--warning-status> + +Set warning threshold for status (Default: '%{state_value} =~ /INSUFFICIENT_DATA/i') +Can used special variables like: %{alarm_name}, %{state_value}, %{metric_name}, %{last_update} + +=item B<--critical-status> + +Set critical threshold for status (Default: '%{state_value} =~ /ALARM/i'). +Can used special variables like: %{alarm_name}, %{state_value}, %{metric_name}, %{last_update} + +=item B<--memory> + +Only check new alarms. + +=back + +=cut diff --git a/cloud/aws/mode/cloudwatchgetmetrics.pm b/cloud/aws/mode/cloudwatchgetmetrics.pm index c0d16faa4..de9908b48 100644 --- a/cloud/aws/mode/cloudwatchgetmetrics.pm +++ b/cloud/aws/mode/cloudwatchgetmetrics.pm @@ -106,7 +106,7 @@ sub check_options { my ($self, %options) = @_; $self->SUPER::check_options(%options); - if (!defined($self->{option_results}->{region}) || $self->{option_results}->{namespace} eq '') { + if (!defined($self->{option_results}->{region}) || $self->{option_results}->{region} eq '') { $self->{output}->add_option_msg(short_msg => "Need to specify --region option."); $self->{output}->option_exit(); } From 4a06e02be66847b380f26c41fdfcd4f737c6dc80 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Thu, 14 Dec 2017 13:37:47 +0100 Subject: [PATCH 21/77] add cloudwatch list metrics mode --- cloud/aws/custom/awscli.pm | 32 ++++++ cloud/aws/custom/paws.pm | 33 ++++++ cloud/aws/mode/cloudwatchlistmetrics.pm | 127 ++++++++++++++++++++++++ 3 files changed, 192 insertions(+) create mode 100644 cloud/aws/mode/cloudwatchlistmetrics.pm diff --git a/cloud/aws/custom/awscli.pm b/cloud/aws/custom/awscli.pm index 45e4b6fec..b56b4115e 100644 --- a/cloud/aws/custom/awscli.pm +++ b/cloud/aws/custom/awscli.pm @@ -205,6 +205,38 @@ sub cloudwatch_get_alarms { return $alarm_results; } +sub cloudwatch_list_metrics_set_cmd { + my ($self, %options) = @_; + + return if (defined($self->{option_results}->{command_options}) && $self->{option_results}->{command_options} ne ''); + my $cmd_options = "cloudwatch list-metrics --region $options{region} --output json"; + return $cmd_options; +} + +sub cloudwatch_list_metrics { + my ($self, %options) = @_; + + my $cmd_options = $self->cloudwatch_list_metrics_set_cmd(%options); + my ($response) = centreon::plugins::misc::execute( + output => $self->{output}, + options => $self->{option_results}, + sudo => $self->{option_results}->{sudo}, + command => $self->{option_results}->{command}, + command_path => $self->{option_results}->{command_path}, + command_options => $cmd_options + ); + my $list_metrics; + eval { + $list_metrics = JSON::XS->new->utf8->decode($response); + }; + if ($@) { + $self->{output}->add_option_msg(short_msg => "Cannot decode json response: $@"); + $self->{output}->option_exit(); + } + + return $list_metrics->{Metrics}; +} + 1; __END__ diff --git a/cloud/aws/custom/paws.pm b/cloud/aws/custom/paws.pm index e5d3da182..b93e4d2c3 100644 --- a/cloud/aws/custom/paws.pm +++ b/cloud/aws/custom/paws.pm @@ -170,6 +170,39 @@ sub cloudwatch_get_alarms { return $alarm_results; } +sub cloudwatch_list_metrics { + my ($self, %options) = @_; + + my $metric_results = []; + eval { + my $cw = Paws->service('CloudWatch', region => $options{region}); + my %options = (); + $options{Namespace} = $options{namespace} if (defined($options{namespace})); + while ((my $list_metrics = $cw->ListMetrics(%options))) { + foreach (@{$list_metrics->{Metrics}}) { + my $dimensions = []; + foreach my $dimension (@{$_->{Dimensions}}) { + push @$dimensions, { Name => $dimension->{Name}, Value => $dimension->{Value} }; + } + push @{$metric_results}, { + Namespace => $_->{Namespace}, + MetricName => $_->{MetricName}, + Dimensions => $dimensions, + }; + } + + last if (!defined($list_metrics->{NextToken})); + $options{NextToken} = $list_metrics->{NextToken}; + } + }; + if ($@) { + $self->{output}->add_option_msg(short_msg => "error: $@"); + $self->{output}->option_exit(); + } + + return $metric_results; +} + 1; __END__ diff --git a/cloud/aws/mode/cloudwatchlistmetrics.pm b/cloud/aws/mode/cloudwatchlistmetrics.pm new file mode 100644 index 000000000..b76d37802 --- /dev/null +++ b/cloud/aws/mode/cloudwatchlistmetrics.pm @@ -0,0 +1,127 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package cloud::aws::mode::cloudwatchlistmetrics; + +use base qw(centreon::plugins::mode); + +use strict; +use warnings; + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "region:s" => { name => 'region' }, + "namespace:s" => { name => 'namespace' }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::init(%options); + + if (!defined($self->{option_results}->{region}) || $self->{option_results}->{region} eq '') { + $self->{output}->add_option_msg(short_msg => "Need to specify --region option."); + $self->{output}->option_exit(); + } +} + +sub manage_selection { + my ($self, %options) = @_; + + $self->{metrics} = $options{custom}->cloudwatch_list_metrics(region => $self->{option_results}->{region}, namespace => $self->{option_results}->{namespace}); +} + +sub get_dimensions_str { + my ($self, %options) = @_; + + my $dimensions = ''; + my $append = ''; + foreach (@{$options{dimensions}}) { + $dimensions .= $append . "Name=$_->{Name},Value=$_->{Value}"; + $append = ','; + } + + return $dimensions; +} + +sub run { + my ($self, %options) = @_; + + $self->manage_selection(%options); + foreach (@{$self->{metrics}}) { + $self->{output}->output_add(long_msg => sprintf("[Namespace = %s][Dimensions = %s][Metric = %s]", + $_->{Namespace}, $self->get_dimensions_str(dimensions => $_->{Dimensions}), $_->{MetricName})); + } + + $self->{output}->output_add(severity => 'OK', + short_msg => 'List metrics:'); + $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); + $self->{output}->exit(); +} + +sub disco_format { + my ($self, %options) = @_; + + $self->{output}->add_disco_format(elements => ['namespace', 'metric', 'dimensions']); +} + +sub disco_show { + my ($self, %options) = @_; + + $self->manage_selection(%options); + foreach (@{$self->{metrics}}) { + $self->{output}->add_disco_entry( + namespace => $_->{Namespace}, + metric => $_->{MetricName}, + dimensions => $self->get_dimensions_str(dimensions => $_->{Dimensions}), + ); + } +} + +1; + +__END__ + +=head1 MODE + +List cloudwatch metrics. + +=over 8 + +=item B<--region> + +Set the region name (Required). + +=item B<--namespace> + +Set cloudwatch namespace. + +=back + +=cut + From 21218cb0bd3bd3eb1900132d964031382fb136bd Mon Sep 17 00:00:00 2001 From: Colin GAGNAIRE Date: Thu, 14 Dec 2017 15:47:24 +0100 Subject: [PATCH 22/77] Add password option on rediscli custom mode --- apps/redis/cli/custom/rediscli.pm | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/apps/redis/cli/custom/rediscli.pm b/apps/redis/cli/custom/rediscli.pm index 5b95f8e02..d3226c96c 100644 --- a/apps/redis/cli/custom/rediscli.pm +++ b/apps/redis/cli/custom/rediscli.pm @@ -44,6 +44,7 @@ sub new { { "hostname:s" => { name => 'hostname' }, "port:s" => { name => 'port' }, + "password:s" => { name => 'password' }, }); } $options{options}->add_help(package => __PACKAGE__, sections => 'REDIS CLI OPTIONS', once => 1); @@ -81,6 +82,7 @@ sub check_options { $self->{hostname} = $self->{option_results}->{hostname}; $self->{port} = $self->{option_results}->{port}; + $self->{password} = $self->{option_results}->{password}; if (!defined($self->{hostname})) { $self->{output}->add_option_msg(short_msg => "Need to specify hostname argument."); @@ -104,6 +106,9 @@ sub get_info { my ($self, %options) = @_; $self->{redis} = Redis->new(server => $self->{hostname} . ":" . $self->{port}); + if (defined($self->{password})) { + $self->{redis}->auth($self->{password}); + } my $response = $self->{redis}->info; my $items; @@ -111,6 +116,8 @@ sub get_info { $items->{$attributes} = $response->{$attributes}; } + $self->{redis}->quit(); + return $items; } @@ -138,6 +145,10 @@ Redis hostname. Redis port. +=item B<--password> + +Redis password + =back =head1 DESCRIPTION From ea1be3c98bba80f00ace748c392fe4d5ba72bdc8 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Fri, 15 Dec 2017 10:42:49 +0100 Subject: [PATCH 23/77] add ec2 instance status mode --- cloud/aws/custom/awscli.pm | 37 ++++ cloud/aws/custom/paws.pm | 19 ++ cloud/aws/mode/ec2instancestatus.pm | 266 ++++++++++++++++++++++++++++ cloud/aws/plugin.pm | 1 + 4 files changed, 323 insertions(+) create mode 100644 cloud/aws/mode/ec2instancestatus.pm diff --git a/cloud/aws/custom/awscli.pm b/cloud/aws/custom/awscli.pm index b56b4115e..a4a943446 100644 --- a/cloud/aws/custom/awscli.pm +++ b/cloud/aws/custom/awscli.pm @@ -237,6 +237,43 @@ sub cloudwatch_list_metrics { return $list_metrics->{Metrics}; } +sub ec2_get_instances_status_set_cmd { + my ($self, %options) = @_; + + return if (defined($self->{option_results}->{command_options}) && $self->{option_results}->{command_options} ne ''); + my $cmd_options = "ec2 describe-instance-status --include-all-instances --no-dry-run --region $options{region} --output json"; + return $cmd_options; +} + +sub ec2_get_instances_status { + my ($self, %options) = @_; + + my $cmd_options = $self->ec2_get_instances_status_set_cmd(%options); + my ($response) = centreon::plugins::misc::execute( + output => $self->{output}, + options => $self->{option_results}, + sudo => $self->{option_results}->{sudo}, + command => $self->{option_results}->{command}, + command_path => $self->{option_results}->{command_path}, + command_options => $cmd_options + ); + my $list_instances; + eval { + $list_instances = JSON::XS->new->utf8->decode($response); + }; + if ($@) { + $self->{output}->add_option_msg(short_msg => "Cannot decode json response: $@"); + $self->{output}->option_exit(); + } + + my $instance_results = {}; + foreach (@{$list_instances->{InstanceStatuses}}) { + $instance_results->{$_->{InstanceId}} = { state => $_->{InstanceState}->{Name} }; + } + + return $instance_results; +} + 1; __END__ diff --git a/cloud/aws/custom/paws.pm b/cloud/aws/custom/paws.pm index b93e4d2c3..3f9b7a054 100644 --- a/cloud/aws/custom/paws.pm +++ b/cloud/aws/custom/paws.pm @@ -203,6 +203,25 @@ sub cloudwatch_list_metrics { return $metric_results; } +sub ec2_get_instances_status { + my ($self, %options) = @_; + + my $instance_results = {}; + eval { + my $ec2 = Paws->service('EC2', region => $options{region}); + my $instances = $ec2->DescribeInstanceStatus(DryRun => 0, IncludeAllInstances => 1); + foreach (@{$instances->{InstanceStatuses}}) { + $instance_results->{$_->{InstanceId}} = { state => $_->{InstanceState}->{Name} }; + } + }; + if ($@) { + $self->{output}->add_option_msg(short_msg => "error: $@"); + $self->{output}->option_exit(); + } + + return $instance_results; +} + 1; __END__ diff --git a/cloud/aws/mode/ec2instancestatus.pm b/cloud/aws/mode/ec2instancestatus.pm new file mode 100644 index 000000000..108066fba --- /dev/null +++ b/cloud/aws/mode/ec2instancestatus.pm @@ -0,0 +1,266 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package cloud::aws::mode::ec2instancestatus; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +my $instance_mode; + +sub custom_status_threshold { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + my $label = $self->{label}; + $label =~ s/-/_/g; + if (defined($instance_mode->{option_results}->{'critical_' . $label}) && $instance_mode->{option_results}->{'critical_' . $label} ne '' && + eval "$instance_mode->{option_results}->{'critical_' . $label}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{'warning_' . $label}) && $instance_mode->{option_results}->{'warning_' . $label} ne '' && + eval "$instance_mode->{option_results}->{'warning_' . $label}") { + $status = 'warning'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_status_output { + my ($self, %options) = @_; + + my $msg = sprintf('state : %s', + $self->{result_values}->{health}, $self->{result_values}->{replication_health}); + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{state} = $options{new_datas}->{$self->{instance} . '_state'}; + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'}; + return 0; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0, cb_prefix_output => 'prefix_global_output' }, + { name => 'aws_instances', type => 1, cb_prefix_output => 'prefix_awsinstance_output', message_multiple => 'All instances are ok' }, + ]; + + $self->{maps_counters}->{global} = [ + { label => 'total-pending', set => { + key_values => [ { name => 'pending' } ], + output_template => "pending : '%s'", + perfdatas => [ + { label => 'total_pending', value => 'pending_absolute', template => '%d', min => 0 }, + ], + } + }, + { label => 'total-running', set => { + key_values => [ { name => 'running' } ], + output_template => "running : '%s'", + perfdatas => [ + { label => 'total_running', value => 'running_absolute', template => '%d', min => 0 }, + ], + } + }, + { label => 'total-shutting-down', set => { + key_values => [ { name => 'shutting-down' } ], + output_template => "shutting-down : '%s'", + perfdatas => [ + { label => 'total_shutting_down', value => 'shutting-down_absolute', template => '%d', min => 0 }, + ], + } + }, + { label => 'total-terminated', set => { + key_values => [ { name => 'terminated' } ], + output_template => "terminated : '%s'", + perfdatas => [ + { label => 'total_terminated', value => 'terminated_absolute', template => '%d', min => 0 }, + ], + } + }, + { label => 'total-stopping', set => { + key_values => [ { name => 'stopping' } ], + output_template => "stopping : '%s'", + perfdatas => [ + { label => 'total_stopping', value => 'stopping_absolute', template => '%d', min => 0 }, + ], + } + }, + { label => 'total-stopped', set => { + key_values => [ { name => 'stopped' } ], + output_template => "stopped : '%s'", + perfdatas => [ + { label => 'total_stopped', value => 'stopped_absolute', template => '%d', min => 0 }, + ], + } + }, + ]; + + $self->{maps_counters}->{aws_instances} = [ + { label => 'status', threshold => 0, set => { + key_values => [ { name => 'state' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_nas_status_calc'), + closure_custom_output => $self->can('custom_nas_status_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "region:s" => { name => 'region' }, + "filter-instanceid:s" => { name => 'filter_instanceid' }, + "warning-status:s" => { name => 'warning_status', default => '' }, + "critical-status:s" => { name => 'critical_status', default => '' }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + if (!defined($self->{option_results}->{region}) || $self->{option_results}->{region} eq '') { + $self->{output}->add_option_msg(short_msg => "Need to specify --region option."); + $self->{output}->option_exit(); + } + + $instance_mode = $self; + $self->change_macros(); +} + +sub prefix_global_output { + my ($self, %options) = @_; + + return "Total instances "; +} + +sub prefix_awsinstance_output { + my ($self, %options) = @_; + + return "Instance '" . $options{instance_value}->{display} . "' "; +} + +sub change_macros { + my ($self, %options) = @_; + + foreach (('warning_status', 'critical_status')) { + if (defined($self->{option_results}->{$_})) { + $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; + } + } +} + +sub manage_selection { + my ($self, %options) = @_; + + $self->{global} = { + pending => 0, running => 0, 'shutting-down' => 0, terminated => 0, stopping => 0, stopped => 0, + }; + $self->{aws_instances} = {}; + my $result = $options{custom}->ec2_get_instances_status(region => $self->{option_results}->{region}); + foreach my $instance_id (keys %{$result}) { + if (defined($self->{option_results}->{filter_instanceid}) && $self->{option_results}->{filter_instanceid} ne '' && + $instance_id !~ /$self->{option_results}->{filter_instanceid}/) { + $self->{output}->output_add(long_msg => "skipping '" . $instance_id . "': no matching filter.", debug => 1); + next; + } + + $self->{aws_instances}->{$instance_id} = { + display => $instance_id, + state => $result->{$instance_id}->{state}, + }; + $self->{global}->{$result->{$instance_id}->{state}}++; + } + + if (scalar(keys %{$self->{aws_instances}}) <= 0) { + $self->{output}->add_option_msg(short_msg => "No aws instance found."); + $self->{output}->option_exit(); + } +} + +1; + +__END__ + +=head1 MODE + +Check EC2 instances status. + +=over 8 + +=item B<--filter-counters> + +Only display some counters (regexp can be used). +Example: --filter-counters='^total-running$' + +=item B<--filter-instanceid> + +Filter by instance id (can be a regexp). + +=item B<--warning-status> + +Set warning threshold for status (Default: ''). +Can used special variables like: %{state}, %{display} + +=item B<--critical-status> + +Set critical threshold for status (Default: ''). +Can used special variables like: %{state}, %{display} + +=item B<--warning-*> + +Threshold warning. +Can be: 'total-pending', 'total-running', 'total-shutting-down', +'total-terminated', 'total-stopping', 'total-stopped'. + +=item B<--critical-*> + +Threshold critical. +Can be: 'total-pending', 'total-running', 'total-shutting-down', +'total-terminated', 'total-stopping', 'total-stopped'. + +=back + +=cut diff --git a/cloud/aws/plugin.pm b/cloud/aws/plugin.pm index b19dd9a3a..97bdd955d 100644 --- a/cloud/aws/plugin.pm +++ b/cloud/aws/plugin.pm @@ -34,6 +34,7 @@ sub new { 'cloudwatch-get-alarms' => 'cloud::aws::mode::cloudwatchgetalarms', 'cloudwatch-get-metrics' => 'cloud::aws::mode::cloudwatchgetmetrics', 'cloudwatch-list-metrics' => 'cloud::aws::mode::cloudwatchlistmetrics', + 'ec2-instance-status' => 'cloud::aws::mode::ec2instancestatus', ); $self->{custom_modes}{paws} = 'cloud::aws::custom::paws'; From 1f5a01a035effee95b6f596349062e21e4134429 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Fri, 15 Dec 2017 11:04:07 +0100 Subject: [PATCH 24/77] add aws rds mode --- cloud/aws/custom/awscli.pm | 37 ++++ cloud/aws/custom/paws.pm | 19 ++ cloud/aws/mode/ec2instancestatus.pm | 12 +- cloud/aws/mode/rdsinstancestatus.pm | 266 ++++++++++++++++++++++++++++ cloud/aws/plugin.pm | 1 + 5 files changed, 329 insertions(+), 6 deletions(-) create mode 100644 cloud/aws/mode/rdsinstancestatus.pm diff --git a/cloud/aws/custom/awscli.pm b/cloud/aws/custom/awscli.pm index a4a943446..2359f553f 100644 --- a/cloud/aws/custom/awscli.pm +++ b/cloud/aws/custom/awscli.pm @@ -274,6 +274,43 @@ sub ec2_get_instances_status { return $instance_results; } +sub rds_get_instances_status_set_cmd { + my ($self, %options) = @_; + + return if (defined($self->{option_results}->{command_options}) && $self->{option_results}->{command_options} ne ''); + my $cmd_options = "rds describe-db-instances --region $options{region} --output json"; + return $cmd_options; +} + +sub rds_get_instances_status { + my ($self, %options) = @_; + + my $cmd_options = $self->rds_get_instances_status_set_cmd(%options); + my ($response) = centreon::plugins::misc::execute( + output => $self->{output}, + options => $self->{option_results}, + sudo => $self->{option_results}->{sudo}, + command => $self->{option_results}->{command}, + command_path => $self->{option_results}->{command_path}, + command_options => $cmd_options + ); + my $list_instances; + eval { + $list_instances = JSON::XS->new->utf8->decode($response); + }; + if ($@) { + $self->{output}->add_option_msg(short_msg => "Cannot decode json response: $@"); + $self->{output}->option_exit(); + } + + my $instance_results = {}; + foreach (@{$list_instances->{DBInstances}}) { + $instance_results->{$_->{DBInstanceIdentifier}} = { state => $_->{DBInstanceStatus} }; + } + + return $instance_results; +} + 1; __END__ diff --git a/cloud/aws/custom/paws.pm b/cloud/aws/custom/paws.pm index 3f9b7a054..f6d00b583 100644 --- a/cloud/aws/custom/paws.pm +++ b/cloud/aws/custom/paws.pm @@ -222,6 +222,25 @@ sub ec2_get_instances_status { return $instance_results; } +sub rds_get_instances_status { + my ($self, %options) = @_; + + my $instance_results = {}; + eval { + my $rds = Paws->service('RDS', region => $options{region}); + my $instances = $rds->DescribeDBInstances(); + foreach (@{$instances->{DBInstances}}) { + $instance_results->{$_->{DBInstanceIdentifier}} = { state => $_->{DBInstanceStatus} }; + } + }; + if ($@) { + $self->{output}->add_option_msg(short_msg => "error: $@"); + $self->{output}->option_exit(); + } + + return $instance_results; +} + 1; __END__ diff --git a/cloud/aws/mode/ec2instancestatus.pm b/cloud/aws/mode/ec2instancestatus.pm index 108066fba..d85679aca 100644 --- a/cloud/aws/mode/ec2instancestatus.pm +++ b/cloud/aws/mode/ec2instancestatus.pm @@ -80,7 +80,7 @@ sub set_counters { $self->{maps_counters}->{global} = [ { label => 'total-pending', set => { key_values => [ { name => 'pending' } ], - output_template => "pending : '%s'", + output_template => "pending : %s", perfdatas => [ { label => 'total_pending', value => 'pending_absolute', template => '%d', min => 0 }, ], @@ -88,7 +88,7 @@ sub set_counters { }, { label => 'total-running', set => { key_values => [ { name => 'running' } ], - output_template => "running : '%s'", + output_template => "running : %s", perfdatas => [ { label => 'total_running', value => 'running_absolute', template => '%d', min => 0 }, ], @@ -96,7 +96,7 @@ sub set_counters { }, { label => 'total-shutting-down', set => { key_values => [ { name => 'shutting-down' } ], - output_template => "shutting-down : '%s'", + output_template => "shutting-down : %s", perfdatas => [ { label => 'total_shutting_down', value => 'shutting-down_absolute', template => '%d', min => 0 }, ], @@ -104,7 +104,7 @@ sub set_counters { }, { label => 'total-terminated', set => { key_values => [ { name => 'terminated' } ], - output_template => "terminated : '%s'", + output_template => "terminated : %s", perfdatas => [ { label => 'total_terminated', value => 'terminated_absolute', template => '%d', min => 0 }, ], @@ -112,7 +112,7 @@ sub set_counters { }, { label => 'total-stopping', set => { key_values => [ { name => 'stopping' } ], - output_template => "stopping : '%s'", + output_template => "stopping : %s", perfdatas => [ { label => 'total_stopping', value => 'stopping_absolute', template => '%d', min => 0 }, ], @@ -120,7 +120,7 @@ sub set_counters { }, { label => 'total-stopped', set => { key_values => [ { name => 'stopped' } ], - output_template => "stopped : '%s'", + output_template => "stopped : %s", perfdatas => [ { label => 'total_stopped', value => 'stopped_absolute', template => '%d', min => 0 }, ], diff --git a/cloud/aws/mode/rdsinstancestatus.pm b/cloud/aws/mode/rdsinstancestatus.pm new file mode 100644 index 000000000..a9cbe77fa --- /dev/null +++ b/cloud/aws/mode/rdsinstancestatus.pm @@ -0,0 +1,266 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package cloud::aws::mode::rdsinstancestatus; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +my $instance_mode; + +sub custom_status_threshold { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + my $label = $self->{label}; + $label =~ s/-/_/g; + if (defined($instance_mode->{option_results}->{'critical_' . $label}) && $instance_mode->{option_results}->{'critical_' . $label} ne '' && + eval "$instance_mode->{option_results}->{'critical_' . $label}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{'warning_' . $label}) && $instance_mode->{option_results}->{'warning_' . $label} ne '' && + eval "$instance_mode->{option_results}->{'warning_' . $label}") { + $status = 'warning'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_status_output { + my ($self, %options) = @_; + + my $msg = sprintf('state : %s', + $self->{result_values}->{health}, $self->{result_values}->{replication_health}); + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{state} = $options{new_datas}->{$self->{instance} . '_state'}; + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'}; + return 0; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0, cb_prefix_output => 'prefix_global_output' }, + { name => 'aws_instances', type => 1, cb_prefix_output => 'prefix_awsinstance_output', message_multiple => 'All instances are ok' }, + ]; + + $self->{maps_counters}->{global} = [ + { label => 'total-available', set => { + key_values => [ { name => 'available' } ], + output_template => "available : %s", + perfdatas => [ + { label => 'total_available', value => 'available_absolute', template => '%d', min => 0 }, + ], + } + }, + { label => 'total-failed', set => { + key_values => [ { name => 'failed' } ], + output_template => "failed : %s", + perfdatas => [ + { label => 'total_failed', value => 'failed_absolute', template => '%d', min => 0 }, + ], + } + }, + { label => 'total-backing-up', set => { + key_values => [ { name => 'backing-up' } ], + output_template => "backing-up : %s", + perfdatas => [ + { label => 'total_backing_up', value => 'backing-up_absolute', template => '%d', min => 0 }, + ], + } + }, + { label => 'total-maintenance', set => { + key_values => [ { name => 'maintenance' } ], + output_template => "maintenance : %s", + perfdatas => [ + { label => 'total_maintenance', value => 'maintenance_absolute', template => '%d', min => 0 }, + ], + } + }, + { label => 'total-stopped', set => { + key_values => [ { name => 'stopped' } ], + output_template => "stopped : %s", + perfdatas => [ + { label => 'total_stopped', value => 'stopped_absolute', template => '%d', min => 0 }, + ], + } + }, + { label => 'total-storage-full', set => { + key_values => [ { name => 'storage-full' } ], + output_template => "storage-full : %s", + perfdatas => [ + { label => 'total_storage_full', value => 'storage-full_absolute', template => '%d', min => 0 }, + ], + } + }, + ]; + + $self->{maps_counters}->{aws_instances} = [ + { label => 'status', threshold => 0, set => { + key_values => [ { name => 'state' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_nas_status_calc'), + closure_custom_output => $self->can('custom_nas_status_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "region:s" => { name => 'region' }, + "filter-instanceid:s" => { name => 'filter_instanceid' }, + "warning-status:s" => { name => 'warning_status', default => '' }, + "critical-status:s" => { name => 'critical_status', default => '' }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + if (!defined($self->{option_results}->{region}) || $self->{option_results}->{region} eq '') { + $self->{output}->add_option_msg(short_msg => "Need to specify --region option."); + $self->{output}->option_exit(); + } + + $instance_mode = $self; + $self->change_macros(); +} + +sub prefix_global_output { + my ($self, %options) = @_; + + return "Total instances "; +} + +sub prefix_awsinstance_output { + my ($self, %options) = @_; + + return "Instance '" . $options{instance_value}->{display} . "' "; +} + +sub change_macros { + my ($self, %options) = @_; + + foreach (('warning_status', 'critical_status')) { + if (defined($self->{option_results}->{$_})) { + $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; + } + } +} + +sub manage_selection { + my ($self, %options) = @_; + + $self->{global} = { + available => 0, 'backing-up' => 0, failed => 0, maintenance => 0, stopped => 0, 'storage-full' => 0, + }; + $self->{aws_instances} = {}; + my $result = $options{custom}->rds_get_instances_status(region => $self->{option_results}->{region}); + foreach my $instance_id (keys %{$result}) { + if (defined($self->{option_results}->{filter_instanceid}) && $self->{option_results}->{filter_instanceid} ne '' && + $instance_id !~ /$self->{option_results}->{filter_instanceid}/) { + $self->{output}->output_add(long_msg => "skipping '" . $instance_id . "': no matching filter.", debug => 1); + next; + } + + $self->{aws_instances}->{$instance_id} = { + display => $instance_id, + state => $result->{$instance_id}->{state}, + }; + $self->{global}->{$result->{$instance_id}->{state}}++ if (defined($self->{global}->{$result->{$instance_id}->{state}})); + } + + if (scalar(keys %{$self->{aws_instances}}) <= 0) { + $self->{output}->add_option_msg(short_msg => "No aws rds instance found."); + $self->{output}->option_exit(); + } +} + +1; + +__END__ + +=head1 MODE + +Check RDS instances status. + +=over 8 + +=item B<--filter-counters> + +Only display some counters (regexp can be used). +Example: --filter-counters='^total-available$' + +=item B<--filter-instanceid> + +Filter by instance id (can be a regexp). + +=item B<--warning-status> + +Set warning threshold for status (Default: ''). +Can used special variables like: %{state}, %{display} + +=item B<--critical-status> + +Set critical threshold for status (Default: ''). +Can used special variables like: %{state}, %{display} + +=item B<--warning-*> + +Threshold warning. +Can be: 'total-available', 'total-backing-up', 'total-failed', +'total-maintenance', 'total-stopped', 'total-storage-full'. + +=item B<--critical-*> + +Threshold critical. +Can be: 'total-available', 'total-backing-up', 'total-failed', +'total-maintenance', 'total-stopped', 'total-storage-full'. + +=back + +=cut diff --git a/cloud/aws/plugin.pm b/cloud/aws/plugin.pm index 97bdd955d..bf8e60d84 100644 --- a/cloud/aws/plugin.pm +++ b/cloud/aws/plugin.pm @@ -35,6 +35,7 @@ sub new { 'cloudwatch-get-metrics' => 'cloud::aws::mode::cloudwatchgetmetrics', 'cloudwatch-list-metrics' => 'cloud::aws::mode::cloudwatchlistmetrics', 'ec2-instance-status' => 'cloud::aws::mode::ec2instancestatus', + 'rds-instance-status' => 'cloud::aws::mode::rdsinstancestatus', ); $self->{custom_modes}{paws} = 'cloud::aws::custom::paws'; From f23b3b03cbb4282c4fddb466998212da05a3f731 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Tue, 19 Dec 2017 11:15:11 +0100 Subject: [PATCH 25/77] add purestorage restapi: wip --- storage/purestorage/restapi/custom/api.pm | 269 ++++++++++++++++++ .../purestorage/restapi/mode/volumeusage.pm | 149 ++++++++++ storage/purestorage/restapi/plugin.pm | 49 ++++ 3 files changed, 467 insertions(+) create mode 100644 storage/purestorage/restapi/custom/api.pm create mode 100644 storage/purestorage/restapi/mode/volumeusage.pm create mode 100644 storage/purestorage/restapi/plugin.pm diff --git a/storage/purestorage/restapi/custom/api.pm b/storage/purestorage/restapi/custom/api.pm new file mode 100644 index 000000000..5fe476a4a --- /dev/null +++ b/storage/purestorage/restapi/custom/api.pm @@ -0,0 +1,269 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package storage::purestorage::restapi::custom::api; + +use strict; +use warnings; +use centreon::plugins::http; +use JSON; + +sub new { + my ($class, %options) = @_; + my $self = {}; + bless $self, $class; + + if (!defined($options{output})) { + print "Class Custom: Need to specify 'output' argument.\n"; + exit 3; + } + if (!defined($options{options})) { + $options{output}->add_option_msg(short_msg => "Class Custom: Need to specify 'options' argument."); + $options{output}->option_exit(); + } + + if (!defined($options{noptions})) { + $options{options}->add_options(arguments => + { + "hostname:s" => { name => 'hostname', }, + "username:s" => { name => 'username', }, + "password:s" => { name => 'password', }, + "proxyurl:s" => { name => 'proxyurl', }, + "timeout:s" => { name => 'timeout', }, + }); + } + $options{options}->add_help(package => __PACKAGE__, sections => 'REST API OPTIONS', once => 1); + + $self->{output} = $options{output}; + $self->{mode} = $options{mode}; + $self->{http} = centreon::plugins::http->new(output => $self->{output}); + + return $self; +} + +sub set_options { + my ($self, %options) = @_; + + $self->{option_results} = $options{option_results}; +} + +sub set_defaults { + my ($self, %options) = @_; + + foreach (keys %{$options{default}}) { + if ($_ eq $self->{mode}) { + for (my $i = 0; $i < scalar(@{$options{default}->{$_}}); $i++) { + foreach my $opt (keys %{$options{default}->{$_}[$i]}) { + if (!defined($self->{option_results}->{$opt}[$i])) { + $self->{option_results}->{$opt}[$i] = $options{default}->{$_}[$i]->{$opt}; + } + } + } + } + } +} + +sub check_options { + my ($self, %options) = @_; + + $self->{hostname} = (defined($self->{option_results}->{hostname})) ? $self->{option_results}->{hostname} : undef; + $self->{username} = (defined($self->{option_results}->{username})) ? $self->{option_results}->{username} : undef; + $self->{password} = (defined($self->{option_results}->{password})) ? $self->{option_results}->{password} : undef; + $self->{timeout} = (defined($self->{option_results}->{timeout})) ? $self->{option_results}->{timeout} : 10; + $self->{proxyurl} = (defined($self->{option_results}->{proxyurl})) ? $self->{option_results}->{proxyurl} : undef; + + if (!defined($self->{hostname})) { + $self->{output}->add_option_msg(short_msg => "Need to specify hostname option."); + $self->{output}->option_exit(); + } + if (!defined($self->{username})) { + $self->{output}->add_option_msg(short_msg => "Need to specify username option."); + $self->{output}->option_exit(); + } + if (!defined($self->{password})) { + $self->{output}->add_option_msg(short_msg => "Need to specify password option."); + $self->{output}->option_exit(); + } + + return 0; +} + +sub build_options_for_httplib { + my ($self, %options) = @_; + + $self->{option_results}->{hostname} = $self->{hostname}; + $self->{option_results}->{timeout} = $self->{timeout}; + $self->{option_results}->{port} = 443; + $self->{option_results}->{proto} = 'https'; + $self->{option_results}->{proxyurl} = $self->{proxyurl}; +} + +sub settings { + my ($self, %options) = @_; + + $self->build_options_for_httplib(); + $self->{http}->add_header(key => 'Accept', value => 'application/json'); + $self->{http}->add_header(key => 'Content-Type', value => 'application/json'); + if (defined($self->{session_id})) { + $self->{http}->add_header(key => 'Cookie', value => 'session=' . $self->{session_id}); + } + $self->{http}->set_options(%{$self->{option_results}}); +} + +sub request_api { + my ($self, %options) = @_; + + my $response = $self->{http}->request(method => $options{method}, url_path => $options{url}, + critical_status => '', warning_status => '', unknown_status => ''); + my $decoded; + eval { + $decoded = decode_json($response); + }; + if ($@) { + $self->{output}->output_add(long_msg => $response, debug => 1); + $self->{output}->add_option_msg(short_msg => "Cannot decode json response"); + $self->{output}->option_exit(); + } + if ($response->code() != 200) { + $self->{output}->add_option_msg(short_msg => "Connection issue: " . $decoded->{msg}); + $self->{output}->option_exit(); + } + + return $decoded; +} + +sub get_api_token { + my ($self, %options) = @_; + + my $json_request = { username => $self->{username}, password => $self->{password} }; + my $encoded; + eval { + $encoded = encode_json($json_request); + }; + if ($@) { + $self->{output}->add_option_msg(short_msg => "Cannot encode json request"); + $self->{output}->option_exit(); + } + + $self->settings(); + my $decoded = $self->request_api(method => 'POST', url_path => '/api/1.11/auth/apitoken', query_form_post => $encoded); + if (!defined($decoded->{api_token})) { + $self->{output}->add_option_msg(short_msg => "Cannot get api token"); + $self->{output}->option_exit(); + } + + return $decoded->{api_token}; +} + +sub get_session { + my ($self, %options) = @_; + + my $json_request = { api_token => $options{api_token} }; + my $encoded; + eval { + $encoded = encode_json($json_request); + }; + if ($@) { + $self->{output}->add_option_msg(short_msg => "Cannot encode json request"); + $self->{output}->option_exit(); + } + + $self->settings(); + my $decoded = $self->request_api(method => 'POST', url_path => '/api/1.11/auth/session', query_form_post => $encoded); + my $headers = $self->{http}->get_header(); + my $cookie = $headers->header('Set-Cookie'); + if (!defined($cookie)) { + $self->{output}->add_option_msg(short_msg => "Cannot get session"); + $self->{output}->option_exit(); + } + + $cookie =~ /session=(.*);/; + return $1; +} + +sub connect { + my ($self, %options) = @_; + + my $api_token = $self->get_api_token(); + $self->{session_id} = $self->get_session(api_token => $api_token); +} + +sub get_object { + my ($self, %options) = @_; + + if (!defined($self->{api_token})) { + $self->connect(); + } + + $self->settings(); + return $self->request_api(method => 'GET', url_path => '/api/1.11' . $options{path}); +} + +sub DESTROY { + my $self = shift; + + if (defined($self->{session_id})) { + $self->request_api(method => 'DELETE', url_path => '/api/1.11/auth/session'); + } +} + +1; + +__END__ + +=head1 NAME + +Pure Storage REST API + +=head1 SYNOPSIS + +Pure Storage Rest API custom mode + +=head1 REST API OPTIONS + +=over 8 + +=item B<--hostname> + +PureStorage hostname. + +=item B<--username> + +PureStorage username. + +=item B<--password> + +v password. + +=item B<--proxyurl> + +Proxy URL if any. + +=item B<--timeout> + +Set HTTP timeout in seconds (Default: '10'). + +=back + +=head1 DESCRIPTION + +B. + +=cut diff --git a/storage/purestorage/restapi/mode/volumeusage.pm b/storage/purestorage/restapi/mode/volumeusage.pm new file mode 100644 index 000000000..2b6c25061 --- /dev/null +++ b/storage/purestorage/restapi/mode/volumeusage.pm @@ -0,0 +1,149 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package storage::purestorage::restapi::mode::volumeusage; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'volume', type => 1, cb_prefix_output => 'prefix_volume_output', message_multiple => 'All volumes are ok' }, + ]; + + $self->{maps_counters}->{volume} = [ + { label => 'iops', set => { + key_values => [ { name => 'iops_avg' }, { name => 'display' } ], + output_template => 'Average IOPs : %s', + perfdatas => [ + { label => 'iops', value => 'iops_avg_absolute', template => '%s', + min => 0, unit => 'iops', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'throughput', set => { + key_values => [ { name => 'throughput_avg' }, { name => 'display' } ], + output_template => 'Average Throughput : %s %s', + output_change_bytes => 1, + perfdatas => [ + { label => 'throughput', value => 'throughput_avg_absolute', template => '%s', + min => 0, unit => 'B', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'latency-inner', set => { + key_values => [ { name => 'latency_inner' }, { name => 'display' } ], + output_template => 'Latency Inner : %.6fms', + perfdatas => [ + { label => 'latency_inner', value => 'latency_inner_absolute', template => '%.6f', + min => 0, unit => 'ms', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'latency-outer', set => { + key_values => [ { name => 'latency_outer' }, { name => 'display' } ], + output_template => 'Latency Outer : %.6fms', + perfdatas => [ + { label => 'latency_outer', value => 'latency_outer_absolute', template => '%.6f', + min => 0, unit => 'ms', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "filter-name:s" => { name => 'filter_name' }, + }); + + return $self; +} + +sub prefix_volume_output { + my ($self, %options) = @_; + + return "Volume '" . $options{instance_value}->{display} . "' "; +} + +sub manage_selection { + my ($self, %options) = @_; + + $self->{volume} = {}; + my $result = $options{custom}->get_object(path => '/volume?space=true'); + use Data::Dumper; + print Data::Dumper::Dumper($result); + exit(1); + foreach my $entry (@{$result->{hits}}) { + if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' && + $entry->{volume_name} !~ /$self->{option_results}->{filter_name}/) { + $self->{output}->output_add(long_msg => "skipping '" . $entry->{volume_name} . "': no matching filter.", debug => 1); + next; + } + + $self->{volume}->{$entry->{volume_name}} = { + display => $entry->{volume_name}, + %{$entry}, + }; + } +} + +1; + +__END__ + +=head1 MODE + +Check volume usage. + +=over 8 + +=item B<--filter-counters> + +Only display some counters (regexp can be used). +Example: --filter-counters='^iops$' + +=item B<--filter-name> + +Filter volume name (can be a regexp). + +=item B<--warning-*> + +Threshold warning. +Can be: 'latency-inner', 'latency-outer', 'iops', 'throughput' + +=item B<--critical-*> + +Threshold critical. +Can be: 'latency-inner', 'latency-outer', 'iops', 'throughput' + +=back + +=cut diff --git a/storage/purestorage/restapi/plugin.pm b/storage/purestorage/restapi/plugin.pm new file mode 100644 index 000000000..75525c278 --- /dev/null +++ b/storage/purestorage/restapi/plugin.pm @@ -0,0 +1,49 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package storage::purestorage::restapi::plugin; + +use strict; +use warnings; +use base qw(centreon::plugins::script_custom); + +sub new { + my ( $class, %options ) = @_; + my $self = $class->SUPER::new( package => __PACKAGE__, %options ); + bless $self, $class; + + $self->{version} = '0.1'; + %{$self->{modes}} = ( + 'volume-usage' => 'storage::purestorage::restapi::mode::volumeusage', + ); + + $self->{custom_modes}{api} = 'storage::purestorage::restapi::custom::api'; + return $self; +} + +1; + +__END__ + +=head1 PLUGIN DESCRIPTION + +Check Pure Storage through HTTP/REST API. + +=cut From 371df94c861bdcf30d78981461a48ca7eb9f16da Mon Sep 17 00:00:00 2001 From: qgarnier Date: Tue, 19 Dec 2017 11:31:29 +0100 Subject: [PATCH 26/77] add purestorage restapi: wip --- storage/dell/fluidfs/snmp/mode/volumeusage.pm | 1 - storage/purestorage/restapi/custom/api.pm | 7 +- .../purestorage/restapi/mode/volumeusage.pm | 152 ++++++++++++++---- 3 files changed, 122 insertions(+), 38 deletions(-) diff --git a/storage/dell/fluidfs/snmp/mode/volumeusage.pm b/storage/dell/fluidfs/snmp/mode/volumeusage.pm index e9d092b16..74fb6404f 100644 --- a/storage/dell/fluidfs/snmp/mode/volumeusage.pm +++ b/storage/dell/fluidfs/snmp/mode/volumeusage.pm @@ -211,7 +211,6 @@ Units of thresholds (Default: '%') ('%', 'B'). Thresholds are on free space left. - =back =cut diff --git a/storage/purestorage/restapi/custom/api.pm b/storage/purestorage/restapi/custom/api.pm index 5fe476a4a..01389dc05 100644 --- a/storage/purestorage/restapi/custom/api.pm +++ b/storage/purestorage/restapi/custom/api.pm @@ -130,14 +130,15 @@ sub settings { sub request_api { my ($self, %options) = @_; - my $response = $self->{http}->request(method => $options{method}, url_path => $options{url}, + my $content = $self->{http}->request(method => $options{method}, url_path => $options{url_path}, query_form_post => $options{query_form_post}, critical_status => '', warning_status => '', unknown_status => ''); + my $response = $self->{http}->get_response(); my $decoded; eval { - $decoded = decode_json($response); + $decoded = decode_json($content); }; if ($@) { - $self->{output}->output_add(long_msg => $response, debug => 1); + $self->{output}->output_add(long_msg => $content, debug => 1); $self->{output}->add_option_msg(short_msg => "Cannot decode json response"); $self->{output}->option_exit(); } diff --git a/storage/purestorage/restapi/mode/volumeusage.pm b/storage/purestorage/restapi/mode/volumeusage.pm index 2b6c25061..b1c5964f1 100644 --- a/storage/purestorage/restapi/mode/volumeusage.pm +++ b/storage/purestorage/restapi/mode/volumeusage.pm @@ -25,6 +25,72 @@ use base qw(centreon::plugins::templates::counter); use strict; use warnings; +my $instance_mode; + +sub custom_usage_perfdata { + my ($self, %options) = @_; + + my $label = 'used'; + my $value_perf = $self->{result_values}->{used}; + if (defined($instance_mode->{option_results}->{free})) { + $label = 'free'; + $value_perf = $self->{result_values}->{free}; + } + my $extra_label = ''; + $extra_label = '_' . $self->{result_values}->{display} if (!defined($options{extra_instance}) || $options{extra_instance} != 0); + my %total_options = (); + if ($instance_mode->{option_results}->{units} eq '%') { + $total_options{total} = $self->{result_values}->{total}; + $total_options{cast_int} = 1; + } + + $self->{output}->perfdata_add(label => $label . $extra_label, unit => 'B', + value => $value_perf, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{label}, %total_options), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{label}, %total_options), + min => 0, max => $self->{result_values}->{total}); +} + +sub custom_usage_threshold { + my ($self, %options) = @_; + + my ($exit, $threshold_value); + $threshold_value = $self->{result_values}->{used}; + $threshold_value = $self->{result_values}->{free} if (defined($instance_mode->{option_results}->{free})); + if ($instance_mode->{option_results}->{units} eq '%') { + $threshold_value = $self->{result_values}->{prct_used}; + $threshold_value = $self->{result_values}->{prct_free} if (defined($instance_mode->{option_results}->{free})); + } + $exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{label}, exit_litteral => 'critical' }, { label => 'warning-'. $self->{label}, exit_litteral => 'warning' } ]); + return $exit; +} + +sub custom_usage_output { + my ($self, %options) = @_; + + my ($total_size_value, $total_size_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{total}); + my ($total_used_value, $total_used_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{used}); + my ($total_free_value, $total_free_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{free}); + my $msg = sprintf("Usage Total: %s Used: %s (%.2f%%) Free: %s (%.2f%%)", + $total_size_value . " " . $total_size_unit, + $total_used_value . " " . $total_used_unit, $self->{result_values}->{prct_used}, + $total_free_value . " " . $total_free_unit, $self->{result_values}->{prct_free}); + return $msg; +} + +sub custom_usage_calc { + my ($self, %options) = @_; + + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'}; + $self->{result_values}->{total} = $options{new_datas}->{$self->{instance} . '_size'}; + $self->{result_values}->{used} = $options{new_datas}->{$self->{instance} . '_volumes'}; + $self->{result_values}->{free} = $self->{result_values}->{total} - $self->{result_values}->{used}; + $self->{result_values}->{prct_used} = $self->{result_values}->{used} * 100 / $self->{result_values}->{total}; + $self->{result_values}->{prct_free} = 100 - $self->{result_values}->{prct_used}; + + return 0; +} + sub set_counters { my ($self, %options) = @_; @@ -33,40 +99,39 @@ sub set_counters { ]; $self->{maps_counters}->{volume} = [ - { label => 'iops', set => { - key_values => [ { name => 'iops_avg' }, { name => 'display' } ], - output_template => 'Average IOPs : %s', + { label => 'usage', set => { + key_values => [ { name => 'display' }, { name => 'volumes' }, { name => 'size' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + { label => 'data-reduction', set => { + key_values => [ { name => 'data_reduction' }, { name => 'display' } ], + output_template => 'Data Reduction : %.3f', perfdatas => [ - { label => 'iops', value => 'iops_avg_absolute', template => '%s', - min => 0, unit => 'iops', label_extra_instance => 1, instance_use => 'display_absolute' }, + { label => 'data_reduction', value => 'data_reduction_absolute', template => '%.3f', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, ], } }, - { label => 'throughput', set => { - key_values => [ { name => 'throughput_avg' }, { name => 'display' } ], - output_template => 'Average Throughput : %s %s', + { label => 'total-reduction', set => { + key_values => [ { name => 'total_reduction' }, { name => 'display' } ], + output_template => 'Total Reduction : %.3f', + perfdatas => [ + { label => 'total_reduction', value => 'total_reduction_absolute', template => '%.3f', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'snapshots', set => { + key_values => [ { name => 'snapshots' }, { name => 'display' } ], + output_template => 'Snapshots : %s %s', output_change_bytes => 1, perfdatas => [ - { label => 'throughput', value => 'throughput_avg_absolute', template => '%s', - min => 0, unit => 'B', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'latency-inner', set => { - key_values => [ { name => 'latency_inner' }, { name => 'display' } ], - output_template => 'Latency Inner : %.6fms', - perfdatas => [ - { label => 'latency_inner', value => 'latency_inner_absolute', template => '%.6f', - min => 0, unit => 'ms', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'latency-outer', set => { - key_values => [ { name => 'latency_outer' }, { name => 'display' } ], - output_template => 'Latency Outer : %.6fms', - perfdatas => [ - { label => 'latency_outer', value => 'latency_outer_absolute', template => '%.6f', - min => 0, unit => 'ms', label_extra_instance => 1, instance_use => 'display_absolute' }, + { label => 'snapshots', value => 'snapshots_absolute', template => '%s', + unit => 'B', min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, ], } }, @@ -82,11 +147,20 @@ sub new { $options{options}->add_options(arguments => { "filter-name:s" => { name => 'filter_name' }, + "units:s" => { name => 'units', default => '%' }, + "free" => { name => 'free' }, }); return $self; } +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; +} + sub prefix_volume_output { my ($self, %options) = @_; @@ -98,10 +172,12 @@ sub manage_selection { $self->{volume} = {}; my $result = $options{custom}->get_object(path => '/volume?space=true'); - use Data::Dumper; - print Data::Dumper::Dumper($result); - exit(1); - foreach my $entry (@{$result->{hits}}) { + + #[ + # {"total": 328750479478, "name": "PURE-M50R2-ADM24-CLU04-Oracle-prod1", "system": null, "snapshots": 1454226866, "volumes": 327296252612, "data_reduction": 5.436245544153763, "size": 3298534883328, "shared_space": null, "thin_provisioning": 0.387090105873843, "total_reduction": 8.86956728264988} + # ... + #] + foreach my $entry (@{$result}) { if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' && $entry->{volume_name} !~ /$self->{option_results}->{filter_name}/) { $self->{output}->output_add(long_msg => "skipping '" . $entry->{volume_name} . "': no matching filter.", debug => 1); @@ -137,12 +213,20 @@ Filter volume name (can be a regexp). =item B<--warning-*> Threshold warning. -Can be: 'latency-inner', 'latency-outer', 'iops', 'throughput' +Can be: 'usage', 'data-reduction', 'total-reduction'. =item B<--critical-*> Threshold critical. -Can be: 'latency-inner', 'latency-outer', 'iops', 'throughput' +Can be: 'usage', 'data-reduction', 'total-reduction'. + +=item B<--units> + +Units of thresholds (Default: '%') ('%', 'B'). + +=item B<--free> + +Thresholds are on free space left. =back From 8e418cfee778f2954803b8b2f24fbbc398444937 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Tue, 19 Dec 2017 11:53:05 +0100 Subject: [PATCH 27/77] plugin purestorage restapi: wip --- storage/purestorage/restapi/mode/hardware.pm | 162 ++++++++++++++++++ .../purestorage/restapi/mode/listvolumes.pm | 93 ++++++++++ .../purestorage/restapi/mode/volumeusage.pm | 6 +- storage/purestorage/restapi/plugin.pm | 2 + 4 files changed, 260 insertions(+), 3 deletions(-) create mode 100644 storage/purestorage/restapi/mode/hardware.pm create mode 100644 storage/purestorage/restapi/mode/listvolumes.pm diff --git a/storage/purestorage/restapi/mode/hardware.pm b/storage/purestorage/restapi/mode/hardware.pm new file mode 100644 index 000000000..fc95843d3 --- /dev/null +++ b/storage/purestorage/restapi/mode/hardware.pm @@ -0,0 +1,162 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package storage::purestorage::restapi::mode::hardware; + +use base qw(centreon::plugins::templates::hardware); + +use strict; +use warnings; + +sub set_system { + my ($self, %options) = @_; + + $self->{regexp_threshold_overload_check_section_option} = '^(entity)$'; + $self->{regexp_threshold_numeric_check_section_option} = '^(temperature)$'; + + $self->{cb_hook2} = 'restapi_execute'; + + $self->{thresholds} = { + entity => [ + ['ok', 'OK'], + ['critical', 'CRITICAL'], + ['degraded', 'WARNING'], + ['device_off', 'WARNING'], + ['identifying', 'OK'], + ['not_installed', 'OK'], + ['unknown', 'UNKNOWN'], + ], + }; + + $self->{components_path} = 'storage::purestorage::restapi::mode::components'; + $self->{components_module} = ['entity']; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options, no_absent => 1, no_load_components => 1); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + }); + + return $self; +} + +sub restapi_execute { + my ($self, %options) = @_; + + $self->{results} = $options{custom}->get_object(path => '/hardware'); +} + +1; + +=head1 MODE + +Check hardware. + +=over 8 + +=item B<--component> + +Which component to check (Default: '.*'). +Can be: 'entity'. + +=item B<--filter> + +Exclude some parts (comma seperated list) +Can also exclude specific instance: --filter=entity,CT1.FC0 + +=item B<--no-component> + +Return an error if no compenents are checked. +If total (with skipped) is 0. (Default: 'critical' returns). + +=item B<--threshold-overload> + +Set to overload default threshold values (syntax: section,[instance,]status,regexp) +It used before default thresholds (order stays). +Example: --threshold-overload='entity,OK,device_off' + +=item B<--warning> + +Set warning threshold for 'temperature', 'fan' (syntax: type,regexp,threshold) +Example: --warning='temperature,.*,40' + +=item B<--critical> + +Set critical threshold for 'temperature', 'fan' (syntax: type,regexp,threshold) +Example: --critical='temperature,.*,50' + +=back + +=cut + +package storage::purestorage::restapi::mode::components::entity; + +use strict; +use warnings; + +sub load { } + +sub check { + my ($self) = @_; + + $self->{output}->output_add(long_msg => "Checking entity"); + $self->{components}->{entity} = {name => 'entity', total => 0, skip => 0}; + return if ($self->check_filter(section => 'entity')); + + # [ + # {"status": "ok", "slot": null, "name": "CH0", "index": 0, "identify": "off", "voltage": null, "details": null, "speed": null, "temperature": null}, + # ... + # ] + + foreach my $entry (@{$self->{results}}) { + my $instance = $entry->{name}; + + next if ($self->check_filter(section => 'entity', instance => $instance)); + + $self->{components}->{fan}->{total}++; + $self->{output}->output_add(long_msg => sprintf("entity '%s' status is '%s' [instance = %s]", + $entry->{name}, $entry->{status}, $instance)); + my $exit = $self->get_severity(section => 'entity', value => $entry->{status}); + if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) { + $self->{output}->output_add(severity => $exit, + short_msg => sprintf("entity '%s' status is '%s'", $entry->{name}, $entry->{status})); + } + + if (defined($entry->{temperature}) && $entry->{temperature} =~ /[0-9]/) { + my ($exit2, $warn, $crit, $checked) = $self->get_severity_numeric(section => 'temperature', instance => $instance, value => $entry->{temperature}); + if (!$self->{output}->is_status(value => $exit2, compare => 'ok', litteral => 1)) { + $self->{output}->output_add(severity => $exit2, + short_msg => sprintf("entity '%s' temperature is %s C", $entry->{name}, $entry->{temperature})); + } + $self->{output}->perfdata_add(label => 'temperature_' . $entry->{name}, unit => 'C', + value => $entry->{temperature}, + warning => $warn, + critical => $crit, min => 0 + ); + } + } +} + +1; diff --git a/storage/purestorage/restapi/mode/listvolumes.pm b/storage/purestorage/restapi/mode/listvolumes.pm new file mode 100644 index 000000000..19c0cde56 --- /dev/null +++ b/storage/purestorage/restapi/mode/listvolumes.pm @@ -0,0 +1,93 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package storage::purestorage::restapi::mode::listvolumes; + +use base qw(centreon::plugins::mode); + +use strict; +use warnings; + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + }); + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::init(%options); +} + +sub manage_selection { + my ($self, %options) = @_; + + $self->{volumes} = $options{custom}->get_object(path => '/volume'); +} + +sub run { + my ($self, %options) = @_; + + $self->manage_selection(%options); + foreach (@{$self->{volumes}}) { + $self->{output}->output_add(long_msg => "[name = '" . $_->{name} . "']"); + } + + $self->{output}->output_add(severity => 'OK', + short_msg => 'List volumes:'); + $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); + $self->{output}->exit(); +} + +sub disco_format { + my ($self, %options) = @_; + + $self->{output}->add_disco_format(elements => ['name']); +} + +sub disco_show { + my ($self, %options) = @_; + + $self->manage_selection(%options); + foreach (@{$self->{volumes}}) { + $self->{output}->add_disco_entry(name => $_->{name}); + } +} + +1; + +__END__ + +=head1 MODE + +List volumes. + +=over 8 + +=back + +=cut + diff --git a/storage/purestorage/restapi/mode/volumeusage.pm b/storage/purestorage/restapi/mode/volumeusage.pm index b1c5964f1..e48b3d7e5 100644 --- a/storage/purestorage/restapi/mode/volumeusage.pm +++ b/storage/purestorage/restapi/mode/volumeusage.pm @@ -179,13 +179,13 @@ sub manage_selection { #] foreach my $entry (@{$result}) { if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' && - $entry->{volume_name} !~ /$self->{option_results}->{filter_name}/) { + $entry->{name} !~ /$self->{option_results}->{filter_name}/) { $self->{output}->output_add(long_msg => "skipping '" . $entry->{volume_name} . "': no matching filter.", debug => 1); next; } - $self->{volume}->{$entry->{volume_name}} = { - display => $entry->{volume_name}, + $self->{volume}->{$entry->{name}} = { + display => $entry->{name}, %{$entry}, }; } diff --git a/storage/purestorage/restapi/plugin.pm b/storage/purestorage/restapi/plugin.pm index 75525c278..d64b3364a 100644 --- a/storage/purestorage/restapi/plugin.pm +++ b/storage/purestorage/restapi/plugin.pm @@ -31,6 +31,8 @@ sub new { $self->{version} = '0.1'; %{$self->{modes}} = ( + 'hardware' => 'storage::purestorage::restapi::mode::hardware', + 'list-volumes' => 'storage::purestorage::restapi::mode::listvolumes', 'volume-usage' => 'storage::purestorage::restapi::mode::volumeusage', ); From 410ba42c0982ae3b5258835b44f380489d36c377 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Tue, 19 Dec 2017 11:56:04 +0100 Subject: [PATCH 28/77] finished pure storage restapi --- storage/purestorage/restapi/mode/hardware.pm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/storage/purestorage/restapi/mode/hardware.pm b/storage/purestorage/restapi/mode/hardware.pm index fc95843d3..6c2f4755d 100644 --- a/storage/purestorage/restapi/mode/hardware.pm +++ b/storage/purestorage/restapi/mode/hardware.pm @@ -99,12 +99,12 @@ Example: --threshold-overload='entity,OK,device_off' =item B<--warning> -Set warning threshold for 'temperature', 'fan' (syntax: type,regexp,threshold) +Set warning threshold for 'temperature' (syntax: type,regexp,threshold) Example: --warning='temperature,.*,40' =item B<--critical> -Set critical threshold for 'temperature', 'fan' (syntax: type,regexp,threshold) +Set critical threshold for 'temperature' (syntax: type,regexp,threshold) Example: --critical='temperature,.*,50' =back @@ -135,7 +135,7 @@ sub check { next if ($self->check_filter(section => 'entity', instance => $instance)); - $self->{components}->{fan}->{total}++; + $self->{components}->{entity}->{total}++; $self->{output}->output_add(long_msg => sprintf("entity '%s' status is '%s' [instance = %s]", $entry->{name}, $entry->{status}, $instance)); my $exit = $self->get_severity(section => 'entity', value => $entry->{status}); From 41a2036860357959080f77cd33f4422fb20dd5e0 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Tue, 19 Dec 2017 13:52:24 +0100 Subject: [PATCH 29/77] new mode for pure storage restapi --- storage/purestorage/restapi/custom/api.pm | 24 ++- storage/purestorage/restapi/mode/alarms.pm | 218 +++++++++++++++++++++ storage/purestorage/restapi/plugin.pm | 1 + 3 files changed, 234 insertions(+), 9 deletions(-) create mode 100644 storage/purestorage/restapi/mode/alarms.pm diff --git a/storage/purestorage/restapi/custom/api.pm b/storage/purestorage/restapi/custom/api.pm index 01389dc05..e7f3a59bf 100644 --- a/storage/purestorage/restapi/custom/api.pm +++ b/storage/purestorage/restapi/custom/api.pm @@ -42,11 +42,12 @@ sub new { if (!defined($options{noptions})) { $options{options}->add_options(arguments => { - "hostname:s" => { name => 'hostname', }, - "username:s" => { name => 'username', }, - "password:s" => { name => 'password', }, - "proxyurl:s" => { name => 'proxyurl', }, - "timeout:s" => { name => 'timeout', }, + "hostname:s" => { name => 'hostname' }, + "username:s" => { name => 'username' }, + "password:s" => { name => 'password' }, + "proxyurl:s" => { name => 'proxyurl' }, + "timeout:s" => { name => 'timeout' }, + "api-path:s" => { name => 'api_path' }, }); } $options{options}->add_help(package => __PACKAGE__, sections => 'REST API OPTIONS', once => 1); @@ -88,6 +89,7 @@ sub check_options { $self->{password} = (defined($self->{option_results}->{password})) ? $self->{option_results}->{password} : undef; $self->{timeout} = (defined($self->{option_results}->{timeout})) ? $self->{option_results}->{timeout} : 10; $self->{proxyurl} = (defined($self->{option_results}->{proxyurl})) ? $self->{option_results}->{proxyurl} : undef; + $self->{api_path} = (defined($self->{option_results}->{api_path})) ? $self->{option_results}->{api_path} : '/api/1.11'; if (!defined($self->{hostname})) { $self->{output}->add_option_msg(short_msg => "Need to specify hostname option."); @@ -164,7 +166,7 @@ sub get_api_token { } $self->settings(); - my $decoded = $self->request_api(method => 'POST', url_path => '/api/1.11/auth/apitoken', query_form_post => $encoded); + my $decoded = $self->request_api(method => 'POST', url_path => $self->{api_path} . '/auth/apitoken', query_form_post => $encoded); if (!defined($decoded->{api_token})) { $self->{output}->add_option_msg(short_msg => "Cannot get api token"); $self->{output}->option_exit(); @@ -187,7 +189,7 @@ sub get_session { } $self->settings(); - my $decoded = $self->request_api(method => 'POST', url_path => '/api/1.11/auth/session', query_form_post => $encoded); + my $decoded = $self->request_api(method => 'POST', url_path => $self->{api_path} . '/auth/session', query_form_post => $encoded); my $headers = $self->{http}->get_header(); my $cookie = $headers->header('Set-Cookie'); if (!defined($cookie)) { @@ -214,14 +216,14 @@ sub get_object { } $self->settings(); - return $self->request_api(method => 'GET', url_path => '/api/1.11' . $options{path}); + return $self->request_api(method => 'GET', url_path => $self->{api_path} . $options{path}); } sub DESTROY { my $self = shift; if (defined($self->{session_id})) { - $self->request_api(method => 'DELETE', url_path => '/api/1.11/auth/session'); + $self->request_api(method => 'DELETE', url_path => $self->{api_path} . '/auth/session'); } } @@ -261,6 +263,10 @@ Proxy URL if any. Set HTTP timeout in seconds (Default: '10'). +=item B<--api-path> + +API base url path (Default: '/api/1.11'). + =back =head1 DESCRIPTION diff --git a/storage/purestorage/restapi/mode/alarms.pm b/storage/purestorage/restapi/mode/alarms.pm new file mode 100644 index 000000000..5fb82a8d6 --- /dev/null +++ b/storage/purestorage/restapi/mode/alarms.pm @@ -0,0 +1,218 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package storage::purestorage::restapi::mode::alarms; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use centreon::plugins::misc; +use centreon::plugins::statefile; + +my $instance_mode; + +sub custom_status_threshold { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && + eval "$instance_mode->{option_results}->{critical_status}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && + eval "$instance_mode->{option_results}->{warning_status}") { + $status = 'warning'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_status_output { + my ($self, %options) = @_; + + my $msg = sprintf("alarm [component: %s] [severity: %s] [category: %s] [event: %s] %s", $self->{result_values}->{component_name}, + $self->{result_values}->{severity}, $self->{result_values}->{category}, + $self->{result_values}->{event}, centreon::plugins::misc::change_seconds(value => $self->{result_values}->{opened})); + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{category} = $options{new_datas}->{$self->{instance} . '_category'}; + $self->{result_values}->{code} = $options{new_datas}->{$self->{instance} . '_code'}; + $self->{result_values}->{severity} = $options{new_datas}->{$self->{instance} . '_severity'}; + $self->{result_values}->{component_name} = $options{new_datas}->{$self->{instance} . '_component_name'}; + $self->{result_values}->{opened} = $options{new_datas}->{$self->{instance} . '_opened'}; + $self->{result_values}->{event} = $options{new_datas}->{$self->{instance} . '_event'}; + return 0; +} + + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'alarms', type => 2, message_multiple => '0 problem(s) detected', display_counter_problem => { label => 'alerts', min => 0 }, + group => [ { name => 'alarm', skipped_code => { -11 => 1 } } ] + } + ]; + + $self->{maps_counters}->{alarm} = [ + { label => 'status', threshold => 0, set => { + key_values => [ { name => 'category' }, { name => 'code' }, { name => 'severity' }, { name => 'opened' }, { name => 'event' }, { name => 'component_name' } ], + closure_custom_calc => $self->can('custom_status_calc'), + closure_custom_output => $self->can('custom_status_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "filter-category:s" => { name => 'filter_category' }, + "warning-status:s" => { name => 'warning_status', default => '%{severity} =~ /warning/i' }, + "critical-status:s" => { name => 'critical_status', default => '%{severity} =~ /critical/i' }, + "memory" => { name => 'memory' }, + }); + + centreon::plugins::misc::mymodule_load(output => $self->{output}, module => 'Date::Parse', + error_msg => "Cannot load module 'Date::Parse'."); + $self->{statefile_cache} = centreon::plugins::statefile->new(%options); + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; + $self->change_macros(); + + if (defined($self->{option_results}->{memory})) { + $self->{statefile_cache}->check_options(%options); + } +} + +sub change_macros { + my ($self, %options) = @_; + + foreach (('warning_status', 'critical_status')) { + if (defined($self->{option_results}->{$_})) { + $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; + } + } +} + +sub manage_selection { + my ($self, %options) = @_; + + $self->{alarms}->{global} = { alarm => {} }; + my $alarm_results = $options{custom}->get_object(path => '/message'); + + my $last_time; + if (defined($self->{option_results}->{memory})) { + $self->{statefile_cache}->read(statefile => 'cache_purestorage_' . $self->{mode} . '_' . $self->{option_results}->{region}); + $last_time = $self->{statefile_cache}->get(name => 'last_time'); + } + + #[ + # {"category": "hardware", "code": 39, "actual": "2", "opened": "2017-11-27T11:32:51Z", "component_type": "hardware", "event": "Fibre Channel link failure", "current_severity": "warning", "details": "", "expected": null, "id": 10088813, "component_name": "ct1.fc3"}, + # ... + # + + my ($i, $current_time) = (1, time()); + foreach my $alarm (@{$alarm_results}) { + my $create_time = Date::Parse::str2time($alarm->{opened}); + if (!defined($create_time)) { + $self->{manager}->{output}->output_add(severity => 'UNKNOWN', + short_msg => "Can't Parse date '" . $alarm->{opened} . "'"); + next; + } + + next if (defined($self->{option_results}->{memory}) && defined($last_time) && $last_time > $create_time); + if (defined($self->{option_results}->{filter_category}) && $self->{option_results}->{filter_category} ne '' && + $alarm->{category} !~ /$self->{option_results}->{filter_category}/) { + $self->{output}->output_add(long_msg => "skipping '" . $alarm->{category} . "': no matching filter.", debug => 1); + next; + } + + my $diff_time = $current_time - $create_time; + + $self->{alarms}->{global}->{alarm}->{$i} = { + %$alarm, + opened => $diff_time, + }; + $i++; + } + + if (defined($self->{option_results}->{memory})) { + $self->{statefile_cache}->write(data => { last_time => $current_time }); + } +} + +1; + +__END__ + +=head1 MODE + +Check alarms. + +=over 8 + +=item B<--filter-category> + +Filter by category name (can be a regexp). + +=item B<--warning-status> + +Set warning threshold for status (Default: '%{severity} =~ /warning/i') +Can used special variables like: %{category}, %{code}, %{severity}, %{opened}, %{event}, %{component_name} + +=item B<--critical-status> + +Set critical threshold for status (Default: '%{severity} =~ /critical/i'). +Can used special variables like: %{category}, %{code}, %{severity}, %{opened}, %{event}, %{component_name} + +=item B<--memory> + +Only check new alarms. + +=back + +=cut diff --git a/storage/purestorage/restapi/plugin.pm b/storage/purestorage/restapi/plugin.pm index d64b3364a..8a12a1b1b 100644 --- a/storage/purestorage/restapi/plugin.pm +++ b/storage/purestorage/restapi/plugin.pm @@ -31,6 +31,7 @@ sub new { $self->{version} = '0.1'; %{$self->{modes}} = ( + 'alarms' => 'storage::purestorage::restapi::mode::alarms', 'hardware' => 'storage::purestorage::restapi::mode::hardware', 'list-volumes' => 'storage::purestorage::restapi::mode::listvolumes', 'volume-usage' => 'storage::purestorage::restapi::mode::volumeusage', From f493a01d43ce7d7a538d8455255bbb21142f6dc1 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Tue, 19 Dec 2017 13:59:18 +0100 Subject: [PATCH 30/77] purestorage restapi: finish --- storage/purestorage/restapi/custom/api.pm | 6 ++++++ storage/purestorage/restapi/mode/alarms.pm | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/storage/purestorage/restapi/custom/api.pm b/storage/purestorage/restapi/custom/api.pm index e7f3a59bf..06c51709a 100644 --- a/storage/purestorage/restapi/custom/api.pm +++ b/storage/purestorage/restapi/custom/api.pm @@ -107,6 +107,12 @@ sub check_options { return 0; } +sub get_connection_infos { + my ($self, %options) = @_; + + return $self->{hostname} . '_' . $self->{http}->get_port(); +} + sub build_options_for_httplib { my ($self, %options) = @_; diff --git a/storage/purestorage/restapi/mode/alarms.pm b/storage/purestorage/restapi/mode/alarms.pm index 5fb82a8d6..31d2ad3e1 100644 --- a/storage/purestorage/restapi/mode/alarms.pm +++ b/storage/purestorage/restapi/mode/alarms.pm @@ -67,7 +67,7 @@ sub custom_status_calc { $self->{result_values}->{category} = $options{new_datas}->{$self->{instance} . '_category'}; $self->{result_values}->{code} = $options{new_datas}->{$self->{instance} . '_code'}; - $self->{result_values}->{severity} = $options{new_datas}->{$self->{instance} . '_severity'}; + $self->{result_values}->{severity} = $options{new_datas}->{$self->{instance} . '_current_severity'}; $self->{result_values}->{component_name} = $options{new_datas}->{$self->{instance} . '_component_name'}; $self->{result_values}->{opened} = $options{new_datas}->{$self->{instance} . '_opened'}; $self->{result_values}->{event} = $options{new_datas}->{$self->{instance} . '_event'}; @@ -86,7 +86,7 @@ sub set_counters { $self->{maps_counters}->{alarm} = [ { label => 'status', threshold => 0, set => { - key_values => [ { name => 'category' }, { name => 'code' }, { name => 'severity' }, { name => 'opened' }, { name => 'event' }, { name => 'component_name' } ], + key_values => [ { name => 'category' }, { name => 'code' }, { name => 'current_severity' }, { name => 'opened' }, { name => 'event' }, { name => 'component_name' } ], closure_custom_calc => $self->can('custom_status_calc'), closure_custom_output => $self->can('custom_status_output'), closure_custom_perfdata => sub { return 0; }, @@ -146,7 +146,7 @@ sub manage_selection { my $last_time; if (defined($self->{option_results}->{memory})) { - $self->{statefile_cache}->read(statefile => 'cache_purestorage_' . $self->{mode} . '_' . $self->{option_results}->{region}); + $self->{statefile_cache}->read(statefile => 'cache_purestorage_' . $self->{mode} . '_' . $options{custom}->get_connection_infos()); $last_time = $self->{statefile_cache}->get(name => 'last_time'); } From 2578fb785f62168fc1ae7b8aeec7e089a85c1e87 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Tue, 19 Dec 2017 14:01:01 +0100 Subject: [PATCH 31/77] fix help --- storage/purestorage/restapi/custom/api.pm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/storage/purestorage/restapi/custom/api.pm b/storage/purestorage/restapi/custom/api.pm index 06c51709a..161538fbb 100644 --- a/storage/purestorage/restapi/custom/api.pm +++ b/storage/purestorage/restapi/custom/api.pm @@ -251,15 +251,15 @@ Pure Storage Rest API custom mode =item B<--hostname> -PureStorage hostname. +Pure Storage hostname. =item B<--username> -PureStorage username. +Pure Storage username. =item B<--password> -v password. +Pure Storage password. =item B<--proxyurl> From b974643b031b369982cebb841e2470914232fcbe Mon Sep 17 00:00:00 2001 From: qgarnier Date: Tue, 19 Dec 2017 14:07:52 +0100 Subject: [PATCH 32/77] fix inin --- apps/inin/ig/snmp/mode/stats.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/inin/ig/snmp/mode/stats.pm b/apps/inin/ig/snmp/mode/stats.pm index 5ef9add9f..ca8b7767a 100644 --- a/apps/inin/ig/snmp/mode/stats.pm +++ b/apps/inin/ig/snmp/mode/stats.pm @@ -98,7 +98,7 @@ sub manage_selection { my ($self, %options) = @_; $self->{cg} = {}; - my $snmp_result = $options{snmp}->get_table(oid => $oid_i3IgInfo, start => $oid_i3IgSipActiveCallsCount, end => , + my $snmp_result = $options{snmp}->get_table(oid => $oid_i3IgInfo, start => $oid_i3IgSipActiveCallsCount, nothing_quit => 1); foreach my $oid (keys %{$snmp_result}) { From f14d8ab1a04d918d996ec478581fcb671ce7dabf Mon Sep 17 00:00:00 2001 From: qgarnier Date: Tue, 19 Dec 2017 14:19:06 +0100 Subject: [PATCH 33/77] add purestorage snmp plugin --- storage/purestorage/snmp/mode/stats.pm | 160 +++++++++++++++++++++++++ storage/purestorage/snmp/plugin.pm | 48 ++++++++ 2 files changed, 208 insertions(+) create mode 100644 storage/purestorage/snmp/mode/stats.pm create mode 100644 storage/purestorage/snmp/plugin.pm diff --git a/storage/purestorage/snmp/mode/stats.pm b/storage/purestorage/snmp/mode/stats.pm new file mode 100644 index 000000000..2de919aa8 --- /dev/null +++ b/storage/purestorage/snmp/mode/stats.pm @@ -0,0 +1,160 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package storage::purestorage::snmp::mode::stats; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0, message_separator => ' - ' }, + ]; + + $self->{maps_counters}->{global} = [ + { label => 'read-bandwidth', set => { + key_values => [ { name => 'pureArrayReadBandwidth' }, ], + output_change_bytes => 2, + output_template => 'Read Bandwith : %s %s/s', + perfdatas => [ + { label => 'read_bandwidth', value => 'pureArrayReadBandwidth_absolute', template => '%.2f', + min => 0, unit => 'b/s' }, + ], + } + }, + { label => 'write-bandwidth', set => { + key_values => [ { name => 'pureArrayWriteBandwidth' }, ], + output_change_bytes => 2, + output_template => 'Write Bandwith : %s %s/s', + perfdatas => [ + { label => 'write_bandwidth', value => 'pureArrayWriteBandwidth_absolute', template => '%.2f', + min => 0, unit => 'b/s' }, + ], + } + }, + { label => 'read-iops', set => { + key_values => [ { name => 'pureArrayReadIOPS' } ], + output_template => 'Read IOPs : %s', + perfdatas => [ + { label => 'read_iops', value => 'pureArrayReadIOPS_absolute', template => '%s', + unit => 'iops', min => 0 }, + ], + } + }, + { label => 'write-iops', set => { + key_values => [ { name => 'pureArrayWriteIOPS' } ], + output_template => 'Write IOPs : %s', + perfdatas => [ + { label => 'write_iops', value => 'pureArrayWriteIOPS_absolute', template => '%s', + unit => 'iops', min => 0 }, + ], + } + }, + { label => 'read-latency', set => { + key_values => [ { name => 'pureArrayReadLatency' } ], + output_template => 'Read Latency : %s us/op', + perfdatas => [ + { label => 'read_latency', value => 'pureArrayReadLatency_absolute', template => '%s', + unit => 'us/op', min => 0 }, + ], + } + }, + { label => 'write-latency', set => { + key_values => [ { name => 'pureArrayWriteLatency' } ], + output_template => 'Write Latency : %s us/op', + perfdatas => [ + { label => 'write_latency', value => 'pureArrayWriteLatency_absolute', template => '%s', + unit => 'us/op', min => 0 }, + ], + } + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + }); + + return $self; +} + +my $mapping = { + pureArrayReadBandwidth => { oid => '.1.3.6.1.4.1.40482.4.1' }, + pureArrayWriteBandwidth => { oid => '.1.3.6.1.4.1.40482.4.2' }, + pureArrayReadIOPS => { oid => '.1.3.6.1.4.1.40482.4.3' }, + pureArrayWriteIOPS => { oid => '.1.3.6.1.4.1.40482.4.4' }, + pureArrayReadLatency => { oid => '.1.3.6.1.4.1.40482.4.5' }, + pureArrayWriteLatency => { oid => '.1.3.6.1.4.1.40482.4.6' }, +}; +my $oid_purePerformance = '.1.3.6.1.4.1.40482.4'; + +sub manage_selection { + my ($self, %options) = @_; + + my $snmp_result = $options{snmp}->get_table(oid => $oid_purePerformance, + nothing_quit => 1); + my $result = $options{snmp}->map_instance(mapping => $mapping, results => $snmp_result, instance => '0'); + + $result->{pureArrayReadBandwidth} *= 8; + $result->{pureArrayWriteBandwidth} *= 8; + + $self->{global} = { %$result }; +} + +1; + +__END__ + +=head1 MODE + +Check statistics performance. + +=over 8 + +=item B<--filter-counters> + +Only display some counters (regexp can be used). +Example: --filter-counters='bandwidth' + +=item B<--warning-*> + +Threshold warning. +Can be: 'read-bandwidth', 'write-bandwidth', 'read-iops', 'write-iops', +'read-latency', 'write-latency'. + +=item B<--critical-*> + +Threshold critical. +Can be: 'read-bandwidth', 'write-bandwidth', 'read-iops', 'write-iops', +'read-latency', 'write-latency'. + +=back + +=cut diff --git a/storage/purestorage/snmp/plugin.pm b/storage/purestorage/snmp/plugin.pm new file mode 100644 index 000000000..5bd3f6938 --- /dev/null +++ b/storage/purestorage/snmp/plugin.pm @@ -0,0 +1,48 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package storage::purestorage::snmp::plugin; + +use strict; +use warnings; +use base qw(centreon::plugins::script_snmp); + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '0.1'; + %{$self->{modes}} = ( + 'stats' => 'storage::purestorage::snmp::mode::stats', + ); + + return $self; +} + +1; + +__END__ + +=head1 PLUGIN DESCRIPTION + +Check Pure Storage in SNMP. + +=cut From a0981ca4b85263f45238a495d5fd142588c9cd94 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Wed, 20 Dec 2017 11:46:59 +0100 Subject: [PATCH 34/77] add veeam plugin --- apps/backup/veeam/local/mode/jobstatus.pm | 367 ++++++++++++++++++ apps/backup/veeam/local/plugin.pm | 48 +++ centreon/common/powershell/veeam/jobstatus.pm | 89 +++++ 3 files changed, 504 insertions(+) create mode 100644 apps/backup/veeam/local/mode/jobstatus.pm create mode 100644 apps/backup/veeam/local/plugin.pm create mode 100644 centreon/common/powershell/veeam/jobstatus.pm diff --git a/apps/backup/veeam/local/mode/jobstatus.pm b/apps/backup/veeam/local/mode/jobstatus.pm new file mode 100644 index 000000000..9c606aa30 --- /dev/null +++ b/apps/backup/veeam/local/mode/jobstatus.pm @@ -0,0 +1,367 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::backup::veeam::local::mode::jobstatus; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use centreon::common::powershell::veeam::jobstatus; +use centreon::plugins::misc; + +my $instance_mode; + +sub custom_status_threshold { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + # To exclude some OK + if (defined($instance_mode->{option_results}->{ok_status}) && $instance_mode->{option_results}->{ok_status} ne '' && + eval "$instance_mode->{option_results}->{ok_status}") { + $status = 'ok'; + } elsif (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && + eval "$instance_mode->{option_results}->{critical_status}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && + eval "$instance_mode->{option_results}->{warning_status}") { + $status = 'warning'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_status_output { + my ($self, %options) = @_; + my $msg = 'status : ' . $self->{result_values}->{status} . ' [type: ' . $self->{result_values}->{type} . ']'; + + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_status'}; + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'}; + $self->{result_values}->{type} = $options{new_datas}->{$self->{instance} . '_type'}; + $self->{result_values}->{is_running} = $options{new_datas}->{$self->{instance} . '_is_running'}; + return 0; +} + +sub custom_long_threshold { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + if (defined($instance_mode->{option_results}->{critical_long}) && $instance_mode->{option_results}->{critical_long} ne '' && + eval "$instance_mode->{option_results}->{critical_long}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{warning_long}) && $instance_mode->{option_results}->{warning_long} ne '' && + eval "$instance_mode->{option_results}->{warning_long}") { + $status = 'warning'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_long_output { + my ($self, %options) = @_; + my $msg = 'started since : ' . centreon::plugins::misc::change_seconds(value => $self->{result_values}->{elapsed}); + + return $msg; +} + +sub custom_long_calc { + my ($self, %options) = @_; + + $self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_status'}; + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'}; + $self->{result_values}->{elapsed} = $options{new_datas}->{$self->{instance} . '_elapsed'}; + $self->{result_values}->{type} = $options{new_datas}->{$self->{instance} . '_type'}; + $self->{result_values}->{is_running} = $options{new_datas}->{$self->{instance} . '_is_running'}; + + return -11 if ($self->{result_values}->{is_running} != 1); + + return 0; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0 }, + { name => 'job', type => 1, cb_prefix_output => 'prefix_job_output', message_multiple => 'All jobs are ok', skipped_code => { -11 => 1, -10 => 1 } }, + ]; + + $self->{maps_counters}->{global} = [ + { label => 'total', set => { + key_values => [ { name => 'total' } ], + output_template => 'Total Jobs : %s', + perfdatas => [ + { label => 'total', value => 'total_absolute', template => '%s', min => 0 }, + ], + } + }, + ]; + + $self->{maps_counters}->{job} = [ + { label => 'status', threshold => 0, set => { + key_values => [ { name => 'status' }, { name => 'display' }, { name => 'type' }, { name => 'is_running' } ], + closure_custom_calc => $self->can('custom_status_calc'), + closure_custom_output => $self->can('custom_status_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + { label => 'long', threshold => 0, set => { + key_values => [ { name => 'status' }, { name => 'display' }, { name => 'elapsed' }, { name => 'type' }, { name => 'is_running' } ], + closure_custom_calc => $self->can('custom_long_calc'), + closure_custom_output => $self->can('custom_long_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_long_threshold'), + } + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "timeout:s" => { name => 'timeout', default => 50 }, + "command:s" => { name => 'command', default => 'powershell.exe' }, + "command-path:s" => { name => 'command_path' }, + "command-options:s" => { name => 'command_options', default => '-InputFormat none -NoLogo -EncodedCommand' }, + "no-ps" => { name => 'no_ps' }, + "ps-exec-only" => { name => 'ps_exec_only' }, + "filter-name:s" => { name => 'filter_name' }, + "filter-type:s" => { name => 'filter_type' }, + "filter-end-time:s" => { name => 'filter_end_time', default => 86400 }, + "filter-start-time:s" => { name => 'filter_start_time' }, + "ok-status:s" => { name => 'ok_status', default => '' }, + "warning-status:s" => { name => 'warning_status', default => '' }, + "critical-status:s" => { name => 'critical_status', default => '%{is_running} == 0 and not %{status} =~ /Success/i' }, + "warning-long:s" => { name => 'warning_long' }, + "critical-long:s" => { name => 'critical_long' }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; + $self->change_macros(); +} + +sub prefix_job_output { + my ($self, %options) = @_; + + return "Job '" . $options{instance_value}->{display} . "' "; +} + +sub change_macros { + my ($self, %options) = @_; + + foreach (('ok_status', 'warning_status', 'critical_status', 'warning_long', 'critical_long')) { + if (defined($self->{option_results}->{$_})) { + $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; + } + } +} + +sub manage_selection { + my ($self, %options) = @_; + + my $ps = centreon::common::powershell::veeam::jobstatus::get_powershell( + no_ps => $self->{option_results}->{no_ps}); + + $self->{option_results}->{command_options} .= " " . $ps; + my ($stdout) = centreon::plugins::misc::execute(output => $self->{output}, + options => $self->{option_results}, + command => $self->{option_results}->{command}, + command_path => $self->{option_results}->{command_path}, + command_options => $self->{option_results}->{command_options}); + if (defined($self->{option_results}->{ps_exec_only})) { + $self->{output}->output_add(severity => 'OK', + short_msg => $stdout); + $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); + $self->{output}->exit(); + } + + #[name = xxxx ][type = Backup ][isrunning = False ][result = Success ][creationTimeUTC = 1512875246.2 ][endTimeUTC = 1512883615.377 ] + #[name = xxxx ][type = Backup ][isrunning = False ][result = ][creationTimeUTC = ][endTimeUTC = ] + #[name = xxxx ][type = BackupSync ][isrunning = True ][result = None ][creationTimeUTC = 1513060425.027 ][endTimeUTC = -2208992400 ] + + #is_running = 2 (never running) + $self->{global} = { total => 0 }; + $self->{job} = {}; + my $current_time = time(); + foreach my $line (split /\n/, $stdout) { + next if ($line !~ /^\[name\s*=(.*?)\]\[type\s*=(.*?)\]\[isrunning\s*=(.*?)\]\[result\s*=(.*?)\]\[creationTimeUTC\s*=(.*?)\]\[endTimeUTC\s*=(.*?)\]/i); + + my ($name, $type, $is_running, $result, $start_time, $end_time) = (centreon::plugins::misc::trim($1), + centreon::plugins::misc::trim($2), centreon::plugins::misc::trim($3), centreon::plugins::misc::trim($4), + centreon::plugins::misc::trim($5), centreon::plugins::misc::trim($6)); + + if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' && + $name !~ /$self->{option_results}->{filter_name}/) { + $self->{output}->output_add(long_msg => "skipping job '" . $name . "': no matching filter.", debug => 1); + next; + } + if (defined($self->{option_results}->{filter_type}) && $self->{option_results}->{filter_type} ne '' && + $type !~ /$self->{option_results}->{filter_type}/) { + $self->{output}->output_add(long_msg => "skipping job '" . $name . "': no matching filter type.", debug => 1); + next; + } + if (defined($self->{option_results}->{filter_end_time}) && $self->{option_results}->{filter_end_time} =~ /[0-9]+/ && + defined($end_time) && $end_time =~ /[0-9]+/ && $end_time < $current_time - $self->{option_results}->{filter_end_time}) { + $self->{output}->output_add(long_msg => "skipping job '" . $name . "': end time too old.", debug => 1); + next; + } + if (defined($self->{option_results}->{filter_start_time}) && $self->{option_results}->{filter_start_time} =~ /[0-9]+/ && + defined($start_time) && $start_time =~ /[0-9]+/ && $start_time < $current_time - $self->{option_results}->{filter_start_time}) { + $self->{output}->output_add(long_msg => "skipping job '" . $name . "': start time too old.", debug => 1); + next; + } + + my $elapsed_time; + $elapsed_time = $current_time - $start_time if ($start_time =~ /[0-9]/); + $self->{job}->{$name} = { + display => $name, + elapsed => $elapsed_time, + type => $type, + is_running => ($is_running =~ /True/) ? 1 : ($start_time !~ /[0-9]/ ? 2 : 0), + status => $result ne '' ? $result : '-', + }; + $self->{global}->{total}++; + } +} + +1; + +__END__ + +=head1 MODE + +Check job status. + +=over 8 + +=item B<--timeout> + +Set timeout time for command execution (Default: 50 sec) + +=item B<--no-ps> + +Don't encode powershell. To be used with --command and 'type' command. + +=item B<--command> + +Command to get information (Default: 'powershell.exe'). +Can be changed if you have output in a file. To be used with --no-ps option!!! + +=item B<--command-path> + +Command path (Default: none). + +=item B<--command-options> + +Command options (Default: '-InputFormat none -NoLogo -EncodedCommand'). + +=item B<--ps-exec-only> + +Print powershell output. + +=item B<--filter-name> + +Filter job name (can be a regexp). + +=item B<--filter-type> + +Filter job type (can be a regexp). + +=item B<--filter-start-time> + +Filter job with start time greater than current time less value in seconds. + +=item B<--filter-end-time> + +Filter job with end time greater than current time less value in seconds (Default: 86400). + +=item B<--ok-status> + +Set ok threshold for status (Default: '') +Can used special variables like: %{display}, %{status}, %{type}, %{is_running}. + +=item B<--warning-status> + +Set warning threshold for status (Default: '') +Can used special variables like: %{display}, %{status}, %{type}, %{is_running}. + +=item B<--critical-status> + +Set critical threshold for status (Default: '%{is_running} == 0 and not %{status} =~ /Success/i'). +Can used special variables like: %{display}, %{status}, %{type}, %{is_running}. + +=item B<--warning-long> + +Set warning threshold for long jobs (Default: none) +Can used special variables like: %{display}, %{status}, %{type}, %{elapsed}. + +=item B<--critical-long> + +Set critical threshold for long jobs (Default: none). +Can used special variables like: %{display}, %{status}, %{type}, %{elapsed}. + +=item B<--warning-total> + +Set warning threshold for total jobs. + +=item B<--critical-total> + +Set critical threshold for total jobs. + +=back + +=cut diff --git a/apps/backup/veeam/local/plugin.pm b/apps/backup/veeam/local/plugin.pm new file mode 100644 index 000000000..7828b8c9f --- /dev/null +++ b/apps/backup/veeam/local/plugin.pm @@ -0,0 +1,48 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::backup::veeam::local::plugin; + +use strict; +use warnings; +use base qw(centreon::plugins::script_simple); + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '0.1'; + %{$self->{modes}} = ( + 'job-status' => 'apps::backup::veeam::local::mode::jobstatus', + ); + + return $self; +} + +1; + +__END__ + +=head1 PLUGIN DESCRIPTION + +Check Veeam through powershell. + +=cut diff --git a/centreon/common/powershell/veeam/jobstatus.pm b/centreon/common/powershell/veeam/jobstatus.pm new file mode 100644 index 000000000..bec074b0f --- /dev/null +++ b/centreon/common/powershell/veeam/jobstatus.pm @@ -0,0 +1,89 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package centreon::common::powershell::veeam::jobstatus; + +use strict; +use warnings; +use centreon::plugins::misc; + +sub get_powershell { + my (%options) = @_; + my $no_ps = (defined($options{no_ps})) ? 1 : 0; + + return '' if ($no_ps == 1); + + my $ps = ' +$culture = new-object "System.Globalization.CultureInfo" "en-us" +[System.Threading.Thread]::CurrentThread.CurrentUICulture = $culture + +If (@(Get-PSSnapin -Registered | Where-Object {$_.Name -Match "VeeamPSSnapin"} ).count -gt 0) { + If (@(Get-PSSnapin | Where-Object {$_.Name -Match "VeeamPSSnapin"} ).count -eq 0) { + Try { + Get-PSSnapin -Registered | Where-Object {$_.Name -Match "VeeamPSSnapin"} | Add-PSSnapin -ErrorAction STOP + } Catch { + Write-Host $Error[0].Exception + exit 1 + } + } +} else { + Write-Host "Snap-In Veeam no present or not registered" + exit 1 +} + +$ProgressPreference = "SilentlyContinue" + +Try { + $ErrorActionPreference = "Stop" + + $jobs = Get-VBRJob + foreach ($job in $jobs) { + Write-Host "[name = " $job.Name "]" -NoNewline + Write-Host "[type = " $job.JobType "]" -NoNewline + Write-Host "[isrunning = " $job.isRunning "]" -NoNewline + $lastsession = $job.findlastsession() + if ($lastsession) { + Write-Host "[result = " $lastsession.Result "]" -NoNewline + Write-Host "[creationTimeUTC = " (get-date -date $lastsession.creationTime.ToUniversalTime() -Uformat ' . "'%s'" . ') "]" -NoNewline + Write-Host "[endTimeUTC = " (get-date -date $lastsession.EndTime.ToUniversalTime() -Uformat ' . "'%s'" . ') "]" + } else { + Write-Host "[result = ][creationTimeUTC = ][endTimeUTC = ]" + } + } +} Catch { + Write-Host $Error[0].Exception + exit 1 +} + +exit 0 +'; + + return centreon::plugins::misc::powershell_encoded($ps); +} + +1; + +__END__ + +=head1 DESCRIPTION + +Method to get veeam job status informations. + +=cut From f730fc167c556a237d60c4c9919eb794d0ab438a Mon Sep 17 00:00:00 2001 From: qgarnier Date: Wed, 20 Dec 2017 12:48:40 +0100 Subject: [PATCH 35/77] add list jobs veeam mode --- apps/backup/veeam/local/mode/listjobs.pm | 163 +++++++++++++++++++ apps/backup/veeam/local/plugin.pm | 1 + centreon/common/powershell/veeam/listjobs.pm | 80 +++++++++ 3 files changed, 244 insertions(+) create mode 100644 apps/backup/veeam/local/mode/listjobs.pm create mode 100644 centreon/common/powershell/veeam/listjobs.pm diff --git a/apps/backup/veeam/local/mode/listjobs.pm b/apps/backup/veeam/local/mode/listjobs.pm new file mode 100644 index 000000000..7cf5a2860 --- /dev/null +++ b/apps/backup/veeam/local/mode/listjobs.pm @@ -0,0 +1,163 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::backup::veeam::local::mode::listjobs; + +use base qw(centreon::plugins::mode); + +use strict; +use warnings; +use centreon::common::powershell::veeam::listjobs; +use centreon::plugins::misc; + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "timeout:s" => { name => 'timeout', default => 50 }, + "command:s" => { name => 'command', default => 'powershell.exe' }, + "command-path:s" => { name => 'command_path' }, + "command-options:s" => { name => 'command_options', default => '-InputFormat none -NoLogo -EncodedCommand' }, + "no-ps" => { name => 'no_ps' }, + "ps-exec-only" => { name => 'ps_exec_only' }, + "filter-name:s" => { name => 'filter_name' }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::init(%options); +} + +sub run { + my ($self, %options) = @_; + + $self->manage_selection(%options); + foreach (sort keys %{$self->{jobs}}) { + $self->{output}->output_add(long_msg => "'" . $_ . "' [type = " . $self->{jobs}->{$_}->{type} . "]"); + } + + $self->{output}->output_add(severity => 'OK', + short_msg => 'List jobs:'); + $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); + $self->{output}->exit(); +} + +sub disco_format { + my ($self, %options) = @_; + + $self->{output}->add_disco_format(elements => ['name', 'type']); +} + +sub disco_show { + my ($self, %options) = @_; + + $self->manage_selection(%options); + foreach (sort keys %{$self->{jobs}}) { + $self->{output}->add_disco_entry( + name => $_, + type => $self->{jobs}->{$_}->{type}, + ); + } +} + +sub manage_selection { + my ($self, %options) = @_; + + my $ps = centreon::common::powershell::veeam::listjobs::get_powershell( + no_ps => $self->{option_results}->{no_ps}); + + $self->{option_results}->{command_options} .= " " . $ps; + my ($stdout) = centreon::plugins::misc::execute(output => $self->{output}, + options => $self->{option_results}, + command => $self->{option_results}->{command}, + command_path => $self->{option_results}->{command_path}, + command_options => $self->{option_results}->{command_options}); + if (defined($self->{option_results}->{ps_exec_only})) { + $self->{output}->output_add(severity => 'OK', + short_msg => $stdout); + $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); + $self->{output}->exit(); + } + + $self->{jobs} = {}; + my @lines = split /\n/, $stdout; + foreach my $line (@lines) { + next if ($line !~ /^\[name\s*=(.*?)\]\[type\s*=(.*?)\]/i); + my ($name, $type) = (centreon::plugins::misc::trim($1), centreon::plugins::misc::trim($2)); + + if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' && + $name !~ /$self->{option_results}->{filter_name}/i) { + $self->{output}->output_add(long_msg => "skipping job '" . $name . "': no type or no matching filter type", debug => 1); + next; + } + + $self->{jobs}->{$name} = { type => $type }; + } +} + +1; + +__END__ + +=head1 MODE + +List jobs. + +=over 8 + +=item B<--timeout> + +Set timeout time for command execution (Default: 50 sec) + +=item B<--no-ps> + +Don't encode powershell. To be used with --command and 'type' command. + +=item B<--command> + +Command to get information (Default: 'powershell.exe'). +Can be changed if you have output in a file. To be used with --no-ps option!!! + +=item B<--command-path> + +Command path (Default: none). + +=item B<--command-options> + +Command options (Default: '-InputFormat none -NoLogo -EncodedCommand'). + +=item B<--ps-exec-only> + +Print powershell output. + +=item B<--filter-name> + +Filter job name (can be a regexp). + +=back + +=cut diff --git a/apps/backup/veeam/local/plugin.pm b/apps/backup/veeam/local/plugin.pm index 7828b8c9f..2d59c721f 100644 --- a/apps/backup/veeam/local/plugin.pm +++ b/apps/backup/veeam/local/plugin.pm @@ -32,6 +32,7 @@ sub new { $self->{version} = '0.1'; %{$self->{modes}} = ( 'job-status' => 'apps::backup::veeam::local::mode::jobstatus', + 'list-jobs' => 'apps::backup::veeam::local::mode::listjobs', ); return $self; diff --git a/centreon/common/powershell/veeam/listjobs.pm b/centreon/common/powershell/veeam/listjobs.pm new file mode 100644 index 000000000..678f18f92 --- /dev/null +++ b/centreon/common/powershell/veeam/listjobs.pm @@ -0,0 +1,80 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package centreon::common::powershell::veeam::listjobs; + +use strict; +use warnings; +use centreon::plugins::misc; + +sub get_powershell { + my (%options) = @_; + my $no_ps = (defined($options{no_ps})) ? 1 : 0; + + return '' if ($no_ps == 1); + + my $ps = ' +$culture = new-object "System.Globalization.CultureInfo" "en-us" +[System.Threading.Thread]::CurrentThread.CurrentUICulture = $culture + +If (@(Get-PSSnapin -Registered | Where-Object {$_.Name -Match "VeeamPSSnapin"} ).count -gt 0) { + If (@(Get-PSSnapin | Where-Object {$_.Name -Match "VeeamPSSnapin"} ).count -eq 0) { + Try { + Get-PSSnapin -Registered | Where-Object {$_.Name -Match "VeeamPSSnapin"} | Add-PSSnapin -ErrorAction STOP + } Catch { + Write-Host $Error[0].Exception + exit 1 + } + } +} else { + Write-Host "Snap-In Veeam no present or not registered" + exit 1 +} + +$ProgressPreference = "SilentlyContinue" + +Try { + $ErrorActionPreference = "Stop" + + $jobs = Get-VBRJob + foreach ($job in $jobs) { + Write-Host "[name = " $job.Name "]" -NoNewline + Write-Host "[type = " $job.JobType "]" + } +} Catch { + Write-Host $Error[0].Exception + exit 1 +} + +exit 0 +'; + + return centreon::plugins::misc::powershell_encoded($ps); +} + +1; + +__END__ + +=head1 DESCRIPTION + +Method to get veeam jobs. + +=cut From 739fcb5040c0f5736c0b702bb80dc07fcfb465ae Mon Sep 17 00:00:00 2001 From: qgarnier Date: Wed, 20 Dec 2017 13:51:58 +0100 Subject: [PATCH 36/77] fix header --- hardware/sensors/hwgste/snmp/plugin.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hardware/sensors/hwgste/snmp/plugin.pm b/hardware/sensors/hwgste/snmp/plugin.pm index 150a42b0a..a51e73c84 100644 --- a/hardware/sensors/hwgste/snmp/plugin.pm +++ b/hardware/sensors/hwgste/snmp/plugin.pm @@ -16,8 +16,8 @@ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. - # + package hardware::sensors::hwgste::snmp::plugin; use strict; From 6d66fb7b565013de679ffadc96c9fe88e8be78e0 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Wed, 20 Dec 2017 14:43:06 +0100 Subject: [PATCH 37/77] add plugin comet p8000 snmp --- .../sensors/comet/p8000/snmp/mode/sensors.pm | 197 ++++++++++++++++++ hardware/sensors/comet/p8000/snmp/plugin.pm | 48 +++++ 2 files changed, 245 insertions(+) create mode 100644 hardware/sensors/comet/p8000/snmp/mode/sensors.pm create mode 100644 hardware/sensors/comet/p8000/snmp/plugin.pm diff --git a/hardware/sensors/comet/p8000/snmp/mode/sensors.pm b/hardware/sensors/comet/p8000/snmp/mode/sensors.pm new file mode 100644 index 000000000..7705e2840 --- /dev/null +++ b/hardware/sensors/comet/p8000/snmp/mode/sensors.pm @@ -0,0 +1,197 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package hardware::sensors::comet::p8000::snmp::mode::sensors; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +my $instance_mode; + +sub custom_temperature_perfdata { + my ($self, %options) = @_; + + my ($extra_label, $unit) = ('', 'C'); + if (!defined($options{extra_instance}) || $options{extra_instance} != 0) { + $extra_label .= '_' . $self->{result_values}->{display_absolute}; + } + $self->{output}->perfdata_add( + label => $self->{label} . $extra_label, unit => $unit, + value => $self->{result_values}->{$self->{label} . '_absolute'}, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{label} . '_' . $self->{result_values}->{display_absolute}), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{label} . '_' . $self->{result_values}->{display_absolute}), + ); +} + +sub custom_humidity_perfdata { + my ($self, %options) = @_; + + my ($extra_label, $unit) = ('', '%'); + if (!defined($options{extra_instance}) || $options{extra_instance} != 0) { + $extra_label .= '_' . $self->{result_values}->{display_absolute}; + } + $self->{output}->perfdata_add( + label => $self->{label} . $extra_label, unit => $unit, + value => $self->{result_values}->{$self->{label}}, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{label} . '_' . $self->{result_values}->{display_absolute}), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{label} . '_' . $self->{result_values}->{display_absolute}), + min => 0, max => 100, + ); +} + +sub custom_sensor_threshold { + my ($self, %options) = @_; + + my $warn_limit; + if (defined($instance_mode->{option_results}->{'warning-' . $self->{label}}) && $instance_mode->{option_results}->{'warning-' . $self->{label}} ne '') { + $warn_limit = $instance_mode->{option_results}->{'warning-' . $self->{label}}; + } + $self->{perfdata}->threshold_validate(label => 'warning-' . $self->{label} . '_' . $self->{result_values}->{display_absolute}, value => $warn_limit); + + my $crit_limit = $self->{result_values}->{limit_lo_absolute} . ':' . $self->{result_values}->{limit_hi_absolute}; + if (defined($instance_mode->{option_results}->{'critical-' . $self->{label}}) && $instance_mode->{option_results}->{'critical-' . $self->{label}} ne '') { + $crit_limit = $instance_mode->{option_results}->{'critical-' . $self->{label}}; + } + $self->{perfdata}->threshold_validate(label => 'critical-' . $self->{label} . '_' . $self->{result_values}->{display_absolute}, value => $crit_limit); + + my $exit = $self->{perfdata}->threshold_check(value => $self->{result_values}->{$self->{label} . '_absolute'}, + threshold => [ { label => 'critical-' . $self->{label} . '_' . $self->{result_values}->{display_absolute}, exit_litteral => 'critical' }, + { label => 'warning-' . $self->{label} . '_' . $self->{result_values}->{display_absolute}, exit_litteral => 'warning' } ]); + return $exit; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'channel', type => 1, cb_prefix_output => 'prefix_channel_output', message_multiple => 'All channels are ok', skipped_code => { -10 => 1 } }, + ]; + + $self->{maps_counters}->{channel} = [ + { label => 'temperature', set => { + key_values => [ { name => 'temperature' }, { name => 'limit_hi' }, { name => 'limit_lo' }, { name => 'display' } ], + output_template => 'Temperature: %.2f C', + closure_custom_perfdata => $self->can('custom_temperature_perfdata'), + closure_custom_threshold_check => $self->can('custom_sensor_threshold'), + } + }, + { label => 'humidity', set => { + key_values => [ { name => 'humidity' }, { name => 'limit_hi' }, { name => 'limit_lo' }, { name => 'display' } ], + output_template => 'Humidity: %.2f %%', + closure_custom_perfdata => $self->can('custom_humidity_perfdata'), + closure_custom_threshold_check => $self->can('custom_sensor_threshold'), + } + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; +} + +sub prefix_channel_output { + my ($self, %options) = @_; + + return "Channel '" . $options{instance_value}->{display} . "' "; +} + +sub manage_selection { + my ($self, %options) = @_; + + my $oid_channels = '.1.3.6.1.4.1.22626.1.5.2'; + my $chName_suffix = '1.0'; + my $chVal_suffix = '2.0'; + my $chLimHi_suffix = '5.0'; + my $chLimLo_suffix = '6.0'; + my $chUnit_suffix = '9.0'; + + my $snmp_result = $options{snmp}->get_table(oid => $oid_channels, nothing_quit => 1); + $self->{channel} = {}; + for my $channel ((1, 2, 3, 4)) { + next if (!defined($snmp_result->{$oid_channels . '.' . $channel . '.' . $chName_suffix})); + + my $value = $snmp_result->{$oid_channels . '.' . $channel . '.' . $chVal_suffix}; + # sensor not configured (n/a) + next if ($value !~ /[0-9\.]/); + + my $name = $snmp_result->{$oid_channels . '.' . $channel . '.' . $chName_suffix}; + my $unit = $snmp_result->{$oid_channels . '.' . $channel . '.' . $chUnit_suffix}; + my $limit_hi = $snmp_result->{$oid_channels . '.' . $channel . '.' . $chLimHi_suffix}; + my $limit_lo = $snmp_result->{$oid_channels . '.' . $channel . '.' . $chLimLo_suffix}; + + $limit_hi /= 10; + $limit_lo /= 10; + if ($unit =~ /F/i) { + $value = sprintf("%.2f", ($value - 32) / 1.8); + $limit_hi = sprintf("%.2f", ($limit_hi - 32) / 1.8); + $limit_lo = sprintf("%.2f", ($limit_lo - 32) / 1.8); + } + + $self->{channel}->{$channel} = { + display => $name, + humidity => ($unit =~ /RH/) ? $value : undef, + temperature => ($unit =~ /F|C/) ? $value : undef, + limit_hi => $limit_hi, + limit_lo => $limit_lo, + }; + } +} + +1; + +__END__ + +=head1 MODE + +Check environment channels. + +=over 8 + +=item B<--warning-*> + +Threshold warning. +Can be: 'temperature', 'humidity'. + +=item B<--critical-*> + +Threshold critical. +Can be: 'temperature', 'humidity'. + +=back + +=cut diff --git a/hardware/sensors/comet/p8000/snmp/plugin.pm b/hardware/sensors/comet/p8000/snmp/plugin.pm new file mode 100644 index 000000000..a08e2f11c --- /dev/null +++ b/hardware/sensors/comet/p8000/snmp/plugin.pm @@ -0,0 +1,48 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package hardware::sensors::comet::p8000::snmp::plugin; + +use strict; +use warnings; +use base qw(centreon::plugins::script_snmp); + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '0.1'; + %{$self->{modes}} = ( + 'sensors' => 'hardware::sensors::comet::p8000::snmp::mode::sensors', + ); + + return $self; +} + +1; + +__END__ + +=head1 PLUGIN DESCRITPION + +Check Comet P8000 (P8510, P8511, P8541, P8610, P8611, p8631, P8641, P8552, P8652) sensors in SNMP. + +=cut From ad529132be6419f790dbb5f3b08be8b2a14aaa36 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Wed, 20 Dec 2017 14:46:58 +0100 Subject: [PATCH 38/77] fix plugin --- hardware/sensors/comet/p8000/snmp/mode/sensors.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hardware/sensors/comet/p8000/snmp/mode/sensors.pm b/hardware/sensors/comet/p8000/snmp/mode/sensors.pm index 7705e2840..4879450f1 100644 --- a/hardware/sensors/comet/p8000/snmp/mode/sensors.pm +++ b/hardware/sensors/comet/p8000/snmp/mode/sensors.pm @@ -51,7 +51,7 @@ sub custom_humidity_perfdata { } $self->{output}->perfdata_add( label => $self->{label} . $extra_label, unit => $unit, - value => $self->{result_values}->{$self->{label}}, + value => $self->{result_values}->{$self->{label} . '_absolute'}, warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{label} . '_' . $self->{result_values}->{display_absolute}), critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{label} . '_' . $self->{result_values}->{display_absolute}), min => 0, max => 100, From 8804178d1e4a702f8d764b119eb86dee5dd4545a Mon Sep 17 00:00:00 2001 From: qgarnier Date: Wed, 20 Dec 2017 14:53:40 +0100 Subject: [PATCH 39/77] prepare new release --- centreon/plugins/script.pm | 2 +- changelog | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/centreon/plugins/script.pm b/centreon/plugins/script.pm index 9c6dbf490..75484c42e 100644 --- a/centreon/plugins/script.pm +++ b/centreon/plugins/script.pm @@ -30,7 +30,7 @@ use Pod::Find qw(pod_where); my %handlers = (DIE => {}); -my $global_version = 20171208; +my $global_version = 20171222; my $alternative_fatpacker = 0; sub new { diff --git a/changelog b/changelog index 87b485d0a..66277dad9 100644 --- a/changelog +++ b/changelog @@ -1,3 +1,13 @@ +2017-12-22 Quentin Garnier + * Plugin added: Pure Storage SNMP + * Plugin added: Pure Storage Rest API + * Plugin added: Amazon AWS API + * Plugin added: Comet P8000 series SNMP + * Plugin added: Veeam local + * Plugin added: Colubris SNMP + * Plugin added: Alpha ups SNMP + * Plugin added: Infoblox SNMP + 2017-12-08 Quentin Garnier * Plugin added: Kingdee Rest API * Plugin added: Redis Cli From 30500a885b426b46db7cdae81c54c57b81ef0e3b Mon Sep 17 00:00:00 2001 From: qgarnier Date: Wed, 20 Dec 2017 15:01:30 +0100 Subject: [PATCH 40/77] add case for tomcat 8 --- apps/tomcat/jmx/mode/datasourceusage.pm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/tomcat/jmx/mode/datasourceusage.pm b/apps/tomcat/jmx/mode/datasourceusage.pm index b1360f721..e43485452 100644 --- a/apps/tomcat/jmx/mode/datasourceusage.pm +++ b/apps/tomcat/jmx/mode/datasourceusage.pm @@ -159,6 +159,8 @@ sub manage_selection { $self->{request} = [ { mbean => "*:type=DataSource,class=*,context=*,host=*,name=*", attributes => [ { name => 'numActive' }, { name => 'numIdle' }, { name => 'maxIdle' }, { name => 'maxTotal' }, { name => 'maxActive' } ] }, + { mbean => "*:type=DataSource,class=*,path=*,host=*,name=*", attributes => + [ { name => 'numActive' }, { name => 'numIdle' }, { name => 'maxIdle' }, { name => 'maxTotal' }, { name => 'maxActive' } ] }, ]; my $result = $options{custom}->get_attributes(request => $self->{request}, nothing_quit => 1); From 4a3c349b47ddf433a83fb3516c5d5a310ff72351 Mon Sep 17 00:00:00 2001 From: Colin GAGNAIRE Date: Wed, 20 Dec 2017 18:22:21 +0100 Subject: [PATCH 41/77] add redis cluster rest api --- apps/redis/restapi/custom/api.pm | 224 ++++++++++++ apps/redis/restapi/mode/clusterstats.pm | 322 +++++++++++++++++ apps/redis/restapi/mode/databasesstats.pm | 308 ++++++++++++++++ apps/redis/restapi/mode/nodesstats.pm | 419 ++++++++++++++++++++++ apps/redis/restapi/mode/shardsstats.pm | 353 ++++++++++++++++++ apps/redis/restapi/plugin.pm | 51 +++ 6 files changed, 1677 insertions(+) create mode 100644 apps/redis/restapi/custom/api.pm create mode 100644 apps/redis/restapi/mode/clusterstats.pm create mode 100644 apps/redis/restapi/mode/databasesstats.pm create mode 100644 apps/redis/restapi/mode/nodesstats.pm create mode 100644 apps/redis/restapi/mode/shardsstats.pm create mode 100644 apps/redis/restapi/plugin.pm diff --git a/apps/redis/restapi/custom/api.pm b/apps/redis/restapi/custom/api.pm new file mode 100644 index 000000000..41eb2496a --- /dev/null +++ b/apps/redis/restapi/custom/api.pm @@ -0,0 +1,224 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::restapi::custom::api; + +use strict; +use warnings; +use centreon::plugins::http; +use JSON::XS; + +sub new { + my ($class, %options) = @_; + my $self = {}; + bless $self, $class; + + if (!defined($options{output})) { + print "Class Custom: Need to specify 'output' argument.\n"; + exit 3; + } + if (!defined($options{options})) { + $options{output}->add_option_msg(short_msg => "Class Custom: Need to specify 'options' argument."); + $options{output}->option_exit(); + } + + if (!defined($options{noptions})) { + $options{options}->add_options(arguments => + { + "hostname:s@" => { name => 'hostname' }, + "port:s@" => { name => 'port' }, + "proto:s@" => { name => 'proto' }, + "username:s@" => { name => 'username' }, + "password:s@" => { name => 'password' }, + "proxyurl:s@" => { name => 'proxyurl' }, + "timeout:s@" => { name => 'timeout' }, + "ssl:s@" => { name => 'ssl' }, + }); + } + $options{options}->add_help(package => __PACKAGE__, sections => 'REST API OPTIONS', once => 1); + + $self->{output} = $options{output}; + $self->{mode} = $options{mode}; + $self->{http} = centreon::plugins::http->new(output => $self->{output}); + + return $self; + +} + +sub set_options { + my ($self, %options) = @_; + + $self->{option_results} = $options{option_results}; +} + +sub set_defaults { + my ($self, %options) = @_; + + foreach (keys %{$options{default}}) { + if ($_ eq $self->{mode}) { + for (my $i = 0; $i < scalar(@{$options{default}->{$_}}); $i++) { + foreach my $opt (keys %{$options{default}->{$_}[$i]}) { + if (!defined($self->{option_results}->{$opt}[$i])) { + $self->{option_results}->{$opt}[$i] = $options{default}->{$_}[$i]->{$opt}; + } + } + } + } + } +} + +sub check_options { + my ($self, %options) = @_; + + $self->{hostname} = (defined($self->{option_results}->{hostname})) ? shift(@{$self->{option_results}->{hostname}}) : undef; + $self->{port} = (defined($self->{option_results}->{port})) ? shift(@{$self->{option_results}->{port}}) : 9443; + $self->{proto} = (defined($self->{option_results}->{proto})) ? shift(@{$self->{option_results}->{proto}}) : 'https'; + $self->{username} = (defined($self->{option_results}->{username})) ? shift(@{$self->{option_results}->{username}}) : ''; + $self->{password} = (defined($self->{option_results}->{password})) ? shift(@{$self->{option_results}->{password}}) : ''; + $self->{timeout} = (defined($self->{option_results}->{timeout})) ? shift(@{$self->{option_results}->{timeout}}) : 10; + $self->{proxyurl} = (defined($self->{option_results}->{proxyurl})) ? shift(@{$self->{option_results}->{proxyurl}}) : undef; + $self->{ssl} = (defined($self->{option_results}->{ssl})) ? shift(@{$self->{option_results}->{ssl}}) : 'tlsv1'; + + if (!defined($self->{hostname})) { + $self->{output}->add_option_msg(short_msg => "Need to specify hostname option."); + $self->{output}->option_exit(); + } + + if (!defined($self->{hostname}) || + scalar(@{$self->{option_results}->{hostname}}) == 0) { + return 0; + } + return 1; +} + +sub build_options_for_httplib { + my ($self, %options) = @_; + + $self->{option_results}->{hostname} = $self->{hostname}; + $self->{option_results}->{timeout} = $self->{timeout}; + $self->{option_results}->{port} = $self->{port}; + $self->{option_results}->{proto} = $self->{proto}; + $self->{option_results}->{proxyurl} = $self->{proxyurl}; + $self->{option_results}->{credentials} = 1; + $self->{option_results}->{username} = $self->{username}; + $self->{option_results}->{password} = $self->{password}; + $self->{option_results}->{ssl} = $self->{ssl}; +} + +sub settings { + my ($self, %options) = @_; + + $self->build_options_for_httplib(); + $self->{http}->set_options(%{$self->{option_results}}); +} + +sub get_connection_info { + my ($self, %options) = @_; + + return $self->{hostname} . ":" . $self->{port}; +} + +sub get { + my ($self, %options) = @_; + + $self->settings(); + + my $response = $self->{http}->request(url_path => $options{path}); + + my $content; + eval { + $content = JSON::XS->new->utf8->decode($response); + }; + if ($@) { + $self->{output}->add_option_msg(short_msg => "Cannot decode json response: $@"); + $self->{output}->option_exit(); + } + + my $return; + if (ref($content) eq 'ARRAY') { + foreach my $uid (@$content) { + if (defined($uid->{errmsg})) { + $self->{output}->add_option_msg(short_msg => "Cannot get data: " . $uid->{errmsg}); + $self->{output}->option_exit(); + } + $return->{$uid->{uid}} = $uid; + } + } else { + if (defined($content->{errmsg})) { + $self->{output}->add_option_msg(short_msg => "Cannot get data: " . $content->{errmsg}); + $self->{output}->option_exit(); + } + $return = $content; + } + + return $return; +} + +1; + +__END__ + +=head1 NAME + +RedisLabs Enterprise Cluster REST API + +=head1 SYNOPSIS + +RedisLabs Enterprise Cluster Rest API custom mode + +=head1 REST API OPTIONS + +=over 8 + +=item B<--hostname> + +Cluster hostname. + +=item B<--port> + +Port used (Default: 9443) + +=item B<--proto> + +Specify https if needed (Default: 'https') + +=item B<--username> + +Cluster username. + +=item B<--password> + +Cluster password. + +=item B<--proxyurl> + +Proxy URL if any + +=item B<--timeout> + +Set HTTP timeout + +=back + +=head1 DESCRIPTION + +B. + +=cut diff --git a/apps/redis/restapi/mode/clusterstats.pm b/apps/redis/restapi/mode/clusterstats.pm new file mode 100644 index 000000000..4cf053c34 --- /dev/null +++ b/apps/redis/restapi/mode/clusterstats.pm @@ -0,0 +1,322 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::restapi::mode::clusterstats; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use Digest::MD5 qw(md5_hex); + +my $instance_mode; + +sub custom_usage_perfdata { + my ($self, %options) = @_; + + $self->{output}->perfdata_add(label => $self->{result_values}->{perf}, unit => 'B', + value => $self->{result_values}->{used}, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{result_values}->{label}, total => $self->{result_values}->{total}, cast_int => 1), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{result_values}->{label}, total => $self->{result_values}->{total}, cast_int => 1), + min => 0, max => $self->{result_values}->{total}); +} + +sub custom_usage_threshold { + my ($self, %options) = @_; + + my ($exit, $threshold_value); + $threshold_value = $self->{result_values}->{used}; + $threshold_value = $self->{result_values}->{free} if (defined($instance_mode->{option_results}->{free})); + if ($instance_mode->{option_results}->{units} eq '%') { + $threshold_value = $self->{result_values}->{prct_used}; + $threshold_value = $self->{result_values}->{prct_free} if (defined($instance_mode->{option_results}->{free})); + } + $exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{result_values}->{label}, exit_litteral => 'critical' }, { label => 'warning-' . $self->{result_values}->{label}, exit_litteral => 'warning' } ]); + return $exit; +} + +sub custom_usage_output { + my ($self, %options) = @_; + + my ($used_value, $used_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{used}); + my ($free_value, $free_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{free}); + my ($total_value, $total_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{total}); + + my $msg = sprintf("%s usage: Total: %s Used: %s (%.2f%%) Free: %s (%.2f%%)", $self->{result_values}->{display}, + $total_value . " " . $total_unit, + $used_value . " " . $used_unit, $self->{result_values}->{prct_used}, + $free_value . " " . $free_unit, $self->{result_values}->{prct_free}); + return $msg; +} + +sub custom_usage_calc { + my ($self, %options) = @_; + + $self->{result_values}->{label} = $options{extra_options}->{label}; + $self->{result_values}->{perf} = $options{extra_options}->{perf}; + $self->{result_values}->{display} = $options{extra_options}->{display}; + $self->{result_values}->{free} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{free}}; + $self->{result_values}->{total} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{total}}; + + if ($self->{result_values}->{total} != 0) { + $self->{result_values}->{used} = $self->{result_values}->{total} - $self->{result_values}->{free}; + $self->{result_values}->{prct_used} = $self->{result_values}->{used} * 100 / $self->{result_values}->{total}; + $self->{result_values}->{prct_free} = 100 - $self->{result_values}->{prct_used}; + } else { + $self->{result_values}->{used} = '0'; + $self->{result_values}->{prct_used} = '0'; + $self->{result_values}->{prct_free} = '0'; + } + + return 0; +} + +sub prefix_output { + my ($self, %options) = @_; + + return "Cluster '" . $options{instance_value}->{name} . "' "; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'cluster', type => 1, cb_prefix_output => 'prefix_output', message_multiple => 'All cluster counters are ok' }, + ]; + + $self->{maps_counters}->{cluster} = [ + { label => 'cpu-system', set => { + key_values => [ { name => 'cpu_system' } ], + output_template => 'Cpu system: %.2f %%', + perfdatas => [ + { label => 'cpu_system', value => 'cpu_system_absolute', template => '%.2f', + min => 0, max => 100, unit => '%' }, + ], + } + }, + { label => 'cpu-user', set => { + key_values => [ { name => 'cpu_user' } ], + output_template => 'Cpu user: %.2f %%', + perfdatas => [ + { label => 'cpu_user', value => 'cpu_user_absolute', template => '%.2f', + min => 0, max => 100, unit => '%' }, + ], + } + }, + { label => 'requests', set => { + key_values => [ { name => 'total_req', diff => 1 } ], + output_template => 'Requests per seconds: %s', + per_second => 1, + perfdatas => [ + { label => 'requests', value => 'total_req_per_second', template => '%s', + min => 0, unit => '/s' }, + ], + } + }, + { label => 'memory-used', set => { + key_values => [ { name => 'free_memory' }, { name => 'total_memory' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_calc_extra_options => { display => 'Ram', label => 'memory-used', perf => 'memory_used', + free => 'free_memory', total => 'total_memory' }, + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + { label => 'persistent-storage-used', set => { + key_values => [ { name => 'persistent_storage_free' }, { name => 'persistent_storage_size' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_calc_extra_options => { display => 'Persistent storage', label => 'persistent-storage-used', perf => 'persistent_storage_used', + free => 'persistent_storage_free', total => 'persistent_storage_size' }, + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + { label => 'ephemeral-storage-used', set => { + key_values => [ { name => 'ephemeral_storage_free' }, { name => 'ephemeral_storage_size' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_calc_extra_options => { display => 'Ephemeral storage', label => 'ephemeral-storage-used', perf => 'ephemeral_storage_used', + free => 'ephemeral_storage_free', total => 'ephemeral_storage_size' }, + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + { label => 'flash-storage-used', set => { + key_values => [ { name => 'available_flash' }, { name => 'bigstore_size' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_calc_extra_options => { display => 'Flash storage', label => 'flash-storage-used', perf => 'flash_storage_used', + free => 'available_flash', total => 'bigstore_size' }, + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + { label => 'flash-iops', set => { + key_values => [ { name => 'bigstore_iops' } ], + output_template => 'Flash IOPS: %s', + perfdatas => [ + { label => 'flash_iops', value => 'bigstore_iops_absolute', template => '%s', + min => 0, unit => '/s' }, + ], + } + }, + { label => 'flash-throughput', set => { + key_values => [ { name => 'bigstore_throughput' } ], + output_template => 'Flash throughput: %s %s/s', + output_change_bytes => 1, + perfdatas => [ + { label => 'flash_throughput', value => 'bigstore_throughput_absolute', template => '%s', + min => 0, unit => 'B/s' }, + ], + } + }, + { label => 'connections', set => { + key_values => [ { name => 'conns' } ], + output_template => 'Connections: %s', + perfdatas => [ + { label => 'connections', value => 'conns_absolute', template => '%s', + min => 0 }, + ], + } + }, + { label => 'traffic-in', set => { + key_values => [ { name => 'ingress' } ], + output_template => 'Traffic In: %s %s/s', + output_change_bytes => 2, + perfdatas => [ + { label => 'traffic_in', value => 'ingress_absolute', template => '%d', min => 0, unit => 'b/s' }, + ], + }, + }, + { label => 'traffic-out', set => { + key_values => [ { name => 'egress' } ], + output_template => 'Traffic Out: %s %s/s', + output_change_bytes => 2, + perfdatas => [ + { label => 'traffic_out', value => 'egress_absolute', template => '%d', min => 0, unit => 'b/s' }, + ], + }, + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 1); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "units:s" => { name => 'units', default => '%' }, + "free" => { name => 'free' }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; +} + +sub manage_selection { + my ($self, %options) = @_; + + $self->{cache_name} = "redis_restapi_" . $self->{mode} . '_' . $options{custom}->get_connection_info() . '_' . + (defined($self->{option_results}->{filter_counters}) ? md5_hex($self->{option_results}->{filter_counters}) : md5_hex('all')); + + my $result = $options{custom}->get(path => '/v1/cluster/stats/last'); + my $result2 = $options{custom}->get(path => '/v1/cluster'); + my $result3 = $options{custom}->get(path => '/v1/nodes'); + + my $total_memory = 0; + my $persistent_storage_size = 0; + my $ephemeral_storage_size = 0; + my $bigstore_size = 0; + foreach my $node (keys $result3) { + $total_memory = $total_memory + $result3->{$node}->{total_memory}; + $persistent_storage_size = $persistent_storage_size + $result3->{$node}->{persistent_storage_size}; + $ephemeral_storage_size = $ephemeral_storage_size + $result3->{$node}->{ephemeral_storage_size}; + $bigstore_size = $bigstore_size + $result3->{$node}->{bigstore_size}; + } + + $self->{cluster}->{$result2->{name}} = { + name => $result2->{name}, + cpu_system => $result->{cpu_system} * 100, + cpu_user => $result->{cpu_user} * 100, + free_memory => $result->{free_memory}, + total_memory => $total_memory, + persistent_storage_free => $result->{persistent_storage_free}, + persistent_storage_size => $persistent_storage_size, + ephemeral_storage_free => $result->{ephemeral_storage_free}, + ephemeral_storage_size => $ephemeral_storage_size, + available_flash => $result->{available_flash}, + bigstore_size => $bigstore_size, + bigstore_iops => $result->{bigstore_iops}, + bigstore_kv_ops => $result->{bigstore_kv_ops}, + bigstore_throughput => $result->{bigstore_throughput}, + conns => $result->{conns}, + ingress => $result->{ingress_bytes} * 8, + egress => $result->{egress_bytes} * 8, + total_req => $result->{total_req}, + }; +} + +1; + +__END__ + +=head1 MODE + +Check RedisLabs Enterprise Cluster statistics. + +=over 8 + +=item B<--filter-counters> + +Only display some counters (regexp can be used). +Example: --filter-counters='^cpu' + +=item B<--warning-*> + +Threshold warning. +Can be: 'cpu-system', 'cpu-user', +'requests', 'memory-used', 'flash-storage-used', +'persistent-storage-used', 'ephemeral-storage-used', +'flash-iops', 'flash-throughput', 'connections', +'traffic-in', 'traffic-out'. + +=item B<--critical-*> + +Threshold critical. +Can be: 'cpu-system', 'cpu-user', +'requests', 'memory-used', 'flash-storage-used', +'persistent-storage-used', 'ephemeral-storage-used', +'flash-iops', 'flash-throughput', 'connections', +'traffic-in', 'traffic-out'. + +=back + +=cut diff --git a/apps/redis/restapi/mode/databasesstats.pm b/apps/redis/restapi/mode/databasesstats.pm new file mode 100644 index 000000000..13af3b40a --- /dev/null +++ b/apps/redis/restapi/mode/databasesstats.pm @@ -0,0 +1,308 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::restapi::mode::databasesstats; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use Digest::MD5 qw(md5_hex); + +my $instance_mode; + +sub custom_status_threshold { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && + eval "$instance_mode->{option_results}->{critical_status}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && + eval "$instance_mode->{option_results}->{warning_status}") { + $status = 'warning'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_status_output { + my ($self, %options) = @_; + + my $msg = sprintf("Status is '%s' [type: %s] [sync: %s] [backup status: %s] [export status: %s] [shard list: %s]", + $self->{result_values}->{status}, + $self->{result_values}->{type}, + $self->{result_values}->{sync}, + $self->{result_values}->{backup_status}, + $self->{result_values}->{export_status}, + $self->{result_values}->{shard_list}); + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{type} = $options{new_datas}->{$self->{instance} . '_type'}; + $self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_status'}; + $self->{result_values}->{sync} = $options{new_datas}->{$self->{instance} . '_sync'}; + $self->{result_values}->{backup_status} = $options{new_datas}->{$self->{instance} . '_backup_status'}; + $self->{result_values}->{export_status} = $options{new_datas}->{$self->{instance} . '_export_status'}; + $self->{result_values}->{shard_list} = $options{new_datas}->{$self->{instance} . '_shard_list'}; + return 0; +} + +sub prefix_output { + my ($self, %options) = @_; + + return "Database '" . $options{instance_value}->{display} . "' "; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'databases', type => 1, cb_prefix_output => 'prefix_output', message_multiple => 'All databases counters are ok' }, + ]; + + $self->{maps_counters}->{databases} = [ + { label => 'status', threshold => 0, set => { + key_values => [ { name => 'status' }, { name => 'type' }, { name => 'sync' }, { name => 'backup_status' }, { name => 'export_status' }, { name => 'shard_list' } ], + closure_custom_calc => $self->can('custom_status_calc'), + closure_custom_output => $self->can('custom_status_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + { label => 'ops-per-sec', set => { + key_values => [ { name => 'instantaneous_ops_per_sec' }, { name => 'display' } ], + output_template => 'Operations: %s ops/s', + perfdatas => [ + { label => 'ops_per_sec', value => 'instantaneous_ops_per_sec_absolute', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'memory-used', set => { + key_values => [ { name => 'used_memory' }, { name => 'display' } ], + output_template => 'Memory used: %s %s', + output_change_bytes => 1, + perfdatas => [ + { label => 'memory-used', value => 'used_memory_absolute', template => '%s', + min => 0, unit => 'B', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'total-keys', set => { + key_values => [ { name => 'no_of_keys' }, { name => 'display' } ], + output_template => 'Total keys: %s', + perfdatas => [ + { label => 'total-keys', value => 'no_of_keys_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'read-hits', set => { + key_values => [ { name => 'read_hits' }, { name => 'display' } ], + output_template => 'Read hits: %s /s', + perfdatas => [ + { label => 'read_hits', value => 'read_hits_absolute', template => '%s', + min => 0, unit => '/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'read-misses', set => { + key_values => [ { name => 'read_misses' }, { name => 'display' } ], + output_template => 'Read misses: %s /s', + perfdatas => [ + { label => 'read_misses', value => 'read_misses_absolute', template => '%s', + min => 0, unit => '/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'write-hits', set => { + key_values => [ { name => 'write_hits' }, { name => 'display' } ], + output_template => 'Write hits: %s /s', + perfdatas => [ + { label => 'write_hits', value => 'write_hits_absolute', template => '%s', + min => 0, unit => '/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'write-misses', set => { + key_values => [ { name => 'write_misses' }, { name => 'display' } ], + output_template => 'Write misses: %s /s', + perfdatas => [ + { label => 'write_misses', value => 'write_misses_absolute', template => '%s', + min => 0, unit => '/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'evicted-objects', set => { + key_values => [ { name => 'evicted_objects' }, { name => 'display' } ], + output_template => 'Evicted objects: %s', + perfdatas => [ + { label => 'evicted_objects', value => 'evicted_objects_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'expired-objects', set => { + key_values => [ { name => 'expired_objects' }, { name => 'display' } ], + output_template => 'Evicted objects: %s', + perfdatas => [ + { label => 'expired_objects', value => 'expired_objects_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'mem-frag-ratio', set => { + key_values => [ { name => 'mem_frag_ratio' }, { name => 'display' } ], + output_template => 'Memory fragmentation ratio: %s', + perfdatas => [ + { label => 'mem_frag_ratio', value => 'mem_frag_ratio_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 1); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "filter-database:s" => { name => 'filter_database' }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; +} + +sub manage_selection { + my ($self, %options) = @_; + + $self->{cache_name} = "redis_restapi_" . $self->{mode} . '_' . $options{custom}->get_connection_info() . '_' . + (defined($self->{option_results}->{filter_counters}) ? md5_hex($self->{option_results}->{filter_counters}) : md5_hex('all')); + + my $result = $options{custom}->get(path => '/v1/bdbs/stats/last'); + my $result2 = $options{custom}->get(path => '/v1/bdbs'); + + foreach my $database (keys $result) { + if (defined($self->{option_results}->{filter_database}) && $self->{option_results}->{filter_database} ne '' && + $database !~ /$self->{option_results}->{filter_database}/) { + $self->{output}->output_add(long_msg => "skipping database '" . $database . "': no matching filter.", debug => 1); + next; + } + + my $shard_list = '-'; + if (@{$result2->{$database}->{shard_list}}) { $shard_list = join(", ", @{$result2->{$database}->{shard_list}}); } + + $self->{databases}->{$database} = { + display => $result2->{$database}->{name}, + status => defined($result2->{$database}->{status}) ? $result2->{$database}->{status} : '-', + type => defined($result2->{$database}->{type}) ? $result2->{$database}->{type} : '-', + sync => defined($result2->{$database}->{sync}) ? $result2->{$database}->{sync} : '-', + backup_status => defined($result2->{$database}->{backup_status}) ? $result2->{$database}->{backup_status} : '-', + export_status => defined($result2->{$database}->{export_status}) ? $result2->{$database}->{export_status} : '-', + shard_list => $shard_list, + used_memory => $result->{$database}->{used_memory}, + instantaneous_ops_per_sec => $result->{$database}->{instantaneous_ops_per_sec}, + no_of_keys => $result->{$database}->{no_of_keys}, + evicted_objects => $result->{$database}->{evicted_objects}, + expired_objects => $result->{$database}->{expired_objects}, + read_hits => $result->{$database}->{read_hits}, + read_misses => $result->{$database}->{read_misses}, + write_hits => $result->{$database}->{write_hits}, + write_misses => $result->{$database}->{write_misses}, + mem_frag_ratio => $result->{$database}->{mem_frag_ratio}, + }; + + if (scalar(keys %{$self->{databases}}) <= 0) { + $self->{output}->add_option_msg(short_msg => 'No databases detected, check your filter ? '); + $self->{output}->option_exit(); + } + } +} + +1; + +__END__ + +=head1 MODE + +Check RedisLabs Enterprise Cluster databases statistics. + +=over 8 + +=item B<--filter-counters> + +Only display some counters (regexp can be used). +Example: --filter-counters='clients' + +=item B<--warning-status> + +Set warning threshold for status. +Can used special variables like: %{status}, %{type}, %{sync}, +%{backup_status}, %{export_status}, %{shard_list} + +=item B<--critical-status> + +Set critical threshold for status (Default: '%{status} !~ /active/i'). +Can used special variables like: %{status}, %{type}, %{sync}, +%{backup_status}, %{export_status}, %{shard_list} + +=item B<--warning-*> + +Threshold warning. +Can be: 'ops-per-sec', 'memory-used', +'total-keys', 'read-hits', 'read-misses', +'write-hits', 'write-misses', 'evicted-objects', +'expired-objects', 'mem-frag-ratio'. + +=item B<--critical-*> + +Threshold critical. +Can be: 'ops-per-sec', 'memory-used', +'total-keys', 'read-hits', 'read-misses', +'write-hits', 'write-misses', 'evicted-objects', +'expired-objects', 'mem-frag-ratio'. + +=back + +=cut diff --git a/apps/redis/restapi/mode/nodesstats.pm b/apps/redis/restapi/mode/nodesstats.pm new file mode 100644 index 000000000..3df536048 --- /dev/null +++ b/apps/redis/restapi/mode/nodesstats.pm @@ -0,0 +1,419 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::restapi::mode::nodesstats; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use Digest::MD5 qw(md5_hex); + +my $instance_mode; + +sub custom_usage_perfdata { + my ($self, %options) = @_; + + $self->{output}->perfdata_add(label => $self->{result_values}->{perf}, unit => 'B', + value => $self->{result_values}->{used}, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{result_values}->{label}, total => $self->{result_values}->{total}, cast_int => 1), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{result_values}->{label}, total => $self->{result_values}->{total}, cast_int => 1), + min => 0, max => $self->{result_values}->{total}); +} + +sub custom_usage_threshold { + my ($self, %options) = @_; + + my ($exit, $threshold_value); + $threshold_value = $self->{result_values}->{used}; + $threshold_value = $self->{result_values}->{free} if (defined($instance_mode->{option_results}->{free})); + if ($instance_mode->{option_results}->{units} eq '%') { + $threshold_value = $self->{result_values}->{prct_used}; + $threshold_value = $self->{result_values}->{prct_free} if (defined($instance_mode->{option_results}->{free})); + } + $exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{result_values}->{label}, exit_litteral => 'critical' }, { label => 'warning-' . $self->{result_values}->{label}, exit_litteral => 'warning' } ]); + return $exit; +} + +sub custom_usage_output { + my ($self, %options) = @_; + + my ($used_value, $used_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{used}); + my ($free_value, $free_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{free}); + my ($total_value, $total_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{total}); + + my $msg = sprintf("%s usage: Total: %s Used: %s (%.2f%%) Free: %s (%.2f%%)", $self->{result_values}->{display}, + $total_value . " " . $total_unit, + $used_value . " " . $used_unit, $self->{result_values}->{prct_used}, + $free_value . " " . $free_unit, $self->{result_values}->{prct_free}); + return $msg; +} + +sub custom_usage_calc { + my ($self, %options) = @_; + + $self->{result_values}->{label} = $options{extra_options}->{label}; + $self->{result_values}->{perf} = $options{extra_options}->{perf}; + $self->{result_values}->{display} = $options{extra_options}->{display}; + $self->{result_values}->{free} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{free}}; + $self->{result_values}->{total} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{total}}; + + if ($self->{result_values}->{total} != 0) { + $self->{result_values}->{used} = $self->{result_values}->{total} - $self->{result_values}->{free}; + $self->{result_values}->{prct_used} = $self->{result_values}->{used} * 100 / $self->{result_values}->{total}; + $self->{result_values}->{prct_free} = 100 - $self->{result_values}->{prct_used}; + } else { + $self->{result_values}->{used} = '0'; + $self->{result_values}->{prct_used} = '0'; + $self->{result_values}->{prct_free} = '0'; + } + + return 0; +} + +sub custom_status_threshold { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && + eval "$instance_mode->{option_results}->{critical_status}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && + eval "$instance_mode->{option_results}->{warning_status}") { + $status = 'warning'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_status_output { + my ($self, %options) = @_; + + my $msg = sprintf("Status is '%s' [shard list: %s] [int addr: %s] [ext addr: %s]", + $self->{result_values}->{status}, + $self->{result_values}->{shard_list}, + $self->{result_values}->{int_addr}, + $self->{result_values}->{ext_addr}); + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_status'}; + $self->{result_values}->{shard_list} = $options{new_datas}->{$self->{instance} . '_shard_list'}; + $self->{result_values}->{int_addr} = $options{new_datas}->{$self->{instance} . '_int_addr'}; + $self->{result_values}->{ext_addr} = $options{new_datas}->{$self->{instance} . '_ext_addr'}; + return 0; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 1); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "filter-node:s" => { name => 'filter_node' }, + "units:s" => { name => 'units', default => '%' }, + "free" => { name => 'free' }, + }); + + return $self; +} + +sub prefix_output { + my ($self, %options) = @_; + + return "Node '" . $options{instance_value}->{display} . "' "; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'nodes', type => 1, cb_prefix_output => 'prefix_output', message_separator => ', ', message_multiple => 'All nodes counters are ok' }, + ]; + + $self->{maps_counters}->{nodes} = [ + { label => 'status', threshold => 0, set => { + key_values => [ { name => 'status' }, { name => 'shard_list' }, { name => 'int_addr' }, { name => 'ext_addr' } ], + closure_custom_calc => $self->can('custom_status_calc'), + closure_custom_output => $self->can('custom_status_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + { label => 'cpu-system', set => { + key_values => [ { name => 'cpu_system' }, { name => 'display' } ], + output_template => 'Cpu system: %.2f %%', + perfdatas => [ + { label => 'cpu_system', value => 'cpu_system_absolute', template => '%.2f', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'cpu-user', set => { + key_values => [ { name => 'cpu_user' }, { name => 'display' } ], + output_template => 'Cpu user: %.2f %%', + perfdatas => [ + { label => 'cpu_user', value => 'cpu_user_absolute', template => '%.2f', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'requests', set => { + key_values => [ { name => 'total_req', diff => 1 }, { name => 'display' } ], + output_template => 'Requests per seconds: %s', + per_second => 1, + perfdatas => [ + { label => 'requests', value => 'total_req_per_second', template => '%s', + min => 0, unit => '/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'memory-used', set => { + key_values => [ { name => 'free_memory' }, { name => 'total_memory' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_calc_extra_options => { display => 'Ram', label => 'memory-used', perf => 'memory_used', + free => 'free_memory', total => 'total_memory' }, + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + { label => 'persistent-storage-used', set => { + key_values => [ { name => 'persistent_storage_free' }, { name => 'persistent_storage_size' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_calc_extra_options => { display => 'Persistent storage', label => 'persistent-storage-used', perf => 'persistent_storage_used', + free => 'persistent_storage_free', total => 'persistent_storage_size' }, + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + { label => 'ephemeral-storage-used', set => { + key_values => [ { name => 'ephemeral_storage_free' }, { name => 'ephemeral_storage_size' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_calc_extra_options => { display => 'Ephemeral storage', label => 'ephemeral-storage-used', perf => 'ephemeral_storage_used', + free => 'ephemeral_storage_free', total => 'ephemeral_storage_size' }, + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + { label => 'flash-storage-used', set => { + key_values => [ { name => 'available_flash' }, { name => 'bigstore_size' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_calc_extra_options => { display => 'Flash storage', label => 'flash-storage-used', perf => 'flash_storage_used', + free => 'available_flash', total => 'bigstore_size' }, + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + { label => 'flash-iops', set => { + key_values => [ { name => 'bigstore_iops' }, { name => 'display' } ], + output_template => 'Flash IOPS: %s', + perfdatas => [ + { label => 'flash_iops', value => 'bigstore_iops_absolute', template => '%s', + min => 0, unit => '/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'flash-throughput', set => { + key_values => [ { name => 'bigstore_throughput' }, { name => 'display' } ], + output_template => 'Flash throughput: %s %s/s', + output_change_bytes => 1, + perfdatas => [ + { label => 'flash_throughput', value => 'bigstore_throughput_absolute', template => '%s', + min => 0, unit => 'B/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'connections', set => { + key_values => [ { name => 'conns' }, { name => 'display' } ], + output_template => 'Connections: %s', + perfdatas => [ + { label => 'connections', value => 'conns_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'traffic-in', set => { + key_values => [ { name => 'ingress' }, { name => 'display' } ], + output_template => 'Traffic In: %s %s/s', + output_change_bytes => 2, + perfdatas => [ + { label => 'traffic_in', value => 'ingress_absolute', template => '%d', + min => 0, unit => 'b/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + }, + }, + { label => 'traffic-out', set => { + key_values => [ { name => 'egress' }, { name => 'display' } ], + output_template => 'Traffic Out: %s %s/s', + output_change_bytes => 2, + perfdatas => [ + { label => 'traffic_out', value => 'egress_absolute', template => '%d', + min => 0, unit => 'b/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + }, + }, + { label => 'shard-count', set => { + key_values => [ { name => 'shard_count' }, { name => 'display' } ], + output_template => 'Shard count: %d', + perfdatas => [ + { label => 'shard_count', value => 'shard_count_absolute', template => '%d', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + }, + }, + { label => 'uptime', set => { + key_values => [ { name => 'uptime' }, { name => 'uptime_sec' }, { name => 'display' } ], + output_template => 'Uptime: %s', + perfdatas => [ + { label => 'uptime', value => 'uptime_sec_absolute', template => '%d', + min => 0, unit => 's', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + }, + }, + ]; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; +} + +sub manage_selection { + my ($self, %options) = @_; + + $self->{cache_name} = "redis_restapi_" . $self->{mode} . '_' . $options{custom}->get_connection_info() . '_' . + (defined($self->{option_results}->{filter_counters}) ? md5_hex($self->{option_results}->{filter_counters}) : md5_hex('all')); + + my $result = $options{custom}->get(path => '/v1/nodes/stats/last'); + my $result2 = $options{custom}->get(path => '/v1/nodes'); + + foreach my $node (keys $result) { + if (defined($self->{option_results}->{filter_node}) && $self->{option_results}->{filter_node} ne '' && + $node !~ /$self->{option_results}->{filter_node}/) { + $self->{output}->output_add(long_msg => "skipping node '" . $node . "': no matching filter.", debug => 1); + next; + } + + my $shard_list = '-'; + if (@{$result2->{$node}->{shard_list}}) { $shard_list = join(", ", @{$result2->{$node}->{shard_list}}); } + my $ext_addr = '-'; + if (@{$result2->{$node}->{external_addr}}) { $ext_addr = join(", ", @{$result2->{$node}->{external_addr}}); } + + $self->{nodes}->{$node} = { + display => $node, + status => defined($result2->{$node}->{status}) ? $result2->{$node}->{status} : '-', + shard_list => $shard_list, + int_addr => $result2->{$node}->{addr}, + ext_addr => $ext_addr, + cpu_system => $result->{$node}->{cpu_system} * 100, + cpu_user => $result->{$node}->{cpu_user} * 100, + free_memory => $result->{$node}->{free_memory}, + total_memory => $result2->{$node}->{total_memory}, + persistent_storage_free => $result->{$node}->{persistent_storage_free}, + persistent_storage_size => $result2->{$node}->{persistent_storage_size}, + ephemeral_storage_free => $result->{$node}->{ephemeral_storage_free}, + ephemeral_storage_size => $result2->{$node}->{ephemeral_storage_size}, + available_flash => $result->{$node}->{available_flash}, + bigstore_size => $result2->{$node}->{bigstore_size}, + bigstore_iops => $result->{$node}->{bigstore_iops}, + bigstore_throughput => $result->{$node}->{bigstore_throughput}, + conns => $result->{$node}->{conns}, + ingress => $result->{$node}->{ingress_bytes} * 8, + egress => $result->{$node}->{egress_bytes} * 8, + total_req => $result->{$node}->{total_req}, + shard_count => $result2->{$node}->{shard_count}, + uptime => centreon::plugins::misc::change_seconds(value => $result2->{$node}->{uptime}), + uptime_sec => $result2->{$node}->{uptime}, + }; + + if (scalar(keys %{$self->{nodes}}) <= 0) { + $self->{output}->add_option_msg(short_msg => 'No nodes detected, check your filter ? '); + $self->{output}->option_exit(); + } + } +} + +1; + +__END__ + +=head1 MODE + +Check RedisLabs Enterprise Cluster nodes statistics. + +=over 8 + +=item B<--filter-counters> + +Only display some counters (regexp can be used). +Example: --filter-counters='^cpu' + + +=item B<--warning-status> + +Set warning threshold for status. +Can used special variables like: %{status}, %{shard_list}, %{int_addr}, %{ext_addr}. + +=item B<--critical-status> + +Set critical threshold for status (Default: '%{status} !~ /active/i'). +Can used special variables like: %{status}, %{shard_list}, %{int_addr}, %{ext_addr}. + +=item B<--warning-*> + +Threshold warning. +Can be: 'cpu-system', 'cpu-user', +'requests', 'memory-used', 'flash-storage-used', +'persistent-storage-used', 'ephemeral-storage-used', +'flash-iops', 'flash-throughput', 'connections', +'traffic-in', 'traffic-out', 'uptime'. + +=item B<--critical-*> + +Threshold critical. +Can be: 'cpu-system', 'cpu-user', +'requests', 'memory-used', 'flash-storage-used', +'persistent-storage-used', 'ephemeral-storage-used', +'flash-iops', 'flash-throughput', 'connections', +'traffic-in', 'traffic-out', 'shard-count', 'uptime'. + +=back + +=cut diff --git a/apps/redis/restapi/mode/shardsstats.pm b/apps/redis/restapi/mode/shardsstats.pm new file mode 100644 index 000000000..a2d79f38d --- /dev/null +++ b/apps/redis/restapi/mode/shardsstats.pm @@ -0,0 +1,353 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::restapi::mode::shardsstats; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use Digest::MD5 qw(md5_hex); + +my $instance_mode; + +sub custom_status_threshold { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && + eval "$instance_mode->{option_results}->{critical_status}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && + eval "$instance_mode->{option_results}->{warning_status}") { + $status = 'warning'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_status_output { + my ($self, %options) = @_; + + my $msg = sprintf("Status is '%s' (%s) [role: %s] [loading status: %s] [backup status: %s]", + $self->{result_values}->{status}, + $self->{result_values}->{detailed_status}, + $self->{result_values}->{role}, + $self->{result_values}->{loading}, + $self->{result_values}->{backup}); + if ($self->{result_values}->{role} eq 'slave') { + $msg .= sprintf(" [sync status: %s]", + $self->{result_values}->{sync}); + } + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{role} = $options{new_datas}->{$self->{instance} . '_role'}; + $self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_status'}; + $self->{result_values}->{detailed_status} = $options{new_datas}->{$self->{instance} . '_detailed_status'}; + $self->{result_values}->{loading} = $options{new_datas}->{$self->{instance} . '_loading'}; + $self->{result_values}->{sync} = $options{new_datas}->{$self->{instance} . '_sync'}; + $self->{result_values}->{backup} = $options{new_datas}->{$self->{instance} . '_backup'}; + return 0; +} + +sub prefix_output { + my ($self, %options) = @_; + + return "Shard '" . $options{instance_value}->{display} . "' "; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'shards', type => 1, cb_prefix_output => 'prefix_output', message_multiple => 'All shards counters are ok' }, + ]; + + $self->{maps_counters}->{shards} = [ + { label => 'status', threshold => 0, set => { + key_values => [ { name => 'status' }, { name => 'detailed_status' }, { name => 'role' }, { name => 'loading' }, { name => 'sync' }, { name => 'backup' } ], + closure_custom_calc => $self->can('custom_status_calc'), + closure_custom_output => $self->can('custom_status_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + { label => 'ops-per-sec', set => { + key_values => [ { name => 'instantaneous_ops_per_sec' }, { name => 'display' } ], + output_template => 'Operations: %s ops/s', + perfdatas => [ + { label => 'ops_per_sec', value => 'instantaneous_ops_per_sec_absolute', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'memory-used', set => { + key_values => [ { name => 'used_memory' }, { name => 'display' } ], + output_template => 'Memory used: %s %s', + output_change_bytes => 1, + perfdatas => [ + { label => 'memory-used', value => 'used_memory_absolute', template => '%s', + min => 0, unit => 'B', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'total-keys', set => { + key_values => [ { name => 'no_of_keys' }, { name => 'display' } ], + output_template => 'Total keys: %s', + perfdatas => [ + { label => 'total-keys', value => 'no_of_keys_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'connected-clients', set => { + key_values => [ { name => 'connected_clients' }, { name => 'display' } ], + output_template => 'Connected clients: %s', + perfdatas => [ + { label => 'connected_clients', value => 'connected_clients_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'blocked-clients', set => { + key_values => [ { name => 'blocked_clients' }, { name => 'display' } ], + output_template => 'Blocked clients: %s', + perfdatas => [ + { label => 'blocked_clients', value => 'blocked_clients_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'read-hits', set => { + key_values => [ { name => 'read_hits' }, { name => 'display' } ], + output_template => 'Read hits: %s /s', + perfdatas => [ + { label => 'read_hits', value => 'read_hits_absolute', template => '%s', + min => 0, unit => '/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'read-misses', set => { + key_values => [ { name => 'read_misses' }, { name => 'display' } ], + output_template => 'Read misses: %s /s', + perfdatas => [ + { label => 'read_misses', value => 'read_misses_absolute', template => '%s', + min => 0, unit => '/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'write-hits', set => { + key_values => [ { name => 'write_hits' }, { name => 'display' } ], + output_template => 'Write hits: %s /s', + perfdatas => [ + { label => 'write_hits', value => 'write_hits_absolute', template => '%s', + min => 0, unit => '/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'write-misses', set => { + key_values => [ { name => 'write_misses' }, { name => 'display' } ], + output_template => 'Write misses: %s /s', + perfdatas => [ + { label => 'write_misses', value => 'write_misses_absolute', template => '%s', + min => 0, unit => '/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'evicted-objects', set => { + key_values => [ { name => 'evicted_objects' }, { name => 'display' } ], + output_template => 'Evicted objects: %s', + perfdatas => [ + { label => 'evicted_objects', value => 'evicted_objects_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'expired-objects', set => { + key_values => [ { name => 'expired_objects' }, { name => 'display' } ], + output_template => 'Evicted objects: %s', + perfdatas => [ + { label => 'expired_objects', value => 'expired_objects_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'rdb-changes-since-last-save', set => { + key_values => [ { name => 'rdb_changes_since_last_save' }, { name => 'display' } ], + output_template => 'Rdb changes since last save: %s', + perfdatas => [ + { label => 'rdb_changes_since_last_save', value => 'rdb_changes_since_last_save_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'last-save-time', set => { + key_values => [ { name => 'last_save_time' }, { name => 'last_save_time_sec' }, { name => 'display' } ], + output_template => 'Last same time: %s', + perfdatas => [ + { label => 'last_save_time', value => 'last_save_time_sec_absolute', template => '%s', + min => 0, unit => 's', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'mem-frag-ratio', set => { + key_values => [ { name => 'mem_frag_ratio' }, { name => 'display' } ], + output_template => 'Memory fragmentation ratio: %s', + perfdatas => [ + { label => 'mem_frag_ratio', value => 'mem_frag_ratio_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 1); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "filter-shard:s" => { name => 'filter_shard' }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; +} + +sub manage_selection { + my ($self, %options) = @_; + + $self->{cache_name} = "redis_restapi_" . $self->{mode} . '_' . $options{custom}->get_connection_info() . '_' . + (defined($self->{option_results}->{filter_counters}) ? md5_hex($self->{option_results}->{filter_counters}) : md5_hex('all')); + + my $result = $options{custom}->get(path => '/v1/shards/stats/last'); + my $result2 = $options{custom}->get(path => '/v1/shards'); + + foreach my $shard (keys $result) { + if (defined($self->{option_results}->{filter_shard}) && $self->{option_results}->{filter_shard} ne '' && + $shard !~ /$self->{option_results}->{filter_shard}/) { + $self->{output}->output_add(long_msg => "skipping shard '" . $shard . "': no matching filter.", debug => 1); + next; + } + + $self->{shards}->{$shard} = { + display => $shard, + status => defined($result2->{$shard}->{status}) ? $result2->{$shard}->{status} : '-', + detailed_status => defined($result2->{$shard}->{detailed_status}) ? $result2->{$shard}->{detailed_status} : '-', + role => defined($result2->{$shard}->{role}) ? $result2->{$shard}->{role} : '-', + loading => defined($result2->{$shard}->{loading}->{status}) ? $result2->{$shard}->{loading}->{status} : '-', + sync => defined($result2->{$shard}->{sync}->{status}) ? $result2->{$shard}->{sync}->{status} : '-', + backup => defined($result2->{$shard}->{backup}->{status}) ? $result2->{$shard}->{backup}->{status} : '-', + used_memory => $result->{$shard}->{used_memory}, + instantaneous_ops_per_sec => $result->{$shard}->{instantaneous_ops_per_sec}, + no_of_keys => $result->{$shard}->{no_of_keys}, + connected_clients => $result->{$shard}->{connected_clients}, + blocked_clients => $result->{$shard}->{blocked_clients}, + evicted_objects => $result->{$shard}->{evicted_objects}, + expired_objects => $result->{$shard}->{expired_objects}, + read_hits => $result->{$shard}->{read_hits}, + read_misses => $result->{$shard}->{read_misses}, + write_hits => $result->{$shard}->{write_hits}, + write_misses => $result->{$shard}->{write_misses}, + mem_frag_ratio => $result->{$shard}->{mem_frag_ratio}, + rdb_changes_since_last_save => $result->{$shard}->{rdb_changes_since_last_save}, + last_save_time => centreon::plugins::misc::change_seconds(value => time() - $result->{$shard}->{last_save_time}), + last_save_time_sec => time() - $result->{$shard}->{last_save_time}, + }; + + if (scalar(keys %{$self->{shards}}) <= 0) { + $self->{output}->add_option_msg(short_msg => 'No shards detected, check your filter ? '); + $self->{output}->option_exit(); + } + } +} + +1; + +__END__ + +=head1 MODE + +Check RedisLabs Enterprise Cluster shards statistics. + +=over 8 + +=item B<--filter-counters> + +Only display some counters (regexp can be used). +Example: --filter-counters='clients' + +=item B<--warning-status> + +Set warning threshold for status. +Can used special variables like: %{status}, %{detailed_status}, +%{role}, %{loading}, %{sync}, %{backup}. + +=item B<--critical-status> + +Set critical threshold for status (Default: '%{status} !~ /active/i'). +Can used special variables like: %{status}, %{detailed_status}, +%{role}, %{loading}, %{sync}, %{backup}. + +=item B<--warning-*> + +Threshold warning. +Can be: 'ops-per-sec', 'memory-used', 'total-keys', +'connected-clients', 'blocked-clients', +'read-hits', 'read-misses', 'write-hits', +'write-misses', 'evicted-objects', 'expired-objects', +'rdb-changes-since-last-save', 'last-save-time', +'mem-frag-ratio'. + +=item B<--critical-*> + +Threshold critical. +Can be: 'ops-per-sec', 'memory-used', 'total-keys', +'connected-clients', 'blocked-clients', +'read-hits', 'read-misses', 'write-hits', +'write-misses', 'evicted-objects', 'expired-objects', +'rdb-changes-since-last-save', 'last-save-time', +'mem-frag-ratio'. + +=back + +=cut diff --git a/apps/redis/restapi/plugin.pm b/apps/redis/restapi/plugin.pm new file mode 100644 index 000000000..e2f85f7ea --- /dev/null +++ b/apps/redis/restapi/plugin.pm @@ -0,0 +1,51 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::restapi::plugin; + +use strict; +use warnings; +use base qw(centreon::plugins::script_custom); + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '0.1'; + %{$self->{modes}} = ( + 'databasesstats' => 'apps::redis::restapi::mode::databasesstats', + 'clusterstats' => 'apps::redis::restapi::mode::clusterstats', + 'nodesstats' => 'apps::redis::restapi::mode::nodesstats', + 'shardsstats' => 'apps::redis::restapi::mode::shardsstats', + ); + $self->{custom_modes}{api} = 'apps::redis::restapi::custom::api'; + return $self; +} + +1; + +__END__ + +=head1 PLUGIN DESCRIPTION + +Check RedisLabs Enterprise Cluster through HTTP/REST API. + +=cut From a5f362d198c4be15530776c18dd21151aa405334 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Thu, 21 Dec 2017 15:56:15 +0100 Subject: [PATCH 42/77] prepare version --- changelog | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog b/changelog index 66277dad9..a1f28e137 100644 --- a/changelog +++ b/changelog @@ -7,6 +7,7 @@ * Plugin added: Colubris SNMP * Plugin added: Alpha ups SNMP * Plugin added: Infoblox SNMP + * Plugin added: Redis Rest API 2017-12-08 Quentin Garnier * Plugin added: Kingdee Rest API From 81d2189d2edef7ef706fc9a2895332a28abe5146 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Fri, 22 Dec 2017 14:07:08 +0100 Subject: [PATCH 43/77] add cisco call manager plugin snmp --- .../cisco/callmanager/snmp/mode/ccmusage.pm | 234 ++++++++++++++++++ .../callmanager/snmp/mode/gatewayusage.pm | 223 +++++++++++++++++ .../callmanager/snmp/mode/mediadeviceusage.pm | 223 +++++++++++++++++ .../cisco/callmanager/snmp/mode/phoneusage.pm | 223 +++++++++++++++++ network/cisco/callmanager/snmp/plugin.pm | 51 ++++ 5 files changed, 954 insertions(+) create mode 100644 network/cisco/callmanager/snmp/mode/ccmusage.pm create mode 100644 network/cisco/callmanager/snmp/mode/gatewayusage.pm create mode 100644 network/cisco/callmanager/snmp/mode/mediadeviceusage.pm create mode 100644 network/cisco/callmanager/snmp/mode/phoneusage.pm create mode 100644 network/cisco/callmanager/snmp/plugin.pm diff --git a/network/cisco/callmanager/snmp/mode/ccmusage.pm b/network/cisco/callmanager/snmp/mode/ccmusage.pm new file mode 100644 index 000000000..99fadb87b --- /dev/null +++ b/network/cisco/callmanager/snmp/mode/ccmusage.pm @@ -0,0 +1,234 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package network::cisco::callmanager::snmp::mode::ccmusage; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +my $instance_mode; + +sub custom_status_threshold { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && + eval "$instance_mode->{option_results}->{critical_status}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && + eval "$instance_mode->{option_results}->{warning_status}") { + $status = 'warning'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_status_output { + my ($self, %options) = @_; + + my $msg = 'status : ' . $self->{result_values}->{status}; + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_ccmStatus'}; + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_ccmName'}; + return 0; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0 }, + { name => 'ccm', type => 1, cb_prefix_output => 'prefix_ccm_output', message_multiple => 'All CCM are ok' }, + ]; + + $self->{maps_counters}->{ccm} = [ + { label => 'status', threshold => 0, set => { + key_values => [ { name => 'ccmStatus' }, { name => 'ccmName' } ], + closure_custom_calc => $self->can('custom_status_calc'), + closure_custom_output => $self->can('custom_status_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + ]; + + my @map = ( + ['phones-registered', 'Phones Registered : %s', 'ccmRegisteredPhones'], + ['phones-unregistered', 'Phones Unregistered : %s', 'ccmUnregisteredPhones'], + ['phones-rejected', 'Phones Rejected : %s', 'ccmRejectedPhones'], + ['gateways-registered', 'Gateways Registered : %s', 'ccmRegisteredPhones'], + ['gateways-unregistered', 'Gateways Unregistered : %s', 'ccmUnregisteredGateways'], + ['gateways-rejected', 'Gateways Rejected : %s', 'ccmRejectedGateways'], + ['mediadevices-registered', 'Media Devices Registered : %s', 'ccmRegisteredMediaDevices'], + ['mediadevices-unregistered', 'Media Devices Unregistered : %s', 'ccmUnregisteredMediaDevices'], + ['mediadevices-rejected', 'Media Devices Rejected : %s', 'ccmRejectedMediaDevices'], + ); + + $self->{maps_counters}->{global} = []; + foreach (@map) { + my $label = $_->[0]; + $label =~ tr/-/_/; + push @{$self->{maps_counters}->{global}}, { label => $_->[0], set => { + key_values => [ { name => $_->[2] } ], + output_template => $_->[1], + perfdatas => [ + { label => $label, value => $_->[2] . '_absolute', template => '%s', min => 0 }, + ], + } + }, + } +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "warning-status:s" => { name => 'warning_status', default => '' }, + "critical-status:s" => { name => 'critical_status', default => '%{status} !~ /up/' }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; + $self->change_macros(); +} + +sub prefix_ccm_output { + my ($self, %options) = @_; + + return "CCM '" . $options{instance_value}->{ccmName} . "' "; +} + +sub change_macros { + my ($self, %options) = @_; + + foreach (('warning_status', 'critical_status')) { + if (defined($self->{option_results}->{$_})) { + $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; + } + } +} + +my %mapping_status = (1 => 'unknown', 2 => 'up', 3 => 'down'); + +my $mapping = { + ccmRegisteredPhones => { oid => '.1.3.6.1.4.1.9.9.156.1.5.5' }, + ccmUnregisteredPhones => { oid => '.1.3.6.1.4.1.9.9.156.1.5.6' }, + ccmRejectedPhones => { oid => '.1.3.6.1.4.1.9.9.156.1.5.7' }, + ccmRegisteredGateways => { oid => '.1.3.6.1.4.1.9.9.156.1.5.8' }, + ccmUnregisteredGateways => { oid => '.1.3.6.1.4.1.9.9.156.1.5.9' }, + ccmRejectedGateways => { oid => '.1.3.6.1.4.1.9.9.156.1.5.10' }, + ccmRegisteredMediaDevices => { oid => '.1.3.6.1.4.1.9.9.156.1.5.11' }, + ccmUnregisteredMediaDevices => { oid => '.1.3.6.1.4.1.9.9.156.1.5.12' }, + ccmRejectedMediaDevices => { oid => '.1.3.6.1.4.1.9.9.156.1.5.13' }, +}; +my $mapping2 = { + ccmName => { oid => '.1.3.6.1.4.1.9.9.156.1.1.2.1.2' }, + ccmStatus => { oid => '.1.3.6.1.4.1.9.9.156.1.1.2.1.5', map => \%mapping_status }, +}; + +my $oid_ccmGlobalInfo = '.1.3.6.1.4.1.9.9.156.1.5'; +my $oid_ccmEntry = '.1.3.6.1.4.1.9.9.156.1.1.2.1'; + +sub manage_selection { + my ($self, %options) = @_; + + my $snmp_result = $options{snmp}->get_multiple_table(oids => [ + { oid => $oid_ccmGlobalInfo, end => $mapping->{ccmRejectedMediaDevices}->{oid} }, + { oid => $oid_ccmEntry, end => $mapping2->{ccmStatus}->{oid} }, + ], nothing_quit => 1); + my $result = $options{snmp}->map_instance(mapping => $mapping, results => $snmp_result->{$oid_ccmGlobalInfo}, instance => '0'); + $self->{global} = { %$result }; + + $self->{ccm} = {}; + foreach my $oid (keys %{$snmp_result->{$oid_ccmEntry}}) { + next if ($oid !~ /^$mapping2->{ccmStatus}->{oid}\.(.*)/); + my $instance = $1; + my $result = $options{snmp}->map_instance(mapping => $mapping2, results => $snmp_result->{$oid_ccmEntry}, instance => $instance); + + $self->{ccm}->{$instance} = { %$result }; + } +} + +1; + +__END__ + +=head1 MODE + +Check cisco call manager global usage. + +=over 8 + +=item B<--filter-counters> + +Only display some counters (regexp can be used). +Example: --filter-counters='phone' + +=item B<--warning-status> + +Set warning threshold for status (Default: ''). +Can used special variables like: %{status}, %{display} + +=item B<--critical-status> + +Set critical threshold for status (Default: '%{status} !~ /up/'). +Can used special variables like: %{status}, %{display} + +=item B<--warning-*> + +Threshold warning. + +=item B<--critical-*> + +Threshold critical. + +Can be: 'phones-registered', 'phones-unregistered', 'phones-rejected', +'gateways-registered', 'gateways-unregistered', 'gateways-rejected', +'mediadevices-registered', 'mediadevices-unregistered', 'mediadevices-rejected'. + +=back + +=cut diff --git a/network/cisco/callmanager/snmp/mode/gatewayusage.pm b/network/cisco/callmanager/snmp/mode/gatewayusage.pm new file mode 100644 index 000000000..57bf999a3 --- /dev/null +++ b/network/cisco/callmanager/snmp/mode/gatewayusage.pm @@ -0,0 +1,223 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package network::cisco::callmanager::snmp::mode::gatewayusage; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +my $instance_mode; + +sub custom_status_threshold { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && + eval "$instance_mode->{option_results}->{critical_status}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && + eval "$instance_mode->{option_results}->{warning_status}") { + $status = 'warning'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_status_output { + my ($self, %options) = @_; + + my $msg = 'status : ' . $self->{result_values}->{status}; + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_ccmGatewayStatus'}; + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_ccmGatewayName'}; + return 0; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0, cb_prefix_output => 'prefix_global_output' }, + { name => 'gateway', type => 1, cb_prefix_output => 'prefix_gateway_output', message_multiple => 'All gateways are ok' }, + ]; + + $self->{maps_counters}->{gateway} = [ + { label => 'status', threshold => 0, set => { + key_values => [ { name => 'ccmGatewayStatus' }, { name => 'ccmGatewayName' } ], + closure_custom_calc => $self->can('custom_status_calc'), + closure_custom_output => $self->can('custom_status_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + ]; + + my @map = ( + ['total-registered', 'Registered : %s', 'registered'], + ['total-unregistered', 'Unregistered : %s', 'unregistered'], + ['total-rejected', 'Rejected : %s', 'rejected'], + ['total-unknown', 'Unknown : %s', 'unknown'], + ['total-partiallyregistered', 'Partially Registered : %s', 'partiallyregistered'], + ); + + $self->{maps_counters}->{global} = []; + foreach (@map) { + my $label = $_->[0]; + $label =~ tr/-/_/; + push @{$self->{maps_counters}->{global}}, { label => $_->[0], set => { + key_values => [ { name => $_->[2] } ], + output_template => $_->[1], + perfdatas => [ + { label => $label, value => $_->[2] . '_absolute', template => '%s', min => 0 }, + ], + } + }, + } +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "warning-status:s" => { name => 'warning_status', default => '' }, + "critical-status:s" => { name => 'critical_status', default => '%{status} !~ /^registered/' }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; + $self->change_macros(); +} + +sub prefix_gateway_output { + my ($self, %options) = @_; + + return "Gateway '" . $options{instance_value}->{ccmGatewayName} . "' "; +} + +sub prefix_global_output { + my ($self, %options) = @_; + + return "Total "; +} + +sub change_macros { + my ($self, %options) = @_; + + foreach (('warning_status', 'critical_status')) { + if (defined($self->{option_results}->{$_})) { + $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; + } + } +} + +my %mapping_status = ( + 1 => 'unknown', 2 => 'registered', 3 => 'unregistered', + 4 => 'rejected', 5 => 'partiallyregistered', +); + +my $mapping = { + ccmGatewayName => { oid => '.1.3.6.1.4.1.9.9.156.1.3.1.1.2' }, + ccmGatewayStatus => { oid => '.1.3.6.1.4.1.9.9.156.1.3.1.1.5', map => \%mapping_status }, +}; + +my $oid_ccmGatewayEntry = '.1.3.6.1.4.1.9.9.156.1.3.1.1'; + +sub manage_selection { + my ($self, %options) = @_; + + my $snmp_result = $options{snmp}->get_table(oid => $oid_ccmGatewayEntry, start => $mapping->{ccmGatewayName}->{oid}, end => $mapping->{ccmGatewayStatus}->{oid}, nothing_quit => 1); + + $self->{phone} = {}; + $self->{global} = { unknown => 0, registered => 0, unregistered => 0, rejected => 0, partiallyregistered => 0 }; + foreach my $oid (keys %$snmp_result) { + next if ($oid !~ /^$mapping->{ccmGatewayStatus}->{oid}\.(.*)/); + my $instance = $1; + my $result = $options{snmp}->map_instance(mapping => $mapping, results => $snmp_result, instance => $instance); + + $self->{phone}->{$instance} = { %$result }; + $self->{global}->{$result->{ccmGatewayStatus}}++; + } +} + +1; + +__END__ + +=head1 MODE + +Check gateway usage. + +=over 8 + +=item B<--filter-counters> + +Only display some counters (regexp can be used). +Example: --filter-counters='status' + +=item B<--warning-status> + +Set warning threshold for status (Default: ''). +Can used special variables like: %{status}, %{display} + +=item B<--critical-status> + +Set critical threshold for status (Default: '%{status} !~ /^registered/'). +Can used special variables like: %{status}, %{display} + +=item B<--warning-*> + +Threshold warning. + +=item B<--critical-*> + +Threshold critical. + +Can be: 'total-registered', 'total-unregistered', 'total-rejected', +'total-unknown', 'total-partiallyregistered'. + +=back + +=cut diff --git a/network/cisco/callmanager/snmp/mode/mediadeviceusage.pm b/network/cisco/callmanager/snmp/mode/mediadeviceusage.pm new file mode 100644 index 000000000..3409e5b9d --- /dev/null +++ b/network/cisco/callmanager/snmp/mode/mediadeviceusage.pm @@ -0,0 +1,223 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package network::cisco::callmanager::snmp::mode::mediadeviceusage; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +my $instance_mode; + +sub custom_status_threshold { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && + eval "$instance_mode->{option_results}->{critical_status}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && + eval "$instance_mode->{option_results}->{warning_status}") { + $status = 'warning'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_status_output { + my ($self, %options) = @_; + + my $msg = 'status : ' . $self->{result_values}->{status}; + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_ccmMediaDeviceStatus'}; + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_ccmMediaDeviceName'}; + return 0; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0, cb_prefix_output => 'prefix_global_output' }, + { name => 'md', type => 1, cb_prefix_output => 'prefix_md_output', message_multiple => 'All media devices are ok' }, + ]; + + $self->{maps_counters}->{md} = [ + { label => 'status', threshold => 0, set => { + key_values => [ { name => 'ccmMediaDeviceStatus' }, { name => 'ccmMediaDeviceName' } ], + closure_custom_calc => $self->can('custom_status_calc'), + closure_custom_output => $self->can('custom_status_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + ]; + + my @map = ( + ['total-registered', 'Registered : %s', 'registered'], + ['total-unregistered', 'Unregistered : %s', 'unregistered'], + ['total-rejected', 'Rejected : %s', 'rejected'], + ['total-unknown', 'Unknown : %s', 'unknown'], + ['total-partiallyregistered', 'Partially Registered : %s', 'partiallyregistered'], + ); + + $self->{maps_counters}->{global} = []; + foreach (@map) { + my $label = $_->[0]; + $label =~ tr/-/_/; + push @{$self->{maps_counters}->{global}}, { label => $_->[0], set => { + key_values => [ { name => $_->[2] } ], + output_template => $_->[1], + perfdatas => [ + { label => $label, value => $_->[2] . '_absolute', template => '%s', min => 0 }, + ], + } + }, + } +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "warning-status:s" => { name => 'warning_status', default => '' }, + "critical-status:s" => { name => 'critical_status', default => '%{status} !~ /^registered/' }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; + $self->change_macros(); +} + +sub prefix_md_output { + my ($self, %options) = @_; + + return "Media device '" . $options{instance_value}->{ccmMediaDeviceName} . "' "; +} + +sub prefix_global_output { + my ($self, %options) = @_; + + return "Total "; +} + +sub change_macros { + my ($self, %options) = @_; + + foreach (('warning_status', 'critical_status')) { + if (defined($self->{option_results}->{$_})) { + $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; + } + } +} + +my %mapping_status = ( + 1 => 'unknown', 2 => 'registered', 3 => 'unregistered', + 4 => 'rejected', 5 => 'partiallyregistered', +); + +my $mapping = { + ccmMediaDeviceName => { oid => '.1.3.6.1.4.1.9.9.156.1.6.1.1.2' }, + ccmMediaDeviceStatus => { oid => '.1.3.6.1.4.1.9.9.156.1.6.1.1.5', map => \%mapping_status }, +}; + +my $oid_ccmMediaDeviceEntry = '.1.3.6.1.4.1.9.9.156.1.6.1.1'; + +sub manage_selection { + my ($self, %options) = @_; + + my $snmp_result = $options{snmp}->get_table(oid => $oid_ccmMediaDeviceEntry, start => $mapping->{ccmMediaDeviceName}->{oid}, end => $mapping->{ccmMediaDeviceStatus}->{oid}, nothing_quit => 1); + + $self->{md} = {}; + $self->{global} = { unknown => 0, registered => 0, unregistered => 0, rejected => 0, partiallyregistered => 0 }; + foreach my $oid (keys %$snmp_result) { + next if ($oid !~ /^$mapping->{ccmMediaDeviceStatus}->{oid}\.(.*)/); + my $instance = $1; + my $result = $options{snmp}->map_instance(mapping => $mapping, results => $snmp_result, instance => $instance); + + $self->{md}->{$instance} = { %$result }; + $self->{global}->{$result->{ccmMediaDeviceStatus}}++; + } +} + +1; + +__END__ + +=head1 MODE + +Check media device usage. + +=over 8 + +=item B<--filter-counters> + +Only display some counters (regexp can be used). +Example: --filter-counters='status' + +=item B<--warning-status> + +Set warning threshold for status (Default: ''). +Can used special variables like: %{status}, %{display} + +=item B<--critical-status> + +Set critical threshold for status (Default: '%{status} !~ /^registered/'). +Can used special variables like: %{status}, %{display} + +=item B<--warning-*> + +Threshold warning. + +=item B<--critical-*> + +Threshold critical. + +Can be: 'total-registered', 'total-unregistered', 'total-rejected', +'total-unknown', 'total-partiallyregistered'. + +=back + +=cut diff --git a/network/cisco/callmanager/snmp/mode/phoneusage.pm b/network/cisco/callmanager/snmp/mode/phoneusage.pm new file mode 100644 index 000000000..c72b51bf0 --- /dev/null +++ b/network/cisco/callmanager/snmp/mode/phoneusage.pm @@ -0,0 +1,223 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package network::cisco::callmanager::snmp::mode::phoneusage; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +my $instance_mode; + +sub custom_status_threshold { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && + eval "$instance_mode->{option_results}->{critical_status}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && + eval "$instance_mode->{option_results}->{warning_status}") { + $status = 'warning'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_status_output { + my ($self, %options) = @_; + + my $msg = 'status : ' . $self->{result_values}->{status}; + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_ccmPhoneStatus'}; + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_ccmPhoneDescription'}; + return 0; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0, cb_prefix_output => 'prefix_global_output' }, + { name => 'phone', type => 1, cb_prefix_output => 'prefix_phone_output', message_multiple => 'All phones are ok' }, + ]; + + $self->{maps_counters}->{phone} = [ + { label => 'status', threshold => 0, set => { + key_values => [ { name => 'ccmPhoneStatus' }, { name => 'ccmPhoneDescription' } ], + closure_custom_calc => $self->can('custom_status_calc'), + closure_custom_output => $self->can('custom_status_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + ]; + + my @map = ( + ['total-registered', 'Registered : %s', 'registered'], + ['total-unregistered', 'Unregistered : %s', 'unregistered'], + ['total-rejected', 'Rejected : %s', 'rejected'], + ['total-unknown', 'Unknown : %s', 'unknown'], + ['total-partiallyregistered', 'Partially Registered : %s', 'partiallyregistered'], + ); + + $self->{maps_counters}->{global} = []; + foreach (@map) { + my $label = $_->[0]; + $label =~ tr/-/_/; + push @{$self->{maps_counters}->{global}}, { label => $_->[0], set => { + key_values => [ { name => $_->[2] } ], + output_template => $_->[1], + perfdatas => [ + { label => $label, value => $_->[2] . '_absolute', template => '%s', min => 0 }, + ], + } + }, + } +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "warning-status:s" => { name => 'warning_status', default => '' }, + "critical-status:s" => { name => 'critical_status', default => '%{status} !~ /^registered/' }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; + $self->change_macros(); +} + +sub prefix_phone_output { + my ($self, %options) = @_; + + return "Phone '" . $options{instance_value}->{ccmPhoneDescription} . "' "; +} + +sub prefix_global_output { + my ($self, %options) = @_; + + return "Total "; +} + +sub change_macros { + my ($self, %options) = @_; + + foreach (('warning_status', 'critical_status')) { + if (defined($self->{option_results}->{$_})) { + $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; + } + } +} + +my %mapping_status = ( + 1 => 'unknown', 2 => 'registered', 3 => 'unregistered', + 4 => 'rejected', 5 => 'partiallyregistered', +); + +my $mapping = { + ccmPhoneDescription => { oid => '.1.3.6.1.4.1.9.9.156.1.2.1.1.4' }, + ccmPhoneStatus => { oid => '.1.3.6.1.4.1.9.9.156.1.2.1.1.7', map => \%mapping_status }, +}; + +my $oid_ccmPhoneEntry = '.1.3.6.1.4.1.9.9.156.1.2.1.1'; + +sub manage_selection { + my ($self, %options) = @_; + + my $snmp_result = $options{snmp}->get_table(oid => $oid_ccmPhoneEntry, start => $mapping->{ccmPhoneDescription}->{oid}, end => $mapping->{ccmPhoneStatus}->{oid}, nothing_quit => 1); + + $self->{phone} = {}; + $self->{global} = { unknown => 0, registered => 0, unregistered => 0, rejected => 0, partiallyregistered => 0 }; + foreach my $oid (keys %$snmp_result) { + next if ($oid !~ /^$mapping->{ccmPhoneStatus}->{oid}\.(.*)/); + my $instance = $1; + my $result = $options{snmp}->map_instance(mapping => $mapping, results => $snmp_result, instance => $instance); + + $self->{phone}->{$instance} = { %$result }; + $self->{global}->{$result->{ccmPhoneStatus}}++; + } +} + +1; + +__END__ + +=head1 MODE + +Check phone usage. + +=over 8 + +=item B<--filter-counters> + +Only display some counters (regexp can be used). +Example: --filter-counters='status' + +=item B<--warning-status> + +Set warning threshold for status (Default: ''). +Can used special variables like: %{status}, %{display} + +=item B<--critical-status> + +Set critical threshold for status (Default: '%{status} !~ /^registered/'). +Can used special variables like: %{status}, %{display} + +=item B<--warning-*> + +Threshold warning. + +=item B<--critical-*> + +Threshold critical. + +Can be: 'total-registered', 'total-unregistered', 'total-rejected', +'total-unknown', 'total-partiallyregistered'. + +=back + +=cut diff --git a/network/cisco/callmanager/snmp/plugin.pm b/network/cisco/callmanager/snmp/plugin.pm new file mode 100644 index 000000000..2a943ae1d --- /dev/null +++ b/network/cisco/callmanager/snmp/plugin.pm @@ -0,0 +1,51 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package network::cisco::callmanager::snmp::plugin; + +use strict; +use warnings; +use base qw(centreon::plugins::script_snmp); + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + %{$self->{modes}} = ( + 'ccm-usage' => 'network::cisco::callmanager::snmp::mode::ccmusage', + 'gateway-usage' => 'network::cisco::callmanager::snmp::mode::gatewayusage', + 'mediadevice-usage' => 'network::cisco::callmanager::snmp::mode::mediadeviceusage', + 'phone-usage' => 'network::cisco::callmanager::snmp::mode::phoneusage', + ); + + return $self; +} + +1; + +__END__ + +=head1 PLUGIN DESCRIPTION + +Check Cisco Call Manager (CCM) in SNMP. + +=cut From 2f4fe15c07adfb92e79ad9331c9044d3941cd12e Mon Sep 17 00:00:00 2001 From: qgarnier Date: Fri, 22 Dec 2017 14:08:11 +0100 Subject: [PATCH 44/77] prepare new version --- changelog | 1 + 1 file changed, 1 insertion(+) diff --git a/changelog b/changelog index a1f28e137..0bf497195 100644 --- a/changelog +++ b/changelog @@ -8,6 +8,7 @@ * Plugin added: Alpha ups SNMP * Plugin added: Infoblox SNMP * Plugin added: Redis Rest API + * Plugin added: Cisco Call Manager SNMP 2017-12-08 Quentin Garnier * Plugin added: Kingdee Rest API From 972a6b0523cc3c7bb6daa9c5a47c699bef8fd188 Mon Sep 17 00:00:00 2001 From: Colin GAGNAIRE Date: Wed, 27 Dec 2017 18:33:05 +0100 Subject: [PATCH 45/77] improve redis restapi --- apps/redis/restapi/custom/api.pm | 2 + apps/redis/restapi/mode/clusterstats.pm | 93 ++-- apps/redis/restapi/mode/databasesstats.pm | 507 +++++++++++++++++----- apps/redis/restapi/mode/nodesstats.pm | 187 ++++---- apps/redis/restapi/mode/shardsstats.pm | 264 ++++++++--- 5 files changed, 771 insertions(+), 282 deletions(-) diff --git a/apps/redis/restapi/custom/api.pm b/apps/redis/restapi/custom/api.pm index 41eb2496a..82cb71886 100644 --- a/apps/redis/restapi/custom/api.pm +++ b/apps/redis/restapi/custom/api.pm @@ -120,6 +120,8 @@ sub build_options_for_httplib { $self->{option_results}->{username} = $self->{username}; $self->{option_results}->{password} = $self->{password}; $self->{option_results}->{ssl} = $self->{ssl}; + $self->{option_results}->{warning_status} = ''; + $self->{option_results}->{critical_status} = ''; } sub settings { diff --git a/apps/redis/restapi/mode/clusterstats.pm b/apps/redis/restapi/mode/clusterstats.pm index 4cf053c34..8e2d960a1 100644 --- a/apps/redis/restapi/mode/clusterstats.pm +++ b/apps/redis/restapi/mode/clusterstats.pm @@ -120,51 +120,41 @@ sub set_counters { ], } }, - { label => 'requests', set => { - key_values => [ { name => 'total_req', diff => 1 } ], - output_template => 'Requests per seconds: %s', - per_second => 1, - perfdatas => [ - { label => 'requests', value => 'total_req_per_second', template => '%s', - min => 0, unit => '/s' }, - ], - } - }, - { label => 'memory-used', set => { + { label => 'memory', set => { key_values => [ { name => 'free_memory' }, { name => 'total_memory' } ], closure_custom_calc => $self->can('custom_usage_calc'), - closure_custom_calc_extra_options => { display => 'Ram', label => 'memory-used', perf => 'memory_used', + closure_custom_calc_extra_options => { display => 'Ram', label => 'memory', perf => 'memory', free => 'free_memory', total => 'total_memory' }, closure_custom_output => $self->can('custom_usage_output'), closure_custom_perfdata => $self->can('custom_usage_perfdata'), closure_custom_threshold_check => $self->can('custom_usage_threshold'), } }, - { label => 'persistent-storage-used', set => { + { label => 'persistent-storage', set => { key_values => [ { name => 'persistent_storage_free' }, { name => 'persistent_storage_size' } ], closure_custom_calc => $self->can('custom_usage_calc'), - closure_custom_calc_extra_options => { display => 'Persistent storage', label => 'persistent-storage-used', perf => 'persistent_storage_used', + closure_custom_calc_extra_options => { display => 'Persistent storage', label => 'persistent-storage', perf => 'persistent_storage', free => 'persistent_storage_free', total => 'persistent_storage_size' }, closure_custom_output => $self->can('custom_usage_output'), closure_custom_perfdata => $self->can('custom_usage_perfdata'), closure_custom_threshold_check => $self->can('custom_usage_threshold'), } }, - { label => 'ephemeral-storage-used', set => { + { label => 'ephemeral-storage', set => { key_values => [ { name => 'ephemeral_storage_free' }, { name => 'ephemeral_storage_size' } ], closure_custom_calc => $self->can('custom_usage_calc'), - closure_custom_calc_extra_options => { display => 'Ephemeral storage', label => 'ephemeral-storage-used', perf => 'ephemeral_storage_used', + closure_custom_calc_extra_options => { display => 'Ephemeral storage', label => 'ephemeral-storage', perf => 'ephemeral_storage', free => 'ephemeral_storage_free', total => 'ephemeral_storage_size' }, closure_custom_output => $self->can('custom_usage_output'), closure_custom_perfdata => $self->can('custom_usage_perfdata'), closure_custom_threshold_check => $self->can('custom_usage_threshold'), } }, - { label => 'flash-storage-used', set => { - key_values => [ { name => 'available_flash' }, { name => 'bigstore_size' } ], + { label => 'flash-storage', set => { + key_values => [ { name => 'bigstore_free' }, { name => 'bigstore_size' } ], closure_custom_calc => $self->can('custom_usage_calc'), - closure_custom_calc_extra_options => { display => 'Flash storage', label => 'flash-storage-used', perf => 'flash_storage_used', - free => 'available_flash', total => 'bigstore_size' }, + closure_custom_calc_extra_options => { display => 'Flash storage', label => 'flash-storage', perf => 'flash_storage', + free => 'bigstore_free', total => 'bigstore_size' }, closure_custom_output => $self->can('custom_usage_output'), closure_custom_perfdata => $self->can('custom_usage_perfdata'), closure_custom_threshold_check => $self->can('custom_usage_threshold'), @@ -172,10 +162,10 @@ sub set_counters { }, { label => 'flash-iops', set => { key_values => [ { name => 'bigstore_iops' } ], - output_template => 'Flash IOPS: %s', + output_template => 'Flash IOPS: %s ops/s', perfdatas => [ { label => 'flash_iops', value => 'bigstore_iops_absolute', template => '%s', - min => 0, unit => '/s' }, + min => 0, unit => 'ops/s' }, ], } }, @@ -198,6 +188,15 @@ sub set_counters { ], } }, + { label => 'requests', set => { + key_values => [ { name => 'total_req' } ], + output_template => 'Requests rate: %s ops/s', + perfdatas => [ + { label => 'requests', value => 'total_req_absolute', template => '%s', + min => 0, unit => 'ops/s' }, + ], + } + }, { label => 'traffic-in', set => { key_values => [ { name => 'ingress' } ], output_template => 'Traffic In: %s %s/s', @@ -221,12 +220,13 @@ sub set_counters { sub new { my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 1); + my $self = $class->SUPER::new(package => __PACKAGE__, %options); bless $self, $class; $self->{version} = '1.0'; $options{options}->add_options(arguments => { + "interval:s" => { name => 'interval', default => '15min' }, "units:s" => { name => 'units', default => '%' }, "free" => { name => 'free' }, }); @@ -244,10 +244,7 @@ sub check_options { sub manage_selection { my ($self, %options) = @_; - $self->{cache_name} = "redis_restapi_" . $self->{mode} . '_' . $options{custom}->get_connection_info() . '_' . - (defined($self->{option_results}->{filter_counters}) ? md5_hex($self->{option_results}->{filter_counters}) : md5_hex('all')); - - my $result = $options{custom}->get(path => '/v1/cluster/stats/last'); + my $result = $options{custom}->get(path => '/v1/cluster/stats/last?interval='.$instance_mode->{option_results}->{interval}); my $result2 = $options{custom}->get(path => '/v1/cluster'); my $result3 = $options{custom}->get(path => '/v1/nodes'); @@ -256,10 +253,18 @@ sub manage_selection { my $ephemeral_storage_size = 0; my $bigstore_size = 0; foreach my $node (keys $result3) { - $total_memory = $total_memory + $result3->{$node}->{total_memory}; - $persistent_storage_size = $persistent_storage_size + $result3->{$node}->{persistent_storage_size}; - $ephemeral_storage_size = $ephemeral_storage_size + $result3->{$node}->{ephemeral_storage_size}; - $bigstore_size = $bigstore_size + $result3->{$node}->{bigstore_size}; + if (defined($result3->{$node}->{total_memory})) { + $total_memory = $total_memory + $result3->{$node}->{total_memory}; + } + if (defined($result3->{$node}->{persistent_storage_size})) { + $persistent_storage_size = $persistent_storage_size + $result3->{$node}->{persistent_storage_size}; + } + if (defined($result3->{$node}->{ephemeral_storage_size})) { + $ephemeral_storage_size = $ephemeral_storage_size + $result3->{$node}->{ephemeral_storage_size}; + } + if (defined($result3->{$node}->{bigstore_size})) { + $bigstore_size = $bigstore_size + $result3->{$node}->{bigstore_size}; + } } $self->{cluster}->{$result2->{name}} = { @@ -272,15 +277,15 @@ sub manage_selection { persistent_storage_size => $persistent_storage_size, ephemeral_storage_free => $result->{ephemeral_storage_free}, ephemeral_storage_size => $ephemeral_storage_size, - available_flash => $result->{available_flash}, + bigstore_free => $result->{bigstore_free}, bigstore_size => $bigstore_size, bigstore_iops => $result->{bigstore_iops}, bigstore_kv_ops => $result->{bigstore_kv_ops}, bigstore_throughput => $result->{bigstore_throughput}, conns => $result->{conns}, + total_req => $result->{total_req}, ingress => $result->{ingress_bytes} * 8, egress => $result->{egress_bytes} * 8, - total_req => $result->{total_req}, }; } @@ -299,12 +304,26 @@ Check RedisLabs Enterprise Cluster statistics. Only display some counters (regexp can be used). Example: --filter-counters='^cpu' +=item B<--interval> + +Time interval from which to retrieve statistics (Default: '15min'). +Can be : '1sec', '10sec', '5min', '15min', +'1hour', '12hour', '1week' + +=item B<--units> + +Units of thresholds (Default: '%') ('%', 'B'). + +=item B<--free> + +Thresholds are on free space left. + =item B<--warning-*> Threshold warning. Can be: 'cpu-system', 'cpu-user', -'requests', 'memory-used', 'flash-storage-used', -'persistent-storage-used', 'ephemeral-storage-used', +'requests', 'memory', 'flash-storage', +'persistent-storage', 'ephemeral-storage', 'flash-iops', 'flash-throughput', 'connections', 'traffic-in', 'traffic-out'. @@ -312,8 +331,8 @@ Can be: 'cpu-system', 'cpu-user', Threshold critical. Can be: 'cpu-system', 'cpu-user', -'requests', 'memory-used', 'flash-storage-used', -'persistent-storage-used', 'ephemeral-storage-used', +'requests', 'memory', 'flash-storage', +'persistent-storage', 'ephemeral-storage', 'flash-iops', 'flash-throughput', 'connections', 'traffic-in', 'traffic-out'. diff --git a/apps/redis/restapi/mode/databasesstats.pm b/apps/redis/restapi/mode/databasesstats.pm index 13af3b40a..4ef54baf0 100644 --- a/apps/redis/restapi/mode/databasesstats.pm +++ b/apps/redis/restapi/mode/databasesstats.pm @@ -28,6 +28,66 @@ use Digest::MD5 qw(md5_hex); my $instance_mode; +sub custom_usage_perfdata { + my ($self, %options) = @_; + + $self->{output}->perfdata_add(label => $self->{result_values}->{perf}, unit => 'B', + value => $self->{result_values}->{used}, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{result_values}->{label}, total => $self->{result_values}->{total}, cast_int => 1), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{result_values}->{label}, total => $self->{result_values}->{total}, cast_int => 1), + min => 0, max => $self->{result_values}->{total}); +} + +sub custom_usage_threshold { + my ($self, %options) = @_; + + my ($exit, $threshold_value); + $threshold_value = $self->{result_values}->{used}; + $threshold_value = $self->{result_values}->{free} if (defined($instance_mode->{option_results}->{free})); + if ($instance_mode->{option_results}->{units} eq '%') { + $threshold_value = $self->{result_values}->{prct_used}; + $threshold_value = $self->{result_values}->{prct_free} if (defined($instance_mode->{option_results}->{free})); + } + $exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{result_values}->{label}, exit_litteral => 'critical' }, { label => 'warning-' . $self->{result_values}->{label}, exit_litteral => 'warning' } ]); + return $exit; +} + +sub custom_usage_output { + my ($self, %options) = @_; + + my ($used_value, $used_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{used}); + my ($free_value, $free_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{free}); + my ($total_value, $total_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{total}); + + my $msg = sprintf("%s usage: Total: %s Used: %s (%.2f%%) Free: %s (%.2f%%)", $self->{result_values}->{display}, + $total_value . " " . $total_unit, + $used_value . " " . $used_unit, $self->{result_values}->{prct_used}, + $free_value . " " . $free_unit, $self->{result_values}->{prct_free}); + return $msg; +} + +sub custom_usage_calc { + my ($self, %options) = @_; + + $self->{result_values}->{label} = $options{extra_options}->{label}; + $self->{result_values}->{perf} = $options{extra_options}->{perf}; + $self->{result_values}->{display} = $options{extra_options}->{display}; + $self->{result_values}->{used} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{used}}; + $self->{result_values}->{total} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{total}}; + + if ($self->{result_values}->{total} != 0) { + $self->{result_values}->{free} = $self->{result_values}->{total} - $self->{result_values}->{used}; + $self->{result_values}->{prct_used} = $self->{result_values}->{used} * 100 / $self->{result_values}->{total}; + $self->{result_values}->{prct_free} = 100 - $self->{result_values}->{prct_used}; + } else { + $self->{result_values}->{used} = '0'; + $self->{result_values}->{prct_used} = '0'; + $self->{result_values}->{prct_free} = '0'; + } + + return 0; +} + sub custom_status_threshold { my ($self, %options) = @_; my $status = 'ok'; @@ -41,7 +101,7 @@ sub custom_status_threshold { eval "$instance_mode->{option_results}->{critical_status}") { $status = 'critical'; } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && - eval "$instance_mode->{option_results}->{warning_status}") { + eval "$instance_mode->{option_results}->{warning_status}") { $status = 'warning'; } }; @@ -55,13 +115,13 @@ sub custom_status_threshold { sub custom_status_output { my ($self, %options) = @_; - my $msg = sprintf("Status is '%s' [type: %s] [sync: %s] [backup status: %s] [export status: %s] [shard list: %s]", + my $msg = sprintf("Status is '%s' [type: %s] [shard list: %s] [backup status: %s] [export status: %s] [import status: %s]", $self->{result_values}->{status}, - $self->{result_values}->{type}, - $self->{result_values}->{sync}, + $self->{result_values}->{type}, + $self->{result_values}->{shard_list}, $self->{result_values}->{backup_status}, $self->{result_values}->{export_status}, - $self->{result_values}->{shard_list}); + $self->{result_values}->{import_status}); return $msg; } @@ -70,10 +130,55 @@ sub custom_status_calc { $self->{result_values}->{type} = $options{new_datas}->{$self->{instance} . '_type'}; $self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_status'}; - $self->{result_values}->{sync} = $options{new_datas}->{$self->{instance} . '_sync'}; $self->{result_values}->{backup_status} = $options{new_datas}->{$self->{instance} . '_backup_status'}; $self->{result_values}->{export_status} = $options{new_datas}->{$self->{instance} . '_export_status'}; + $self->{result_values}->{import_status} = $options{new_datas}->{$self->{instance} . '_import_status'}; $self->{result_values}->{shard_list} = $options{new_datas}->{$self->{instance} . '_shard_list'}; + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'}; + return 0; +} + +sub custom_cpu_output { + my ($self, %options) = @_; + + my $msg = sprintf("%s CPU usage (user/system): %s/%s %%", + $self->{result_values}->{cpu}, + $self->{result_values}->{user}, + $self->{result_values}->{system}); + return $msg; +} + +sub custom_cpu_calc { + my ($self, %options) = @_; + + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{display}}; + $self->{result_values}->{cpu} = $options{extra_options}->{cpu}; + $self->{result_values}->{user} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{user}}; + $self->{result_values}->{system} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{system}}; + return 0; +} + +sub custom_operations_output { + my ($self, %options) = @_; + + my $msg = sprintf("%s operations rates (hits/misses/requests/responses): %s/%s/%s/%s ops/s", + $self->{result_values}->{operation}, + $self->{result_values}->{hits}, + $self->{result_values}->{misses}, + $self->{result_values}->{req}, + $self->{result_values}->{res}); + return $msg; +} + +sub custom_operations_calc { + my ($self, %options) = @_; + + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{display}}; + $self->{result_values}->{operation} = $options{extra_options}->{operation}; + $self->{result_values}->{hits} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{hits}}; + $self->{result_values}->{misses} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{misses}}; + $self->{result_values}->{req} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{req}}; + $self->{result_values}->{res} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{res}}; return 0; } @@ -92,93 +197,64 @@ sub set_counters { $self->{maps_counters}->{databases} = [ { label => 'status', threshold => 0, set => { - key_values => [ { name => 'status' }, { name => 'type' }, { name => 'sync' }, { name => 'backup_status' }, { name => 'export_status' }, { name => 'shard_list' } ], + key_values => [ { name => 'status' }, { name => 'type' }, { name => 'backup_status' }, + { name => 'export_status' }, { name => 'import_status' }, { name => 'shard_list' }, { name => 'display' } ], closure_custom_calc => $self->can('custom_status_calc'), closure_custom_output => $self->can('custom_status_output'), closure_custom_perfdata => sub { return 0; }, closure_custom_threshold_check => $self->can('custom_status_threshold'), } }, - { label => 'ops-per-sec', set => { - key_values => [ { name => 'instantaneous_ops_per_sec' }, { name => 'display' } ], - output_template => 'Operations: %s ops/s', + { label => 'total-cpu', set => { + key_values => [ { name => 'shard_cpu_user' }, { name => 'shard_cpu_system' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_cpu_calc'), + closure_custom_calc_extra_options => { cpu => 'Total', user => 'shard_cpu_user', + system => 'shard_cpu_system', display => 'display' }, + closure_custom_output => $self->can('custom_cpu_output'), perfdatas => [ - { label => 'ops_per_sec', value => 'instantaneous_ops_per_sec_absolute', template => '%s', - min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + { label => 'total_cpu_user', value => 'user', template => '%s', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, + { label => 'total_cpu_system', value => 'system', template => '%s', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, ], } }, - { label => 'memory-used', set => { - key_values => [ { name => 'used_memory' }, { name => 'display' } ], - output_template => 'Memory used: %s %s', - output_change_bytes => 1, + { label => 'fork-cpu', set => { + key_values => [ { name => 'fork_cpu_user' }, { name => 'fork_cpu_system' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_cpu_calc'), + closure_custom_calc_extra_options => { cpu => 'Fork', user => 'fork_cpu_user', + system => 'fork_cpu_system', display => 'display' }, + closure_custom_output => $self->can('custom_cpu_output'), perfdatas => [ - { label => 'memory-used', value => 'used_memory_absolute', template => '%s', - min => 0, unit => 'B', label_extra_instance => 1, instance_use => 'display_absolute' }, + { label => 'fork_cpu_user', value => 'user', template => '%s', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, + { label => 'fork_cpu_system', value => 'system', template => '%s', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, ], } }, - { label => 'total-keys', set => { - key_values => [ { name => 'no_of_keys' }, { name => 'display' } ], - output_template => 'Total keys: %s', + { label => 'main-thread-cpu', set => { + key_values => [ { name => 'main_thread_cpu_user' }, { name => 'main_thread_cpu_system' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_cpu_calc'), + closure_custom_calc_extra_options => { cpu => 'Main thread', user => 'main_thread_cpu_user', + system => 'main_thread_cpu_system', display => 'display' }, + closure_custom_output => $self->can('custom_cpu_output'), perfdatas => [ - { label => 'total-keys', value => 'no_of_keys_absolute', template => '%s', - min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + { label => 'main_thread_cpu_user', value => 'user', template => '%s', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, + { label => 'main_thread_cpu_system', value => 'system', template => '%s', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, ], } }, - { label => 'read-hits', set => { - key_values => [ { name => 'read_hits' }, { name => 'display' } ], - output_template => 'Read hits: %s /s', - perfdatas => [ - { label => 'read_hits', value => 'read_hits_absolute', template => '%s', - min => 0, unit => '/s', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'read-misses', set => { - key_values => [ { name => 'read_misses' }, { name => 'display' } ], - output_template => 'Read misses: %s /s', - perfdatas => [ - { label => 'read_misses', value => 'read_misses_absolute', template => '%s', - min => 0, unit => '/s', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'write-hits', set => { - key_values => [ { name => 'write_hits' }, { name => 'display' } ], - output_template => 'Write hits: %s /s', - perfdatas => [ - { label => 'write_hits', value => 'write_hits_absolute', template => '%s', - min => 0, unit => '/s', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'write-misses', set => { - key_values => [ { name => 'write_misses' }, { name => 'display' } ], - output_template => 'Write misses: %s /s', - perfdatas => [ - { label => 'write_misses', value => 'write_misses_absolute', template => '%s', - min => 0, unit => '/s', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'evicted-objects', set => { - key_values => [ { name => 'evicted_objects' }, { name => 'display' } ], - output_template => 'Evicted objects: %s', - perfdatas => [ - { label => 'evicted_objects', value => 'evicted_objects_absolute', template => '%s', - min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'expired-objects', set => { - key_values => [ { name => 'expired_objects' }, { name => 'display' } ], - output_template => 'Evicted objects: %s', - perfdatas => [ - { label => 'expired_objects', value => 'expired_objects_absolute', template => '%s', - min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, - ], + { label => 'memory', set => { + key_values => [ { name => 'used_memory' }, { name => 'memory_size' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_calc_extra_options => { display => 'Memory', label => 'memory', perf => 'memory', + used => 'used_memory', total => 'memory_size' }, + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), } }, { label => 'mem-frag-ratio', set => { @@ -190,18 +266,188 @@ sub set_counters { ], } }, + { label => 'connections', set => { + key_values => [ { name => 'conns' }, { name => 'display' } ], + output_template => 'Connections: %s', + perfdatas => [ + { label => 'connections', value => 'conns_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'total-rates', set => { + key_values => [ { name => 'total_hits' }, { name => 'total_misses' }, + { name => 'total_req' }, { name => 'total_res' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_operations_calc'), + closure_custom_calc_extra_options => { operation => 'Total', hits => 'total_hits', misses => 'total_misses', + req => 'total_req', res => 'total_res', display => 'display' }, + closure_custom_output => $self->can('custom_operations_output'), + perfdatas => [ + { label => 'total_hits', value => 'hits', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + { label => 'total_misses', value => 'misses', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + { label => 'total_req', value => 'req', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + { label => 'total_res', value => 'res', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + ], + } + }, + { label => 'latency', set => { + key_values => [ { name => 'avg_latency' }, { name => 'display' } ], + output_template => 'Average latency: %.2f ms', + perfdatas => [ + { label => 'latency', value => 'avg_latency_absolute', template => '%.2f', + min => 0, unit => 'ms', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'other-rates', set => { + key_values => [ { name => 'other_hits' }, { name => 'other_misses' }, + { name => 'other_req' }, { name => 'other_res' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_operations_calc'), + closure_custom_calc_extra_options => { operation => 'Other', hits => 'other_hits', misses => 'other_misses', + req => 'other_req', res => 'other_res', display => 'display' }, + closure_custom_output => $self->can('custom_operations_output'), + perfdatas => [ + { label => 'other_req', value => 'req', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + { label => 'other_res', value => 'res', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + ], + } + }, + { label => 'other-latency', set => { + key_values => [ { name => 'avg_other_latency' }, { name => 'display' } ], + output_template => 'Other latency: %.2f ms', + perfdatas => [ + { label => 'other_latency', value => 'avg_other_latency_absolute', template => '%.2f', + min => 0, unit => 'ms', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'keys', set => { + key_values => [ { name => 'no_of_keys' }, { name => 'display' } ], + output_template => 'Total keys: %s', + perfdatas => [ + { label => 'keys', value => 'no_of_keys_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'evicted-objects', set => { + key_values => [ { name => 'evicted_objects' }, { name => 'display' } ], + output_template => 'Evicted objects rate: %s evictions/sec', + perfdatas => [ + { label => 'evicted_objects', value => 'evicted_objects_absolute', template => '%s', + min => 0, unit => 'evictions/sec', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'expired-objects', set => { + key_values => [ { name => 'expired_objects' }, { name => 'display' } ], + output_template => 'Expired objects rate: %s expirations/sec', + perfdatas => [ + { label => 'expired_objects', value => 'expired_objects_absolute', template => '%s', + min => 0, unit => 'expirations/sec', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'read-rates', set => { + key_values => [ { name => 'read_hits' }, { name => 'read_misses' }, + { name => 'read_req' }, { name => 'read_res' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_operations_calc'), + closure_custom_calc_extra_options => { operation => 'Read', hits => 'read_hits', misses => 'read_misses', + req => 'read_req', res => 'read_res', display => 'display' }, + closure_custom_output => $self->can('custom_operations_output'), + perfdatas => [ + { label => 'read_hits', value => 'hits', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + { label => 'read_misses', value => 'misses', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + { label => 'read_req', value => 'req', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + { label => 'read_res', value => 'res', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + ], + } + }, + { label => 'read-latency', set => { + key_values => [ { name => 'avg_read_latency' }, { name => 'display' } ], + output_template => 'Read latency: %.2f ms', + perfdatas => [ + { label => 'read_latency', value => 'avg_read_latency_absolute', template => '%.2f', + min => 0, unit => 'ms', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'write-rates', set => { + key_values => [ { name => 'write_hits' }, { name => 'write_misses' }, + { name => 'write_req' }, { name => 'write_res' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_operations_calc'), + closure_custom_calc_extra_options => { operation => 'Write', hits => 'write_hits', misses => 'write_misses', + req => 'write_req', res => 'write_res', display => 'display' }, + closure_custom_output => $self->can('custom_operations_output'), + perfdatas => [ + { label => 'write_hits', value => 'hits', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + { label => 'write_misses', value => 'misses', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + { label => 'write_req', value => 'req', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + { label => 'write_res', value => 'res', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + ], + } + }, + { label => 'write-latency', set => { + key_values => [ { name => 'avg_write_latency' }, { name => 'display' } ], + output_template => 'Write latency: %.2f ms', + perfdatas => [ + { label => 'write_latency', value => 'avg_write_latency_absolute', template => '%.2f', + min => 0, unit => 'ms', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'traffic-in', set => { + key_values => [ { name => 'ingress' }, { name => 'display' } ], + output_template => 'Traffic In: %s %s/s', + output_change_bytes => 2, + perfdatas => [ + { label => 'traffic_in', value => 'ingress_absolute', template => '%d', + min => 0, unit => 'b/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + }, + }, + { label => 'traffic-out', set => { + key_values => [ { name => 'egress' }, { name => 'display' } ], + output_template => 'Traffic Out: %s %s/s', + output_change_bytes => 2, + perfdatas => [ + { label => 'traffic_out', value => 'egress_absolute', template => '%d', + min => 0, unit => 'b/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + }, + }, ]; } sub new { my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 1); + my $self = $class->SUPER::new(package => __PACKAGE__, %options); bless $self, $class; $self->{version} = '1.0'; $options{options}->add_options(arguments => { + "interval:s" => { name => 'interval', default => '15min' }, "filter-database:s" => { name => 'filter_database' }, + "units:s" => { name => 'units', default => '%' }, + "free" => { name => 'free' }, + "warning-status:s" => { name => 'warning_status', default => '' }, + "critical-status:s" => { name => 'critical_status', default => '%{status} =~ /creation-failed/i | %{backup_status} =~ /failed/i | + %{export_status} =~ /failed/i | %{import_status} =~ /failed/i' }, }); return $self; @@ -210,17 +456,25 @@ sub new { sub check_options { my ($self, %options) = @_; $self->SUPER::check_options(%options); - + $instance_mode = $self; + $self->change_macros(); +} + +sub change_macros { + my ($self, %options) = @_; + + foreach (('warning_status', 'critical_status')) { + if (defined($self->{option_results}->{$_})) { + $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; + } + } } sub manage_selection { my ($self, %options) = @_; - $self->{cache_name} = "redis_restapi_" . $self->{mode} . '_' . $options{custom}->get_connection_info() . '_' . - (defined($self->{option_results}->{filter_counters}) ? md5_hex($self->{option_results}->{filter_counters}) : md5_hex('all')); - - my $result = $options{custom}->get(path => '/v1/bdbs/stats/last'); + my $result = $options{custom}->get(path => '/v1/bdbs/stats/last?interval='.$instance_mode->{option_results}->{interval}); my $result2 = $options{custom}->get(path => '/v1/bdbs'); foreach my $database (keys $result) { @@ -231,26 +485,53 @@ sub manage_selection { } my $shard_list = '-'; - if (@{$result2->{$database}->{shard_list}}) { $shard_list = join(", ", @{$result2->{$database}->{shard_list}}); } + if (@{$result2->{$database}->{shard_list}}) { + $shard_list = join(", ", @{$result2->{$database}->{shard_list}}); + } $self->{databases}->{$database} = { display => $result2->{$database}->{name}, status => defined($result2->{$database}->{status}) ? $result2->{$database}->{status} : '-', type => defined($result2->{$database}->{type}) ? $result2->{$database}->{type} : '-', - sync => defined($result2->{$database}->{sync}) ? $result2->{$database}->{sync} : '-', backup_status => defined($result2->{$database}->{backup_status}) ? $result2->{$database}->{backup_status} : '-', export_status => defined($result2->{$database}->{export_status}) ? $result2->{$database}->{export_status} : '-', + import_status => defined($result2->{$database}->{import_status}) ? $result2->{$database}->{import_status} : '-', shard_list => $shard_list, + shard_cpu_user => $result->{$database}->{shard_cpu_user} * 100, + shard_cpu_system => $result->{$database}->{shard_cpu_system} * 100, + main_thread_cpu_user => $result->{$database}->{main_thread_cpu_user} * 100, + main_thread_cpu_system => $result->{$database}->{main_thread_cpu_system} * 100, + fork_cpu_user => $result->{$database}->{fork_cpu_user} * 100, + fork_cpu_system => $result->{$database}->{fork_cpu_system} * 100, used_memory => $result->{$database}->{used_memory}, - instantaneous_ops_per_sec => $result->{$database}->{instantaneous_ops_per_sec}, + memory_size => $result2->{$database}->{memory_size}, + mem_frag_ratio => $result->{$database}->{mem_frag_ratio}, + conns => $result->{$database}->{conns}, + total_req => $result->{$database}->{total_req}, + total_res => $result->{$database}->{total_res}, + total_hits => $result->{$database}->{read_hits} + $result->{$database}->{write_hits}, + total_misses => $result->{$database}->{read_misses} + $result->{$database}->{write_misses}, + avg_latency => defined($result2->{$database}->{avg_latency}) ? $result->{$database}->{avg_latency} * 1000 : '0', + other_req => $result->{$database}->{other_req}, + other_res => $result->{$database}->{other_res}, + other_hits => '-', + other_misses => '-', + avg_other_latency => defined($result2->{$database}->{avg_other_latency}) ? $result->{$database}->{avg_other_latency} * 1000 : '0', no_of_keys => $result->{$database}->{no_of_keys}, evicted_objects => $result->{$database}->{evicted_objects}, expired_objects => $result->{$database}->{expired_objects}, read_hits => $result->{$database}->{read_hits}, read_misses => $result->{$database}->{read_misses}, + read_req => $result->{$database}->{read_req}, + read_res => $result->{$database}->{read_res}, write_hits => $result->{$database}->{write_hits}, write_misses => $result->{$database}->{write_misses}, - mem_frag_ratio => $result->{$database}->{mem_frag_ratio}, + write_req => $result->{$database}->{write_req}, + write_res => $result->{$database}->{write_res}, + avg_read_latency => defined($result2->{$database}->{avg_read_latency}) ? $result->{$database}->{avg_read_latency} * 1000 : '0', + avg_write_latency => defined($result2->{$database}->{avg_write_latency}) ? $result->{$database}->{avg_write_latency} * 1000 : '0', + ingress => $result->{$database}->{ingress_bytes} * 8, + egress => $result->{$database}->{egress_bytes} * 8, }; if (scalar(keys %{$self->{databases}}) <= 0) { @@ -273,35 +554,63 @@ Check RedisLabs Enterprise Cluster databases statistics. =item B<--filter-counters> Only display some counters (regexp can be used). -Example: --filter-counters='clients' +Example: --filter-counters='rate|latency' + +=item B<--interval> + +Time interval from which to retrieve statistics (Default: '15min'). +Can be : '1sec', '10sec', '5min', '15min', +'1hour', '12hour', '1week' =item B<--warning-status> Set warning threshold for status. -Can used special variables like: %{status}, %{type}, %{sync}, -%{backup_status}, %{export_status}, %{shard_list} +Can used special variables like: %{status}, %{type}, +%{backup_status}, %{export_status}, %{shard_list}. +'status' can be: 'pending', 'active', 'active-change-pending', +'delete-pending', 'import-pending', 'creation-failed', 'recovery'. +'type' can be: 'redis', 'memcached'. +'backup_status' can be: 'exporting', 'succeeded', 'failed'. +'export_status' can be: 'exporting', 'succeeded', 'failed'. +'import_status' can be: 'idle', 'initializing', 'importing', +'succeeded', 'failed'. =item B<--critical-status> -Set critical threshold for status (Default: '%{status} !~ /active/i'). -Can used special variables like: %{status}, %{type}, %{sync}, -%{backup_status}, %{export_status}, %{shard_list} +Set critical threshold for status (Default: '%{status} =~ /creation-failed/i | +%{backup_status} =~ /failed/i | %{export_status} =~ /failed/i | +%{import_status} =~ /failed/i'). +Can used special variables like: %{status}, %{type}, +%{backup_status}, %{export_status}, %{shard_list}. +'status' can be: 'pending', 'active', 'active-change-pending', +'delete-pending', 'import-pending', 'creation-failed', 'recovery'. +'type' can be: 'redis', 'memcached'. +'backup_status' can be: 'exporting', 'succeeded', 'failed'. +'' can be: 'exporting', 'succeeded', 'failed'. +'import_status' can be: 'idle', 'initializing', 'importing', +'succeeded', 'failed'. =item B<--warning-*> Threshold warning. -Can be: 'ops-per-sec', 'memory-used', -'total-keys', 'read-hits', 'read-misses', -'write-hits', 'write-misses', 'evicted-objects', -'expired-objects', 'mem-frag-ratio'. +Can be: 'total-cpu', 'fork-cpu', 'main-thread-cpu', +'memory', 'mem-frag-ratio', 'connections', +'total-rates', 'latency', 'other-rates', 'other-latency', +'keys', 'evicted-objects', 'expired-objects', +'read-rates', 'read-latency', +'write-rates', 'write-latency', +'traffic-in', 'traffic-out'. =item B<--critical-*> Threshold critical. -Can be: 'ops-per-sec', 'memory-used', -'total-keys', 'read-hits', 'read-misses', -'write-hits', 'write-misses', 'evicted-objects', -'expired-objects', 'mem-frag-ratio'. +Can be: 'total-cpu', 'fork-cpu', 'main-thread-cpu', +'memory', 'mem-frag-ratio', 'connections', +'total-rates', 'latency', 'other-rates', 'other-latency', +'keys', 'evicted-objects', 'expired-objects', +'read-rates', 'read-latency', +'write-rates', 'write-latency', +'traffic-in', 'traffic-out'. =back diff --git a/apps/redis/restapi/mode/nodesstats.pm b/apps/redis/restapi/mode/nodesstats.pm index 3df536048..2a1c23a87 100644 --- a/apps/redis/restapi/mode/nodesstats.pm +++ b/apps/redis/restapi/mode/nodesstats.pm @@ -101,7 +101,7 @@ sub custom_status_threshold { eval "$instance_mode->{option_results}->{critical_status}") { $status = 'critical'; } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && - eval "$instance_mode->{option_results}->{warning_status}") { + eval "$instance_mode->{option_results}->{warning_status}") { $status = 'warning'; } }; @@ -133,22 +133,6 @@ sub custom_status_calc { return 0; } -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 1); - bless $self, $class; - - $self->{version} = '1.0'; - $options{options}->add_options(arguments => - { - "filter-node:s" => { name => 'filter_node' }, - "units:s" => { name => 'units', default => '%' }, - "free" => { name => 'free' }, - }); - - return $self; -} - sub prefix_output { my ($self, %options) = @_; @@ -171,6 +155,24 @@ sub set_counters { closure_custom_threshold_check => $self->can('custom_status_threshold'), } }, + { label => 'shard-count', set => { + key_values => [ { name => 'shard_count' }, { name => 'display' } ], + output_template => 'Shard count: %d', + perfdatas => [ + { label => 'shard_count', value => 'shard_count_absolute', template => '%d', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + }, + }, + { label => 'uptime', set => { + key_values => [ { name => 'uptime' }, { name => 'uptime_sec' }, { name => 'display' } ], + output_template => 'Uptime: %s', + perfdatas => [ + { label => 'uptime', value => 'uptime_sec_absolute', template => '%d', + min => 0, unit => 's', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + }, + }, { label => 'cpu-system', set => { key_values => [ { name => 'cpu_system' }, { name => 'display' } ], output_template => 'Cpu system: %.2f %%', @@ -189,51 +191,41 @@ sub set_counters { ], } }, - { label => 'requests', set => { - key_values => [ { name => 'total_req', diff => 1 }, { name => 'display' } ], - output_template => 'Requests per seconds: %s', - per_second => 1, - perfdatas => [ - { label => 'requests', value => 'total_req_per_second', template => '%s', - min => 0, unit => '/s', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'memory-used', set => { + { label => 'memory', set => { key_values => [ { name => 'free_memory' }, { name => 'total_memory' } ], closure_custom_calc => $self->can('custom_usage_calc'), - closure_custom_calc_extra_options => { display => 'Ram', label => 'memory-used', perf => 'memory_used', + closure_custom_calc_extra_options => { display => 'Ram', label => 'memory', perf => 'memory', free => 'free_memory', total => 'total_memory' }, closure_custom_output => $self->can('custom_usage_output'), closure_custom_perfdata => $self->can('custom_usage_perfdata'), closure_custom_threshold_check => $self->can('custom_usage_threshold'), } }, - { label => 'persistent-storage-used', set => { + { label => 'persistent-storage', set => { key_values => [ { name => 'persistent_storage_free' }, { name => 'persistent_storage_size' } ], closure_custom_calc => $self->can('custom_usage_calc'), - closure_custom_calc_extra_options => { display => 'Persistent storage', label => 'persistent-storage-used', perf => 'persistent_storage_used', + closure_custom_calc_extra_options => { display => 'Persistent storage', label => 'persistent-storage', perf => 'persistent_storage', free => 'persistent_storage_free', total => 'persistent_storage_size' }, closure_custom_output => $self->can('custom_usage_output'), closure_custom_perfdata => $self->can('custom_usage_perfdata'), closure_custom_threshold_check => $self->can('custom_usage_threshold'), } }, - { label => 'ephemeral-storage-used', set => { + { label => 'ephemeral-storage', set => { key_values => [ { name => 'ephemeral_storage_free' }, { name => 'ephemeral_storage_size' } ], closure_custom_calc => $self->can('custom_usage_calc'), - closure_custom_calc_extra_options => { display => 'Ephemeral storage', label => 'ephemeral-storage-used', perf => 'ephemeral_storage_used', + closure_custom_calc_extra_options => { display => 'Ephemeral storage', label => 'ephemeral-storage', perf => 'ephemeral_storage', free => 'ephemeral_storage_free', total => 'ephemeral_storage_size' }, closure_custom_output => $self->can('custom_usage_output'), closure_custom_perfdata => $self->can('custom_usage_perfdata'), closure_custom_threshold_check => $self->can('custom_usage_threshold'), } }, - { label => 'flash-storage-used', set => { - key_values => [ { name => 'available_flash' }, { name => 'bigstore_size' } ], + { label => 'flash-storage', set => { + key_values => [ { name => 'bigstore_free' }, { name => 'bigstore_size' } ], closure_custom_calc => $self->can('custom_usage_calc'), - closure_custom_calc_extra_options => { display => 'Flash storage', label => 'flash-storage-used', perf => 'flash_storage_used', - free => 'available_flash', total => 'bigstore_size' }, + closure_custom_calc_extra_options => { display => 'Flash storage', label => 'flash-storage', perf => 'flash_storage', + free => 'bigstore_free', total => 'bigstore_size' }, closure_custom_output => $self->can('custom_usage_output'), closure_custom_perfdata => $self->can('custom_usage_perfdata'), closure_custom_threshold_check => $self->can('custom_usage_threshold'), @@ -241,10 +233,10 @@ sub set_counters { }, { label => 'flash-iops', set => { key_values => [ { name => 'bigstore_iops' }, { name => 'display' } ], - output_template => 'Flash IOPS: %s', + output_template => 'Flash IOPS: %s ops/s', perfdatas => [ { label => 'flash_iops', value => 'bigstore_iops_absolute', template => '%s', - min => 0, unit => '/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display_absolute' }, ], } }, @@ -267,6 +259,15 @@ sub set_counters { ], } }, + { label => 'requests', set => { + key_values => [ { name => 'total_req' } ], + output_template => 'Requests rate: %s ops/s', + perfdatas => [ + { label => 'requests', value => 'total_req_absolute', template => '%s', + min => 0, unit => 'ops/s' }, + ], + } + }, { label => 'traffic-in', set => { key_values => [ { name => 'ingress' }, { name => 'display' } ], output_template => 'Traffic In: %s %s/s', @@ -287,41 +288,50 @@ sub set_counters { ], }, }, - { label => 'shard-count', set => { - key_values => [ { name => 'shard_count' }, { name => 'display' } ], - output_template => 'Shard count: %d', - perfdatas => [ - { label => 'shard_count', value => 'shard_count_absolute', template => '%d', - min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - }, - }, - { label => 'uptime', set => { - key_values => [ { name => 'uptime' }, { name => 'uptime_sec' }, { name => 'display' } ], - output_template => 'Uptime: %s', - perfdatas => [ - { label => 'uptime', value => 'uptime_sec_absolute', template => '%d', - min => 0, unit => 's', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - }, - }, ]; } +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "interval:s" => { name => 'interval', default => '15min' }, + "filter-node:s" => { name => 'filter_node' }, + "units:s" => { name => 'units', default => '%' }, + "free" => { name => 'free' }, + "warning-status:s" => { name => 'warning_status', default => '' }, + "critical-status:s" => { name => 'critical_status', default => '%{status} !~ /down/i' }, + }); + + return $self; +} + sub check_options { my ($self, %options) = @_; $self->SUPER::check_options(%options); - + $instance_mode = $self; + $self->change_macros(); +} + +sub change_macros { + my ($self, %options) = @_; + + foreach (('warning_status', 'critical_status')) { + if (defined($self->{option_results}->{$_})) { + $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; + } + } } sub manage_selection { my ($self, %options) = @_; - $self->{cache_name} = "redis_restapi_" . $self->{mode} . '_' . $options{custom}->get_connection_info() . '_' . - (defined($self->{option_results}->{filter_counters}) ? md5_hex($self->{option_results}->{filter_counters}) : md5_hex('all')); - - my $result = $options{custom}->get(path => '/v1/nodes/stats/last'); + my $result = $options{custom}->get(path => '/v1/nodes/stats/last?interval='.$instance_mode->{option_results}->{interval}); my $result2 = $options{custom}->get(path => '/v1/nodes'); foreach my $node (keys $result) { @@ -332,16 +342,23 @@ sub manage_selection { } my $shard_list = '-'; - if (@{$result2->{$node}->{shard_list}}) { $shard_list = join(", ", @{$result2->{$node}->{shard_list}}); } + if (@{$result2->{$node}->{shard_list}}) { + $shard_list = join(", ", @{$result2->{$node}->{shard_list}}); + } my $ext_addr = '-'; - if (@{$result2->{$node}->{external_addr}}) { $ext_addr = join(", ", @{$result2->{$node}->{external_addr}}); } + if (@{$result2->{$node}->{external_addr}}) { + $ext_addr = join(", ", @{$result2->{$node}->{external_addr}}); + } $self->{nodes}->{$node} = { display => $node, status => defined($result2->{$node}->{status}) ? $result2->{$node}->{status} : '-', shard_list => $shard_list, + shard_count => $result2->{$node}->{shard_count}, int_addr => $result2->{$node}->{addr}, ext_addr => $ext_addr, + uptime => centreon::plugins::misc::change_seconds(value => $result2->{$node}->{uptime}), + uptime_sec => $result2->{$node}->{uptime}, cpu_system => $result->{$node}->{cpu_system} * 100, cpu_user => $result->{$node}->{cpu_user} * 100, free_memory => $result->{$node}->{free_memory}, @@ -350,17 +367,14 @@ sub manage_selection { persistent_storage_size => $result2->{$node}->{persistent_storage_size}, ephemeral_storage_free => $result->{$node}->{ephemeral_storage_free}, ephemeral_storage_size => $result2->{$node}->{ephemeral_storage_size}, - available_flash => $result->{$node}->{available_flash}, + bigstore_free => $result->{$node}->{bigstore_free}, bigstore_size => $result2->{$node}->{bigstore_size}, bigstore_iops => $result->{$node}->{bigstore_iops}, bigstore_throughput => $result->{$node}->{bigstore_throughput}, conns => $result->{$node}->{conns}, + total_req => $result->{$node}->{total_req}, ingress => $result->{$node}->{ingress_bytes} * 8, egress => $result->{$node}->{egress_bytes} * 8, - total_req => $result->{$node}->{total_req}, - shard_count => $result2->{$node}->{shard_count}, - uptime => centreon::plugins::misc::change_seconds(value => $result2->{$node}->{uptime}), - uptime_sec => $result2->{$node}->{uptime}, }; if (scalar(keys %{$self->{nodes}}) <= 0) { @@ -385,32 +399,51 @@ Check RedisLabs Enterprise Cluster nodes statistics. Only display some counters (regexp can be used). Example: --filter-counters='^cpu' +=item B<--interval> + +Time interval from which to retrieve statistics (Default: '15min'). +Can be : '1sec', '10sec', '5min', '15min', +'1hour', '12hour', '1week' + +=item B<--units> + +Units of thresholds (Default: '%') ('%', 'B'). + +=item B<--free> + +Thresholds are on free space left. =item B<--warning-status> Set warning threshold for status. -Can used special variables like: %{status}, %{shard_list}, %{int_addr}, %{ext_addr}. +Can used special variables like: %{status}, %{shard_list}, +%{int_addr}, %{ext_addr}. +'status' can be: 'active', 'going_offline', 'offline', +'provisioning', 'decommissioning', 'down'. =item B<--critical-status> -Set critical threshold for status (Default: '%{status} !~ /active/i'). -Can used special variables like: %{status}, %{shard_list}, %{int_addr}, %{ext_addr}. +Set critical threshold for status (Default: '%{status} !~ /down/i'). +Can used special variables like: %{status}, %{shard_list}, +%{int_addr}, %{ext_addr}. +'status' can be: 'active', 'going_offline', 'offline', +'provisioning', 'decommissioning', 'down'. =item B<--warning-*> Threshold warning. Can be: 'cpu-system', 'cpu-user', -'requests', 'memory-used', 'flash-storage-used', -'persistent-storage-used', 'ephemeral-storage-used', +'requests', 'memory', 'flash-storage', +'persistent-storage', 'ephemeral-storage', 'flash-iops', 'flash-throughput', 'connections', -'traffic-in', 'traffic-out', 'uptime'. +'traffic-in', 'traffic-out', 'shard-count', 'uptime'. =item B<--critical-*> Threshold critical. Can be: 'cpu-system', 'cpu-user', -'requests', 'memory-used', 'flash-storage-used', -'persistent-storage-used', 'ephemeral-storage-used', +'requests', 'memory', 'flash-storage', +'persistent-storage', 'ephemeral-storage', 'flash-iops', 'flash-throughput', 'connections', 'traffic-in', 'traffic-out', 'shard-count', 'uptime'. diff --git a/apps/redis/restapi/mode/shardsstats.pm b/apps/redis/restapi/mode/shardsstats.pm index a2d79f38d..097a9ba00 100644 --- a/apps/redis/restapi/mode/shardsstats.pm +++ b/apps/redis/restapi/mode/shardsstats.pm @@ -41,7 +41,7 @@ sub custom_status_threshold { eval "$instance_mode->{option_results}->{critical_status}") { $status = 'critical'; } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && - eval "$instance_mode->{option_results}->{warning_status}") { + eval "$instance_mode->{option_results}->{warning_status}") { $status = 'warning'; } }; @@ -80,6 +80,46 @@ sub custom_status_calc { return 0; } +sub custom_operations_output { + my ($self, %options) = @_; + + my $msg = sprintf("%s operations rates (hits/misses): %s/%s ops/s", + $self->{result_values}->{operation}, + $self->{result_values}->{hits}, + $self->{result_values}->{misses}); + return $msg; +} + +sub custom_operations_calc { + my ($self, %options) = @_; + + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{display}}; + $self->{result_values}->{operation} = $options{extra_options}->{operation}; + $self->{result_values}->{hits} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{hits}}; + $self->{result_values}->{misses} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{misses}}; + return 0; +} + +sub custom_cpu_output { + my ($self, %options) = @_; + + my $msg = sprintf("%s CPU usage (user/system): %s/%s %%", + $self->{result_values}->{cpu}, + $self->{result_values}->{user}, + $self->{result_values}->{system}); + return $msg; +} + +sub custom_cpu_calc { + my ($self, %options) = @_; + + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{display}}; + $self->{result_values}->{cpu} = $options{extra_options}->{cpu}; + $self->{result_values}->{user} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{user}}; + $self->{result_values}->{system} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{system}}; + return 0; +} + sub prefix_output { my ($self, %options) = @_; @@ -95,37 +135,71 @@ sub set_counters { $self->{maps_counters}->{shards} = [ { label => 'status', threshold => 0, set => { - key_values => [ { name => 'status' }, { name => 'detailed_status' }, { name => 'role' }, { name => 'loading' }, { name => 'sync' }, { name => 'backup' } ], + key_values => [ { name => 'status' }, { name => 'detailed_status' }, { name => 'role' }, + { name => 'loading' }, { name => 'sync' }, { name => 'backup' } ], closure_custom_calc => $self->can('custom_status_calc'), closure_custom_output => $self->can('custom_status_output'), closure_custom_perfdata => sub { return 0; }, closure_custom_threshold_check => $self->can('custom_status_threshold'), } }, - { label => 'ops-per-sec', set => { - key_values => [ { name => 'instantaneous_ops_per_sec' }, { name => 'display' } ], - output_template => 'Operations: %s ops/s', + { label => 'total-cpu', set => { + key_values => [ { name => 'shard_cpu_user' }, { name => 'shard_cpu_system' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_cpu_calc'), + closure_custom_calc_extra_options => { cpu => 'Total', user => 'shard_cpu_user', + system => 'shard_cpu_system', display => 'display' }, + closure_custom_output => $self->can('custom_cpu_output'), perfdatas => [ - { label => 'ops_per_sec', value => 'instantaneous_ops_per_sec_absolute', template => '%s', - min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + { label => 'total_cpu_user', value => 'user', template => '%s', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, + { label => 'total_cpu_system', value => 'system', template => '%s', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, ], } }, - { label => 'memory-used', set => { + { label => 'fork-cpu', set => { + key_values => [ { name => 'fork_cpu_user' }, { name => 'fork_cpu_system' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_cpu_calc'), + closure_custom_calc_extra_options => { cpu => 'Fork', user => 'fork_cpu_user', + system => 'fork_cpu_system', display => 'display' }, + closure_custom_output => $self->can('custom_cpu_output'), + perfdatas => [ + { label => 'fork_cpu_user', value => 'user', template => '%s', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, + { label => 'fork_cpu_system', value => 'system', template => '%s', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, + ], + } + }, + { label => 'main-thread-cpu', set => { + key_values => [ { name => 'main_thread_cpu_user' }, { name => 'main_thread_cpu_system' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_cpu_calc'), + closure_custom_calc_extra_options => { cpu => 'Main thread', user => 'main_thread_cpu_user', + system => 'main_thread_cpu_system', display => 'display' }, + closure_custom_output => $self->can('custom_cpu_output'), + perfdatas => [ + { label => 'main_thread_cpu_user', value => 'user', template => '%s', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, + { label => 'main_thread_cpu_system', value => 'system', template => '%s', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, + ], + } + }, + { label => 'memory', set => { key_values => [ { name => 'used_memory' }, { name => 'display' } ], output_template => 'Memory used: %s %s', output_change_bytes => 1, perfdatas => [ - { label => 'memory-used', value => 'used_memory_absolute', template => '%s', + { label => 'memory', value => 'used_memory_absolute', template => '%s', min => 0, unit => 'B', label_extra_instance => 1, instance_use => 'display_absolute' }, ], } }, - { label => 'total-keys', set => { - key_values => [ { name => 'no_of_keys' }, { name => 'display' } ], - output_template => 'Total keys: %s', + { label => 'mem-frag-ratio', set => { + key_values => [ { name => 'mem_frag_ratio' }, { name => 'display' } ], + output_template => 'Memory fragmentation ratio: %s', perfdatas => [ - { label => 'total-keys', value => 'no_of_keys_absolute', template => '%s', + { label => 'mem_frag_ratio', value => 'mem_frag_ratio_absolute', template => '%s', min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, ], } @@ -148,57 +222,76 @@ sub set_counters { ], } }, - { label => 'read-hits', set => { - key_values => [ { name => 'read_hits' }, { name => 'display' } ], - output_template => 'Read hits: %s /s', + { label => 'requests', set => { + key_values => [ { name => 'total_req'}, { name => 'display' }], + output_template => 'Requests rate: %s ops/s', perfdatas => [ - { label => 'read_hits', value => 'read_hits_absolute', template => '%s', - min => 0, unit => '/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + { label => 'requests', value => 'total_req_absolute', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display_absolute' }, ], } }, - { label => 'read-misses', set => { - key_values => [ { name => 'read_misses' }, { name => 'display' } ], - output_template => 'Read misses: %s /s', + { label => 'keys', set => { + key_values => [ { name => 'no_of_keys' }, { name => 'display' } ], + output_template => 'Total keys: %s', perfdatas => [ - { label => 'read_misses', value => 'read_misses_absolute', template => '%s', - min => 0, unit => '/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + { label => 'keys', value => 'no_of_keys_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, ], } }, - { label => 'write-hits', set => { - key_values => [ { name => 'write_hits' }, { name => 'display' } ], - output_template => 'Write hits: %s /s', + { label => 'volatile-keys', set => { + key_values => [ { name => 'no_of_expires' }, { name => 'display' } ], + output_template => 'Volatile keys: %s', perfdatas => [ - { label => 'write_hits', value => 'write_hits_absolute', template => '%s', - min => 0, unit => '/s', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'write-misses', set => { - key_values => [ { name => 'write_misses' }, { name => 'display' } ], - output_template => 'Write misses: %s /s', - perfdatas => [ - { label => 'write_misses', value => 'write_misses_absolute', template => '%s', - min => 0, unit => '/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + { label => 'volatile-keys', value => 'no_of_expires_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, ], } }, { label => 'evicted-objects', set => { key_values => [ { name => 'evicted_objects' }, { name => 'display' } ], - output_template => 'Evicted objects: %s', + output_template => 'Evicted objects rate: %s evictions/sec', perfdatas => [ { label => 'evicted_objects', value => 'evicted_objects_absolute', template => '%s', - min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + min => 0, unit => 'evictions/sec', label_extra_instance => 1, instance_use => 'display_absolute' }, ], } }, { label => 'expired-objects', set => { key_values => [ { name => 'expired_objects' }, { name => 'display' } ], - output_template => 'Evicted objects: %s', + output_template => 'Expired objects rate: %s expirations/sec', perfdatas => [ { label => 'expired_objects', value => 'expired_objects_absolute', template => '%s', - min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + min => 0, unit => 'expirations/sec', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'read-rates', set => { + key_values => [ { name => 'read_hits' }, { name => 'read_misses' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_operations_calc'), + closure_custom_calc_extra_options => { operation => 'Read', hits => 'read_hits', + misses => 'read_misses', display => 'display' }, + closure_custom_output => $self->can('custom_operations_output'), + perfdatas => [ + { label => 'read_hits', value => 'hits', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + { label => 'read_misses', value => 'misses', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + ], + } + }, + { label => 'write-rates', set => { + key_values => [ { name => 'write_hits' }, { name => 'write_misses' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_operations_calc'), + closure_custom_calc_extra_options => { operation => 'Write', hits => 'write_hits', + misses => 'write_misses', display => 'display' }, + closure_custom_output => $self->can('custom_operations_output'), + perfdatas => [ + { label => 'write_hits', value => 'hits', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + { label => 'write_misses', value => 'misses', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, ], } }, @@ -220,27 +313,22 @@ sub set_counters { ], } }, - { label => 'mem-frag-ratio', set => { - key_values => [ { name => 'mem_frag_ratio' }, { name => 'display' } ], - output_template => 'Memory fragmentation ratio: %s', - perfdatas => [ - { label => 'mem_frag_ratio', value => 'mem_frag_ratio_absolute', template => '%s', - min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, ]; } sub new { my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 1); + my $self = $class->SUPER::new(package => __PACKAGE__, %options); bless $self, $class; $self->{version} = '1.0'; $options{options}->add_options(arguments => { + "interval:s" => { name => 'interval', default => '15min' }, "filter-shard:s" => { name => 'filter_shard' }, + "warning-status:s" => { name => 'warning_status', default => '' }, + "critical-status:s" => { name => 'critical_status', default => '%{status} =~ /inactive/i | %{backup} =~ /failed/i | + %{sync} =~ /link_down/i' }, }); return $self; @@ -249,17 +337,25 @@ sub new { sub check_options { my ($self, %options) = @_; $self->SUPER::check_options(%options); - + $instance_mode = $self; + $self->change_macros(); +} + +sub change_macros { + my ($self, %options) = @_; + + foreach (('warning_status', 'critical_status')) { + if (defined($self->{option_results}->{$_})) { + $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; + } + } } sub manage_selection { my ($self, %options) = @_; - $self->{cache_name} = "redis_restapi_" . $self->{mode} . '_' . $options{custom}->get_connection_info() . '_' . - (defined($self->{option_results}->{filter_counters}) ? md5_hex($self->{option_results}->{filter_counters}) : md5_hex('all')); - - my $result = $options{custom}->get(path => '/v1/shards/stats/last'); + my $result = $options{custom}->get(path => '/v1/shards/stats/last?interval='.$instance_mode->{option_results}->{interval}); my $result2 = $options{custom}->get(path => '/v1/shards'); foreach my $shard (keys $result) { @@ -278,17 +374,24 @@ sub manage_selection { sync => defined($result2->{$shard}->{sync}->{status}) ? $result2->{$shard}->{sync}->{status} : '-', backup => defined($result2->{$shard}->{backup}->{status}) ? $result2->{$shard}->{backup}->{status} : '-', used_memory => $result->{$shard}->{used_memory}, - instantaneous_ops_per_sec => $result->{$shard}->{instantaneous_ops_per_sec}, - no_of_keys => $result->{$shard}->{no_of_keys}, + mem_frag_ratio => $result->{$shard}->{mem_frag_ratio}, + shard_cpu_user => $result->{$shard}->{shard_cpu_user} * 100, + shard_cpu_system => $result->{$shard}->{shard_cpu_system} * 100, + main_thread_cpu_user => $result->{$shard}->{main_thread_cpu_user} * 100, + main_thread_cpu_system => $result->{$shard}->{main_thread_cpu_system} * 100, + fork_cpu_user => $result->{$shard}->{fork_cpu_user} * 100, + fork_cpu_system => $result->{$shard}->{fork_cpu_system} * 100, connected_clients => $result->{$shard}->{connected_clients}, blocked_clients => $result->{$shard}->{blocked_clients}, + total_req => $result->{$shard}->{total_req}, + no_of_keys => $result->{$shard}->{no_of_keys}, + no_of_expires => $result->{$shard}->{no_of_expires}, evicted_objects => $result->{$shard}->{evicted_objects}, expired_objects => $result->{$shard}->{expired_objects}, read_hits => $result->{$shard}->{read_hits}, read_misses => $result->{$shard}->{read_misses}, write_hits => $result->{$shard}->{write_hits}, write_misses => $result->{$shard}->{write_misses}, - mem_frag_ratio => $result->{$shard}->{mem_frag_ratio}, rdb_changes_since_last_save => $result->{$shard}->{rdb_changes_since_last_save}, last_save_time => centreon::plugins::misc::change_seconds(value => time() - $result->{$shard}->{last_save_time}), last_save_time_sec => time() - $result->{$shard}->{last_save_time}, @@ -316,37 +419,60 @@ Check RedisLabs Enterprise Cluster shards statistics. Only display some counters (regexp can be used). Example: --filter-counters='clients' -=item B<--warning-status> +=item B<--interval> +Time interval from which to retrieve statistics (Default: '15min'). +Can be : '1sec', '10sec', '5min', '15min', +'1hour', '12hour', '1week' + +=item B<--warning-status> + Set warning threshold for status. Can used special variables like: %{status}, %{detailed_status}, %{role}, %{loading}, %{sync}, %{backup}. +'status' can be: 'active', 'inactive', 'trimming'. +'detailed_status' can be: 'ok', 'importing', 'timeout', +'loading', 'busy', 'down', 'trimming', 'unknown'. +'role' can be: 'slave', 'master'. +'loading' can be: 'in_progress', 'idle'. +'sync' can be: 'in_progress', 'idle', 'link_down'. +'backup' can be: 'exporting', 'succeeded', 'failed'. =item B<--critical-status> -Set critical threshold for status (Default: '%{status} !~ /active/i'). +Set critical threshold for status (Default: '%{status} =~ /inactive/i | +%{backup} =~ /failed/i | %{sync} =~ /link_down/i'). Can used special variables like: %{status}, %{detailed_status}, %{role}, %{loading}, %{sync}, %{backup}. +'status' can be: 'active', 'inactive', 'trimming'. +'detailed_status' can be: 'ok', 'importing', 'timeout', +'loading', 'busy', 'down', 'trimming', 'unknown'. +'role' can be: 'slave', 'master'. +'loading' can be: 'in_progress', 'idle'. +'sync' can be: 'in_progress', 'idle', 'link_down'. +'backup' can be: 'exporting', 'succeeded', 'failed'. =item B<--warning-*> Threshold warning. -Can be: 'ops-per-sec', 'memory-used', 'total-keys', +Can be: 'total-cpu', 'fork-cpu', 'main-thread-cpu', +'memory', 'mem-frag-ratio', 'connected-clients', 'blocked-clients', -'read-hits', 'read-misses', 'write-hits', -'write-misses', 'evicted-objects', 'expired-objects', +'request', 'keys', +'evicted-objects', 'expired-objects', +'read-rates', 'write-rates', 'rdb-changes-since-last-save', 'last-save-time', -'mem-frag-ratio'. =item B<--critical-*> Threshold critical. -Can be: 'ops-per-sec', 'memory-used', 'total-keys', +Can be: 'total-cpu', 'fork-cpu', 'main-thread-cpu', +'memory', 'mem-frag-ratio', 'connected-clients', 'blocked-clients', -'read-hits', 'read-misses', 'write-hits', -'write-misses', 'evicted-objects', 'expired-objects', +'request', 'keys', +'evicted-objects', 'expired-objects', +'read-rates', 'write-rates', 'rdb-changes-since-last-save', 'last-save-time', -'mem-frag-ratio'. =back From be0afa23ba8cc6897473a41ba5cc8aaee7225c65 Mon Sep 17 00:00:00 2001 From: Colin GAGNAIRE Date: Thu, 28 Dec 2017 15:41:40 +0100 Subject: [PATCH 46/77] improve redis restapi --- apps/redis/restapi/mode/databasesstats.pm | 2 +- apps/redis/restapi/mode/shardsstats.pm | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/apps/redis/restapi/mode/databasesstats.pm b/apps/redis/restapi/mode/databasesstats.pm index 4ef54baf0..0f5616d94 100644 --- a/apps/redis/restapi/mode/databasesstats.pm +++ b/apps/redis/restapi/mode/databasesstats.pm @@ -507,7 +507,7 @@ sub manage_selection { memory_size => $result2->{$database}->{memory_size}, mem_frag_ratio => $result->{$database}->{mem_frag_ratio}, conns => $result->{$database}->{conns}, - total_req => $result->{$database}->{total_req}, + total_req => defined($result->{$shard}->{total_req}) ? $result->{$shard}->{total_req} : $result->{$shard}->{instantaneous_ops_per_sec}, total_res => $result->{$database}->{total_res}, total_hits => $result->{$database}->{read_hits} + $result->{$database}->{write_hits}, total_misses => $result->{$database}->{read_misses} + $result->{$database}->{write_misses}, diff --git a/apps/redis/restapi/mode/shardsstats.pm b/apps/redis/restapi/mode/shardsstats.pm index 097a9ba00..2480bd10c 100644 --- a/apps/redis/restapi/mode/shardsstats.pm +++ b/apps/redis/restapi/mode/shardsstats.pm @@ -244,7 +244,7 @@ sub set_counters { key_values => [ { name => 'no_of_expires' }, { name => 'display' } ], output_template => 'Volatile keys: %s', perfdatas => [ - { label => 'volatile-keys', value => 'no_of_expires_absolute', template => '%s', + { label => 'volatile_keys', value => 'no_of_expires_absolute', template => '%s', min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, ], } @@ -383,7 +383,7 @@ sub manage_selection { fork_cpu_system => $result->{$shard}->{fork_cpu_system} * 100, connected_clients => $result->{$shard}->{connected_clients}, blocked_clients => $result->{$shard}->{blocked_clients}, - total_req => $result->{$shard}->{total_req}, + total_req => defined($result->{$shard}->{total_req}) ? $result->{$shard}->{total_req} : $result->{$shard}->{instantaneous_ops_per_sec}, no_of_keys => $result->{$shard}->{no_of_keys}, no_of_expires => $result->{$shard}->{no_of_expires}, evicted_objects => $result->{$shard}->{evicted_objects}, From 849d950696710ee0f2a70096dbf795a422447e00 Mon Sep 17 00:00:00 2001 From: Colin GAGNAIRE Date: Thu, 28 Dec 2017 15:43:13 +0100 Subject: [PATCH 47/77] improve redis restapi --- apps/redis/restapi/mode/databasesstats.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/redis/restapi/mode/databasesstats.pm b/apps/redis/restapi/mode/databasesstats.pm index 0f5616d94..810fc7ab4 100644 --- a/apps/redis/restapi/mode/databasesstats.pm +++ b/apps/redis/restapi/mode/databasesstats.pm @@ -507,7 +507,7 @@ sub manage_selection { memory_size => $result2->{$database}->{memory_size}, mem_frag_ratio => $result->{$database}->{mem_frag_ratio}, conns => $result->{$database}->{conns}, - total_req => defined($result->{$shard}->{total_req}) ? $result->{$shard}->{total_req} : $result->{$shard}->{instantaneous_ops_per_sec}, + total_req => defined($result->{$database}->{total_req}) ? $result->{$database}->{total_req} : $result->{$database}->{instantaneous_ops_per_sec}, total_res => $result->{$database}->{total_res}, total_hits => $result->{$database}->{read_hits} + $result->{$database}->{write_hits}, total_misses => $result->{$database}->{read_misses} + $result->{$database}->{write_misses}, From da72ccdd8edea76f11b3f5815e09c92ac7a1d10a Mon Sep 17 00:00:00 2001 From: Colin GAGNAIRE Date: Thu, 28 Dec 2017 16:52:36 +0100 Subject: [PATCH 48/77] improve redis restapi --- apps/redis/restapi/custom/api.pm | 19 +++++++++++++++++++ apps/redis/restapi/mode/clusterstats.pm | 9 +-------- apps/redis/restapi/mode/databasesstats.pm | 9 +-------- apps/redis/restapi/mode/nodesstats.pm | 13 +++---------- apps/redis/restapi/mode/shardsstats.pm | 9 +-------- 5 files changed, 25 insertions(+), 34 deletions(-) diff --git a/apps/redis/restapi/custom/api.pm b/apps/redis/restapi/custom/api.pm index 82cb71886..6056977b2 100644 --- a/apps/redis/restapi/custom/api.pm +++ b/apps/redis/restapi/custom/api.pm @@ -42,6 +42,7 @@ sub new { if (!defined($options{noptions})) { $options{options}->add_options(arguments => { + "interval:s@" => { name => 'interval' }, "hostname:s@" => { name => 'hostname' }, "port:s@" => { name => 'port' }, "proto:s@" => { name => 'proto' }, @@ -95,6 +96,7 @@ sub check_options { $self->{timeout} = (defined($self->{option_results}->{timeout})) ? shift(@{$self->{option_results}->{timeout}}) : 10; $self->{proxyurl} = (defined($self->{option_results}->{proxyurl})) ? shift(@{$self->{option_results}->{proxyurl}}) : undef; $self->{ssl} = (defined($self->{option_results}->{ssl})) ? shift(@{$self->{option_results}->{ssl}}) : 'tlsv1'; + $self->{interval} = (defined($self->{option_results}->{interval})) ? shift(@{$self->{option_results}->{interval}}) : '15min'; if (!defined($self->{hostname})) { $self->{output}->add_option_msg(short_msg => "Need to specify hostname option."); @@ -105,6 +107,7 @@ sub check_options { scalar(@{$self->{option_results}->{hostname}}) == 0) { return 0; } + return 1; } @@ -137,6 +140,12 @@ sub get_connection_info { return $self->{hostname} . ":" . $self->{port}; } +sub get_interval { + my ($self, %options) = @_; + + return $self->{interval}; +} + sub get { my ($self, %options) = @_; @@ -189,6 +198,12 @@ RedisLabs Enterprise Cluster Rest API custom mode =over 8 +=item B<--interval> + +Time interval from which to retrieve statistics (Default: '15min'). +Can be : '1sec', '10sec', '5min', '15min', +'1hour', '12hour', '1week'. + =item B<--hostname> Cluster hostname. @@ -217,6 +232,10 @@ Proxy URL if any Set HTTP timeout +=item B<--ssl> + +SSL version (Default: tlsv1) + =back =head1 DESCRIPTION diff --git a/apps/redis/restapi/mode/clusterstats.pm b/apps/redis/restapi/mode/clusterstats.pm index 8e2d960a1..e722cb9b6 100644 --- a/apps/redis/restapi/mode/clusterstats.pm +++ b/apps/redis/restapi/mode/clusterstats.pm @@ -226,7 +226,6 @@ sub new { $self->{version} = '1.0'; $options{options}->add_options(arguments => { - "interval:s" => { name => 'interval', default => '15min' }, "units:s" => { name => 'units', default => '%' }, "free" => { name => 'free' }, }); @@ -244,7 +243,7 @@ sub check_options { sub manage_selection { my ($self, %options) = @_; - my $result = $options{custom}->get(path => '/v1/cluster/stats/last?interval='.$instance_mode->{option_results}->{interval}); + my $result = $options{custom}->get(path => '/v1/cluster/stats/last?interval='.$options{custom}->get_interval()); my $result2 = $options{custom}->get(path => '/v1/cluster'); my $result3 = $options{custom}->get(path => '/v1/nodes'); @@ -304,12 +303,6 @@ Check RedisLabs Enterprise Cluster statistics. Only display some counters (regexp can be used). Example: --filter-counters='^cpu' -=item B<--interval> - -Time interval from which to retrieve statistics (Default: '15min'). -Can be : '1sec', '10sec', '5min', '15min', -'1hour', '12hour', '1week' - =item B<--units> Units of thresholds (Default: '%') ('%', 'B'). diff --git a/apps/redis/restapi/mode/databasesstats.pm b/apps/redis/restapi/mode/databasesstats.pm index 810fc7ab4..c271338c3 100644 --- a/apps/redis/restapi/mode/databasesstats.pm +++ b/apps/redis/restapi/mode/databasesstats.pm @@ -441,7 +441,6 @@ sub new { $self->{version} = '1.0'; $options{options}->add_options(arguments => { - "interval:s" => { name => 'interval', default => '15min' }, "filter-database:s" => { name => 'filter_database' }, "units:s" => { name => 'units', default => '%' }, "free" => { name => 'free' }, @@ -474,7 +473,7 @@ sub change_macros { sub manage_selection { my ($self, %options) = @_; - my $result = $options{custom}->get(path => '/v1/bdbs/stats/last?interval='.$instance_mode->{option_results}->{interval}); + my $result = $options{custom}->get(path => '/v1/bdbs/stats/last?interval='.$options{custom}->get_interval()); my $result2 = $options{custom}->get(path => '/v1/bdbs'); foreach my $database (keys $result) { @@ -556,12 +555,6 @@ Check RedisLabs Enterprise Cluster databases statistics. Only display some counters (regexp can be used). Example: --filter-counters='rate|latency' -=item B<--interval> - -Time interval from which to retrieve statistics (Default: '15min'). -Can be : '1sec', '10sec', '5min', '15min', -'1hour', '12hour', '1week' - =item B<--warning-status> Set warning threshold for status. diff --git a/apps/redis/restapi/mode/nodesstats.pm b/apps/redis/restapi/mode/nodesstats.pm index 2a1c23a87..ebff496a7 100644 --- a/apps/redis/restapi/mode/nodesstats.pm +++ b/apps/redis/restapi/mode/nodesstats.pm @@ -299,12 +299,11 @@ sub new { $self->{version} = '1.0'; $options{options}->add_options(arguments => { - "interval:s" => { name => 'interval', default => '15min' }, "filter-node:s" => { name => 'filter_node' }, "units:s" => { name => 'units', default => '%' }, "free" => { name => 'free' }, "warning-status:s" => { name => 'warning_status', default => '' }, - "critical-status:s" => { name => 'critical_status', default => '%{status} !~ /down/i' }, + "critical-status:s" => { name => 'critical_status', default => '%{status} =~ /down/i' }, }); return $self; @@ -331,7 +330,7 @@ sub change_macros { sub manage_selection { my ($self, %options) = @_; - my $result = $options{custom}->get(path => '/v1/nodes/stats/last?interval='.$instance_mode->{option_results}->{interval}); + my $result = $options{custom}->get(path => '/v1/nodes/stats/last?interval='.$options{custom}->get_interval()); my $result2 = $options{custom}->get(path => '/v1/nodes'); foreach my $node (keys $result) { @@ -399,12 +398,6 @@ Check RedisLabs Enterprise Cluster nodes statistics. Only display some counters (regexp can be used). Example: --filter-counters='^cpu' -=item B<--interval> - -Time interval from which to retrieve statistics (Default: '15min'). -Can be : '1sec', '10sec', '5min', '15min', -'1hour', '12hour', '1week' - =item B<--units> Units of thresholds (Default: '%') ('%', 'B'). @@ -423,7 +416,7 @@ Can used special variables like: %{status}, %{shard_list}, =item B<--critical-status> -Set critical threshold for status (Default: '%{status} !~ /down/i'). +Set critical threshold for status (Default: '%{status} =~ /down/i'). Can used special variables like: %{status}, %{shard_list}, %{int_addr}, %{ext_addr}. 'status' can be: 'active', 'going_offline', 'offline', diff --git a/apps/redis/restapi/mode/shardsstats.pm b/apps/redis/restapi/mode/shardsstats.pm index 2480bd10c..cff2cb218 100644 --- a/apps/redis/restapi/mode/shardsstats.pm +++ b/apps/redis/restapi/mode/shardsstats.pm @@ -324,7 +324,6 @@ sub new { $self->{version} = '1.0'; $options{options}->add_options(arguments => { - "interval:s" => { name => 'interval', default => '15min' }, "filter-shard:s" => { name => 'filter_shard' }, "warning-status:s" => { name => 'warning_status', default => '' }, "critical-status:s" => { name => 'critical_status', default => '%{status} =~ /inactive/i | %{backup} =~ /failed/i | @@ -355,7 +354,7 @@ sub change_macros { sub manage_selection { my ($self, %options) = @_; - my $result = $options{custom}->get(path => '/v1/shards/stats/last?interval='.$instance_mode->{option_results}->{interval}); + my $result = $options{custom}->get(path => '/v1/shards/stats/last?interval='.$options{custom}->get_interval()); my $result2 = $options{custom}->get(path => '/v1/shards'); foreach my $shard (keys $result) { @@ -419,12 +418,6 @@ Check RedisLabs Enterprise Cluster shards statistics. Only display some counters (regexp can be used). Example: --filter-counters='clients' -=item B<--interval> - -Time interval from which to retrieve statistics (Default: '15min'). -Can be : '1sec', '10sec', '5min', '15min', -'1hour', '12hour', '1week' - =item B<--warning-status> Set warning threshold for status. From b803a406e69ccb4ae4fc9ab03c6e4f9294274ada Mon Sep 17 00:00:00 2001 From: Colin GAGNAIRE Date: Fri, 29 Dec 2017 10:30:24 +0100 Subject: [PATCH 49/77] improve redis restapi add list modes --- apps/redis/restapi/mode/listdatabases.pm | 99 ++++++++++++++++++++++++ apps/redis/restapi/mode/listnodes.pm | 94 ++++++++++++++++++++++ apps/redis/restapi/mode/listshards.pm | 99 ++++++++++++++++++++++++ apps/redis/restapi/plugin.pm | 3 + 4 files changed, 295 insertions(+) create mode 100644 apps/redis/restapi/mode/listdatabases.pm create mode 100644 apps/redis/restapi/mode/listnodes.pm create mode 100644 apps/redis/restapi/mode/listshards.pm diff --git a/apps/redis/restapi/mode/listdatabases.pm b/apps/redis/restapi/mode/listdatabases.pm new file mode 100644 index 000000000..1b9bfd2a3 --- /dev/null +++ b/apps/redis/restapi/mode/listdatabases.pm @@ -0,0 +1,99 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::restapi::mode::listdatabases; + +use base qw(centreon::plugins::mode); + +use strict; +use warnings; + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + }); + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::init(%options); +} + +sub manage_selection { + my ($self, %options) = @_; + + $self->{databases} = $options{custom}->get(path => '/v1/bdbs'); +} + +sub run { + my ($self, %options) = @_; + + $self->manage_selection(%options); + foreach my $database_uid (sort keys %{$self->{databases}}) { + $self->{output}->output_add(long_msg => '[uid = ' . $database_uid . "] [name = '" . $self->{databases}->{$database_uid}->{name} . "']" . + " [type = '" . $self->{databases}->{$database_uid}->{type} . "']" . + " [status = '" . $self->{databases}->{$database_uid}->{status} . "']" + ); + } + + $self->{output}->output_add(severity => 'OK', + short_msg => 'List databases:'); + $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); + $self->{output}->exit(); +} + +sub disco_format { + my ($self, %options) = @_; + + $self->{output}->add_disco_format(elements => ['uid', 'name', 'type', 'status']); +} + +sub disco_show { + my ($self, %options) = @_; + + $self->manage_selection(%options); + foreach my $database_uid (sort keys %{$self->{databases}}) { + $self->{output}->add_disco_entry(name => $self->{databases}->{$database_uid}->{name}, + type => $self->{databases}->{$database_uid}->{type}, + status => $self->{databases}->{$database_uid}->{status}, + uid => $database_uid, + ); + } +} + +1; + +__END__ + +=head1 MODE + +List databases. + +=over 8 + +=back + +=cut diff --git a/apps/redis/restapi/mode/listnodes.pm b/apps/redis/restapi/mode/listnodes.pm new file mode 100644 index 000000000..0600a44ec --- /dev/null +++ b/apps/redis/restapi/mode/listnodes.pm @@ -0,0 +1,94 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::restapi::mode::listnodes; + +use base qw(centreon::plugins::mode); + +use strict; +use warnings; + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + }); + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::init(%options); +} + +sub manage_selection { + my ($self, %options) = @_; + + $self->{nodes} = $options{custom}->get(path => '/v1/nodes'); +} + +sub run { + my ($self, %options) = @_; + + $self->manage_selection(%options); + foreach my $node_uid (sort keys %{$self->{nodes}}) { + $self->{output}->output_add(long_msg => '[uid = ' . $node_uid . "] [status = '" . $self->{nodes}->{$node_uid}->{status} . "']"); + } + + $self->{output}->output_add(severity => 'OK', + short_msg => 'List nodes:'); + $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); + $self->{output}->exit(); +} + +sub disco_format { + my ($self, %options) = @_; + + $self->{output}->add_disco_format(elements => ['uid', 'status']); +} + +sub disco_show { + my ($self, %options) = @_; + + $self->manage_selection(%options); + foreach my $node_uid (sort keys %{$self->{nodes}}) { + $self->{output}->add_disco_entry(status => $self->{nodes}->{$node_uid}->{status}, + uid => $node_uid, + ); + } +} + +1; + +__END__ + +=head1 MODE + +List nodes. + +=over 8 + +=back + +=cut diff --git a/apps/redis/restapi/mode/listshards.pm b/apps/redis/restapi/mode/listshards.pm new file mode 100644 index 000000000..ee6813734 --- /dev/null +++ b/apps/redis/restapi/mode/listshards.pm @@ -0,0 +1,99 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::restapi::mode::listshards; + +use base qw(centreon::plugins::mode); + +use strict; +use warnings; + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + }); + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::init(%options); +} + +sub manage_selection { + my ($self, %options) = @_; + + $self->{shards} = $options{custom}->get(path => '/v1/shards'); +} + +sub run { + my ($self, %options) = @_; + + $self->manage_selection(%options); + foreach my $shard_uid (sort keys %{$self->{shards}}) { + $self->{output}->output_add(long_msg => '[uid = ' . $shard_uid . "] [role = '" . $self->{shards}->{$shard_uid}->{role} . "']" . + " [detailed_status = '" . $self->{shards}->{$shard_uid}->{detailed_status} . "']" . + " [status = '" . $self->{shards}->{$shard_uid}->{status} . "']" + ); + } + + $self->{output}->output_add(severity => 'OK', + short_msg => 'List shards:'); + $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); + $self->{output}->exit(); +} + +sub disco_format { + my ($self, %options) = @_; + + $self->{output}->add_disco_format(elements => ['uid', 'role', 'detailed_status', 'status']); +} + +sub disco_show { + my ($self, %options) = @_; + + $self->manage_selection(%options); + foreach my $shard_uid (sort keys %{$self->{shards}}) { + $self->{output}->add_disco_entry(role => $self->{shards}->{$shard_uid}->{role}, + detailed_status => $self->{shards}->{$shard_uid}->{detailed_status}, + status => $self->{shards}->{$shard_uid}->{status}, + uid => $shard_uid, + ); + } +} + +1; + +__END__ + +=head1 MODE + +List shards. + +=over 8 + +=back + +=cut diff --git a/apps/redis/restapi/plugin.pm b/apps/redis/restapi/plugin.pm index e2f85f7ea..382f7587b 100644 --- a/apps/redis/restapi/plugin.pm +++ b/apps/redis/restapi/plugin.pm @@ -33,6 +33,9 @@ sub new { %{$self->{modes}} = ( 'databasesstats' => 'apps::redis::restapi::mode::databasesstats', 'clusterstats' => 'apps::redis::restapi::mode::clusterstats', + 'listdatabases' => 'apps::redis::restapi::mode::listdatabases', + 'listnodes' => 'apps::redis::restapi::mode::listnodes', + 'listshards' => 'apps::redis::restapi::mode::listshards', 'nodesstats' => 'apps::redis::restapi::mode::nodesstats', 'shardsstats' => 'apps::redis::restapi::mode::shardsstats', ); From d9b4fdaba835e9c85ba15d74568031f710b7de5c Mon Sep 17 00:00:00 2001 From: Colin GAGNAIRE Date: Fri, 29 Dec 2017 14:09:54 +0100 Subject: [PATCH 50/77] improve apps vmware nethost --- apps/vmware/connector/mode/nethost.pm | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/apps/vmware/connector/mode/nethost.pm b/apps/vmware/connector/mode/nethost.pm index 43223b75d..20871363c 100644 --- a/apps/vmware/connector/mode/nethost.pm +++ b/apps/vmware/connector/mode/nethost.pm @@ -44,6 +44,10 @@ sub new { "critical-in:s" => { name => 'critical_in', }, "warning-out:s" => { name => 'warning_out', }, "critical-out:s" => { name => 'critical_out', }, + "warning-dropped-in:s" => { name => 'warning_dropped_in', }, + "critical-dropped-in:s" => { name => 'critical_dropped_in', }, + "warning-dropped-out:s" => { name => 'warning_dropped_out', }, + "critical-dropped-out:s" => { name => 'critical_dropped_out', }, "link-down-status:s" => { name => 'link_down_status', default => 'critical' }, "no-proxyswitch" => { name => 'no_proxyswitch' }, }); @@ -54,7 +58,8 @@ sub check_options { my ($self, %options) = @_; $self->SUPER::init(%options); - foreach my $label (('warning_in', 'critical_in', 'warning_out', 'critical_out')) { + foreach my $label (('warning_in', 'critical_in', 'warning_out', 'critical_out', + 'warning_dropped_in', 'critical_dropped_in', 'warning_dropped_out', 'critical_dropped_out')) { if (($self->{perfdata}->threshold_validate(label => $label, value => $self->{option_results}->{$label})) == 0) { my ($label_opt) = $label; $label_opt =~ tr/_/-/; @@ -141,6 +146,22 @@ Threshold warning traffic out (percent). Threshold critical traffic out (percent). +=item B<--warning-dropped-in> + +Threshold warning packets in dropped (percent). + +=item B<--critical-dropped-in> + +Threshold critical packets in dropped (percent). + +=item B<--warning-dropped-out> + +Threshold warning packets out dropped (percent). + +=item B<--critical-dropped-out> + +Threshold critical packets out dropped (percent). + =item B<--no-proxyswitch> Use the following option if you are checking an ESX 3.x version (it's mandatory). From ac63bf01729dad954710a8ddca4d790b570bf9e3 Mon Sep 17 00:00:00 2001 From: Colin GAGNAIRE Date: Fri, 29 Dec 2017 14:13:11 +0100 Subject: [PATCH 51/77] rename modes --- apps/redis/restapi/plugin.pm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/apps/redis/restapi/plugin.pm b/apps/redis/restapi/plugin.pm index 382f7587b..2d94ada50 100644 --- a/apps/redis/restapi/plugin.pm +++ b/apps/redis/restapi/plugin.pm @@ -31,13 +31,13 @@ sub new { $self->{version} = '0.1'; %{$self->{modes}} = ( - 'databasesstats' => 'apps::redis::restapi::mode::databasesstats', - 'clusterstats' => 'apps::redis::restapi::mode::clusterstats', - 'listdatabases' => 'apps::redis::restapi::mode::listdatabases', - 'listnodes' => 'apps::redis::restapi::mode::listnodes', - 'listshards' => 'apps::redis::restapi::mode::listshards', - 'nodesstats' => 'apps::redis::restapi::mode::nodesstats', - 'shardsstats' => 'apps::redis::restapi::mode::shardsstats', + 'databases-stats' => 'apps::redis::restapi::mode::databasesstats', + 'cluster-stats' => 'apps::redis::restapi::mode::clusterstats', + 'list-databases' => 'apps::redis::restapi::mode::listdatabases', + 'list-nodes' => 'apps::redis::restapi::mode::listnodes', + 'list-shards' => 'apps::redis::restapi::mode::listshards', + 'nodes-stats' => 'apps::redis::restapi::mode::nodesstats', + 'shards-stats' => 'apps::redis::restapi::mode::shardsstats', ); $self->{custom_modes}{api} = 'apps::redis::restapi::custom::api'; return $self; From 474b26e82cd5d3c7acaa5b134cd458a1e7304e9f Mon Sep 17 00:00:00 2001 From: Colin GAGNAIRE Date: Sat, 30 Dec 2017 00:36:13 +0100 Subject: [PATCH 52/77] improve processcount --- snmp_standard/mode/processcount.pm | 375 ++++++++++++++++------------- 1 file changed, 206 insertions(+), 169 deletions(-) diff --git a/snmp_standard/mode/processcount.pm b/snmp_standard/mode/processcount.pm index 98130bd6a..75a74d0ac 100644 --- a/snmp_standard/mode/processcount.pm +++ b/snmp_standard/mode/processcount.pm @@ -42,24 +42,26 @@ sub new { $self->{version} = '1.0'; $options{options}->add_options(arguments => { - "warning:s" => { name => 'warning', }, - "critical:s" => { name => 'critical', }, - "warning-cpu-total:s" => { name => 'warning_cpu_total', }, - "critical-cpu-total:s" => { name => 'critical_cpu_total', }, - "warning-mem-total:s" => { name => 'warning_mem_total', }, - "critical-mem-total:s" => { name => 'critical_mem_total', }, - "warning-mem-avg:s" => { name => 'warning_mem_avg', }, - "critical-mem-avg:s" => { name => 'critical_mem_avg', }, - "process-name:s" => { name => 'process_name', }, - "regexp-name" => { name => 'regexp_name', }, - "process-path:s" => { name => 'process_path', }, - "regexp-path" => { name => 'regexp_path', }, - "process-args:s" => { name => 'process_args', }, - "regexp-args" => { name => 'regexp_args', }, "process-status:s" => { name => 'process_status', default => 'running|runnable' }, - "memory" => { name => 'memory', }, - "cpu" => { name => 'cpu', }, - "top" => { name => 'top', }, + "process-name:s" => { name => 'process_name' }, + "regexp-name" => { name => 'regexp_name' }, + "process-path:s" => { name => 'process_path' }, + "regexp-path" => { name => 'regexp_path' }, + "process-args:s" => { name => 'process_args' }, + "regexp-args" => { name => 'regexp_args' }, + "warning:s" => { name => 'warning' }, + "critical:s" => { name => 'critical' }, + "memory" => { name => 'memory' }, + "warning-mem-each:s" => { name => 'warning_mem_each' }, + "critical-mem-each:s" => { name => 'critical_mem_each' }, + "warning-mem-total:s" => { name => 'warning_mem_total' }, + "critical-mem-total:s" => { name => 'critical_mem_total' }, + "warning-mem-avg:s" => { name => 'warning_mem_avg' }, + "critical-mem-avg:s" => { name => 'critical_mem_avg' }, + "cpu" => { name => 'cpu' }, + "warning-cpu-total:s" => { name => 'warning_cpu_total' }, + "critical-cpu-total:s" => { name => 'critical_cpu_total' }, + "top" => { name => 'top' }, "top-num:s" => { name => 'top_num', default => 5 }, "top-size:s" => { name => 'top_size', default => 52428800 }, # 50MB }); @@ -80,6 +82,14 @@ sub check_options { $self->{output}->add_option_msg(short_msg => "Wrong critical threshold '" . $self->{option_results}->{critical} . "'."); $self->{output}->option_exit(); } + if (($self->{perfdata}->threshold_validate(label => 'warning-mem-each', value => $self->{option_results}->{warning_mem_each})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong warning-mem-each threshold '" . $self->{warning_mem_each} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'critical-mem-each', value => $self->{option_results}->{critical_mem_each})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong critical-mem-each threshold '" . $self->{critical_mem_each} . "'."); + $self->{output}->option_exit(); + } if (($self->{perfdata}->threshold_validate(label => 'warning-mem-total', value => $self->{option_results}->{warning_mem_total})) == 0) { $self->{output}->add_option_msg(short_msg => "Wrong warning-mem-total threshold '" . $self->{warning_mem_total} . "'."); $self->{output}->option_exit(); @@ -117,12 +127,15 @@ sub check_options { } } -my $oids = { - name => '.1.3.6.1.2.1.25.4.2.1.2', # hrSWRunName - path => '.1.3.6.1.2.1.25.4.2.1.4', # hrSWRunPath - args => '.1.3.6.1.2.1.25.4.2.1.5', # hrSWRunParameters (Warning: it's truncated. (128 characters)) - status => '.1.3.6.1.2.1.25.4.2.1.7', # hrSWRunStatus +my $filters = { + status => { oid => '.1.3.6.1.2.1.25.4.2.1.7', default => 1, value => '', regexp => 1 }, # hrSWRunStatus + name => { oid => '.1.3.6.1.2.1.25.4.2.1.2', default => 1, value => '' }, # hrSWRunName (Warning: it's truncated. (15 characters)) + path => { oid => '.1.3.6.1.2.1.25.4.2.1.4', default => 0, value => '' }, # hrSWRunPath + args => { oid => '.1.3.6.1.2.1.25.4.2.1.5', default => 0, value => '' }, # hrSWRunParameters (Warning: it's truncated. (128 characters)) }; + +my $oid_hrSWRunName = '.1.3.6.1.2.1.25.4.2.1.2'; +my $oid_hrSWRunStatus = '.1.3.6.1.2.1.25.4.2.1.7'; my $oid_hrSWRunPerfMem = '.1.3.6.1.2.1.25.5.1.1.2'; my $oid_hrSWRunPerfCPU = '.1.3.6.1.2.1.25.5.1.1.1'; @@ -130,24 +143,22 @@ sub check_top { my ($self, %options) = @_; my %data = (); - foreach (keys %{$self->{results}->{$oids->{name}}}) { - if (/^$oids->{name}\.(.*)/ && - defined($self->{results}->{$oid_hrSWRunPerfMem}->{$oid_hrSWRunPerfMem . '.' . $1})) { - $data{$self->{results}->{$oids->{name}}->{$_}} = 0 if (!defined($data{$self->{results}->{$oids->{name}}->{$_}})); - $data{$self->{results}->{$oids->{name}}->{$_}} += $self->{results}->{$oid_hrSWRunPerfMem}->{$oid_hrSWRunPerfMem . '.' . $1} * 1024; + foreach my $key (keys %{$self->{snmp_response}->{$oid_hrSWRunName}}) { + if ($key =~ /\.([0-9]+)$/ && defined($self->{snmp_response}->{$oid_hrSWRunPerfMem}->{$oid_hrSWRunPerfMem . '.' . $1})) { + $data{$self->{snmp_response}->{$oid_hrSWRunName}->{$key}} = 0 if (!defined($data{$self->{snmp_response}->{$oid_hrSWRunName}->{$key}})); + $data{$self->{snmp_response}->{$oid_hrSWRunName}->{$key}} += $self->{snmp_response}->{$oid_hrSWRunPerfMem}->{$oid_hrSWRunPerfMem . '.' . $1} * 1024; } } - + my $i = 1; foreach my $name (sort { $data{$b} <=> $data{$a} } keys %data) { last if ($i > $self->{option_results}->{top_num}); last if ($data{$name} < $self->{option_results}->{top_size}); - my ($mem_value, $amem_unit) = $self->{perfdata}->change_bytes(value => $data{$name}); - $self->{output}->output_add(long_msg => sprintf("Top %d '%s' memory usage: %s %s", $i, $name, $mem_value, $amem_unit)); + my ($mem_value, $mem_unit) = $self->{perfdata}->change_bytes(value => $data{$name}); + $self->{output}->output_add(long_msg => sprintf("Top %d '%s' memory usage: %s %s", $i, $name, $mem_value, $mem_unit)); $self->{output}->perfdata_add(label => 'top_' . $name, unit => 'B', - value => $data{$name}, - min => 0); + value => $data{$name}, min => 0); $i++; } } @@ -156,94 +167,74 @@ sub run { my ($self, %options) = @_; $self->{snmp} = $options{snmp}; - my $oid2check_filter = 'status'; - # To have a better order - foreach (('name', 'path', 'args', 'status')) { - if (defined($self->{option_results}->{'process_' . $_}) && $self->{option_results}->{'process_' . $_} ne '') { - $oid2check_filter = $_; - last; + my $extra_oids = []; + foreach my $filter (keys %$filters) { + if (defined($self->{option_results}->{'process_' . $filter}) && $self->{option_results}->{'process_' . $filter} ne '') { + $filters->{$filter}->{value} = $self->{option_results}->{'process_' . $filter}; + + if ($filters->{$filter}->{default} == 0) { + push @{$extra_oids}, $filters->{$filter}->{oid}; + } + } + if (defined($self->{option_results}->{'regexp_' . $filter})) { + $filters->{$filter}->{regexp} = 1; } } - # Build other - my $mores_filters = {}; - my $more_oids = []; if (defined($self->{option_results}->{memory})) { - push @{$more_oids}, $oid_hrSWRunPerfMem; + push @{$extra_oids}, $oid_hrSWRunPerfMem; } if (defined($self->{option_results}->{cpu})) { - push @{$more_oids}, $oid_hrSWRunPerfCPU; - } - foreach (keys %$oids) { - if ($_ ne $oid2check_filter && defined($self->{option_results}->{'process_' . $_}) && $self->{option_results}->{'process_' . $_} ne '') { - push @{$more_oids}, $oids->{$_}; - $mores_filters->{$_} = 1; - } + push @{$extra_oids}, $oid_hrSWRunPerfCPU; } - my $oids_multiple_table = [ { oid => $oids->{$oid2check_filter} } ]; + my $oids_multiple_table = [ { oid => $oid_hrSWRunName }, { oid => $oid_hrSWRunStatus } ]; if (defined($self->{option_results}->{top})) { - push @{$oids_multiple_table}, { oid => $oids->{name} }; push @{$oids_multiple_table}, { oid => $oid_hrSWRunPerfMem }; } - $self->{results} = $self->{snmp}->get_multiple_table(oids => $oids_multiple_table); - my $result = $self->{results}->{$oids->{$oid2check_filter}}; - my $instances_keep = {}; - foreach my $key ($self->{snmp}->oid_lex_sort(keys %{$result})) { - my $option_val = $self->{option_results}->{'process_' . $oid2check_filter}; - - if ($oid2check_filter eq 'status') { - if ($map_process_status{$result->{$key}} =~ /$option_val/) { - $key =~ /\.([0-9]+)$/; - $instances_keep->{$1} = 1; + + # First lookup on name and status + $self->{snmp_response} = $self->{snmp}->get_multiple_table(oids => $oids_multiple_table); + foreach my $key ($self->{snmp}->oid_lex_sort(keys %{$self->{snmp_response}->{$oid_hrSWRunName}})) { + $key =~ /\.([0-9]+)$/; + my $pid = $1; + $self->{results}->{$pid}->{name} = $self->{snmp_response}->{$oid_hrSWRunName}->{$oid_hrSWRunName.'.'.$pid}; + $self->{results}->{$pid}->{status} = $map_process_status{$self->{snmp_response}->{$oid_hrSWRunStatus}->{$oid_hrSWRunStatus.'.'.$pid}}; + + foreach my $filter (keys %$filters) { + next if !defined($self->{results}->{$pid}) || $filters->{$filter}->{value} eq '' || $filters->{$filter}->{default} == 0; + + if ((defined($filters->{$filter}->{regexp}) && $self->{results}->{$pid}->{$filter} !~ /$filters->{$filter}->{value}/) + || (!defined($filters->{$filter}->{regexp}) && $self->{results}->{$pid}->{$filter} ne $filters->{$filter}->{value})) { + delete $self->{results}->{$pid}; + } + } + } + + # Second lookup on extra oids + if (scalar(keys %{$self->{results}}) > 0) { + if (scalar(@$extra_oids) > 0) { + $self->{snmp}->load(oids => $extra_oids, instances => [ keys %{$self->{results}} ]); + $self->{snmp_response_extra} = $self->{snmp}->get_leef(); + + foreach my $pid (keys %{$self->{results}}) { + foreach my $filter (keys %$filters) { + next if !defined($self->{results}->{$pid}) || $filters->{$filter}->{value} eq '' || $filters->{$filter}->{default} == 1; + + if ((defined($filters->{$filter}->{regexp}) && $self->{snmp_response_extra}->{$filters->{$filter}->{oid}.'.'.$pid} !~ /$filters->{$filter}->{value}/) + || (!defined($filters->{$filter}->{regexp}) && $self->{snmp_response_extra}->{$filters->{$filter}->{oid}.'.'.$pid} ne $filters->{$filter}->{value})) { + delete $self->{results}->{$pid}; + } else { + $self->{results}->{$pid}->{$filter} = $self->{snmp_response_extra}->{$filters->{$filter}->{oid}.'.'.$pid}; + } + } } - } elsif ((defined($self->{option_results}->{'regexp_' . $oid2check_filter}) && $result->{$key} =~ /$option_val/) - || (!defined($self->{option_results}->{'regexp_' . $oid2check_filter}) && $result->{$key} eq $option_val)) { - $key =~ /\.([0-9]+)$/; - $instances_keep->{$1} = 1; } } - my $result2; - my $datas = {}; - $datas->{last_timestamp} = time(); - if (scalar(keys %$instances_keep) > 0) { - if (scalar(@$more_oids) > 0) { - $self->{snmp}->load(oids => $more_oids, instances => [ keys %$instances_keep ]); - $result2 = $self->{snmp}->get_leef(); - } - - foreach my $key (keys %$instances_keep) { - my $value = ($oid2check_filter eq 'status') ? $map_process_status{$result->{$oids->{$oid2check_filter} . '.' . $key}} : $result->{$oids->{$oid2check_filter} . '.' . $key}; - my $long_value = '[ ' . $oid2check_filter . ' => ' . $value . ' ]'; - my $deleted = 0; - foreach (keys %$mores_filters) { - my $opt_val = $self->{option_results}->{'process_' . $_}; - $value = ($_ eq 'status') ? $map_process_status{$result2->{$oids->{$_} . '.' . $key}} : $result2->{$oids->{$_} . '.' . $key}; - - if ($_ eq 'status') { - if ($value !~ /$opt_val/) { - delete $instances_keep->{$key}; - $deleted = 1; - last; - } - } elsif ((defined($self->{option_results}->{'regexp_' . $_}) && $value !~ /$opt_val/) - || (!defined($self->{option_results}->{'regexp_' . $_}) && $value ne $opt_val)) { - delete $instances_keep->{$key}; - $deleted = 1; - last; - } - - $long_value .= ' [ ' . $_ . ' => ' . $value . ' ]'; - } - - if ($deleted == 0) { - $self->{output}->output_add(long_msg => 'Process: ' . $long_value); - } - } - } - - my $num_processes_match = scalar(keys(%$instances_keep)); - my $exit = $self->{perfdata}->threshold_check(value => $num_processes_match, threshold => [ { label => 'critical', 'exit_litteral' => 'critical' }, { label => 'warning', exit_litteral => 'warning' } ]); + my $num_processes_match = scalar(keys(%{$self->{results}})); + my $exit = $self->{perfdata}->threshold_check(value => $num_processes_match, + threshold => [ { label => 'critical', exit_litteral => 'critical' }, + { label => 'warning', exit_litteral => 'warning' } ]); $self->{output}->output_add(severity => $exit, short_msg => "Number of current processes running: $num_processes_match"); $self->{output}->perfdata_add(label => 'nbproc', @@ -251,14 +242,27 @@ sub run { warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'), critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'), min => 0); + # Check memory if (defined($self->{option_results}->{memory}) && $num_processes_match > 0) { my $total_memory = 0; - foreach my $key (keys %$instances_keep) { - $total_memory += ($result2->{$oid_hrSWRunPerfMem . "." . $key} * 1024); + foreach my $pid (keys %{$self->{results}}) { + $total_memory += ($self->{snmp_response_extra}->{$oid_hrSWRunPerfMem . "." . $pid} * 1024); + my ($memory_value, $memory_unit) = $self->{perfdata}->change_bytes(value => $self->{snmp_response_extra}->{$oid_hrSWRunPerfMem.'.'.$pid} * 1024); + $self->{results}->{$pid}->{memory} = $memory_value . " " . $memory_unit; + + $exit = $self->{perfdata}->threshold_check(value => $self->{snmp_response_extra}->{$oid_hrSWRunPerfMem.'.'.$pid} * 1024, + threshold => [ { label => 'critical-mem-each', exit_litteral => 'critical' }, + { label => 'warning-mem-each', exit_litteral => 'warning' } ]); + if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) { + $self->{output}->output_add(severity => $exit, + short_msg => sprintf("Process '%s' [pid: %s] memory usage: %.2f %s", $self->{results}->{$pid}->{name}, $pid, $memory_value, $memory_unit)); + } } - $exit = $self->{perfdata}->threshold_check(value => $total_memory, threshold => [ { label => 'critical-mem-total', 'exit_litteral' => 'critical' }, { label => 'warning-mem-total', exit_litteral => 'warning' } ]); + my $exit = $self->{perfdata}->threshold_check(value => $total_memory, + threshold => [ { label => 'critical-mem-total', exit_litteral => 'critical' }, + { label => 'warning-mem-total', exit_litteral => 'warning' } ]); my ($total_mem_value, $total_mem_unit) = $self->{perfdata}->change_bytes(value => $total_memory); $self->{output}->output_add(severity => $exit, short_msg => sprintf("Total memory usage: %s", $total_mem_value . " " . $total_mem_unit)); @@ -268,7 +272,9 @@ sub run { critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical_mem_total'), min => 0); - $exit = $self->{perfdata}->threshold_check(value => $total_memory / $num_processes_match, threshold => [ { label => 'critical-mem-avg', 'exit_litteral' => 'critical' }, { label => 'warning-mem-avg', exit_litteral => 'warning' } ]); + $exit = $self->{perfdata}->threshold_check(value => $total_memory / $num_processes_match, + threshold => [ { label => 'critical-mem-avg', exit_litteral => 'critical' }, + { label => 'warning-mem-avg', exit_litteral => 'warning' } ]); my ($avg_mem_value, $avg_mem_unit) = $self->{perfdata}->change_bytes(value => $total_memory / $num_processes_match); $self->{output}->output_add(severity => $exit, short_msg => sprintf("Average memory usage: %.2f %s", $avg_mem_value, $avg_mem_unit)); @@ -278,27 +284,28 @@ sub run { critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical_avg_total'), min => 0); } - + # Check cpu if (defined($self->{option_results}->{cpu}) && $num_processes_match > 0) { - $self->{hostname} = $self->{snmp}->get_hostname(); - $self->{snmp_port} = $self->{snmp}->get_port(); + my $datas = {}; + $datas->{last_timestamp} = time(); - $self->{statefile_cache}->read(statefile => "snmpstandard_" . $self->{hostname} . '_' . $self->{snmp_port} . '_' . $self->{mode} . '_' . md5_hex($self->{filter4md5})); + $self->{statefile_cache}->read(statefile => "snmpstandard_" . $self->{snmp}->get_hostname() . '_' . + $self->{snmp}->get_port() . '_' . $self->{mode} . '_' . md5_hex($self->{filter4md5})); my $old_timestamp = $self->{statefile_cache}->get(name => 'last_timestamp'); my $total_cpu = 0; my $checked = 0; - foreach my $key (keys %$instances_keep) { - $datas->{'cpu_' . $key} = $result2->{$oid_hrSWRunPerfCPU . "." . $key}; - my $old_cpu = $self->{statefile_cache}->get(name => 'cpu_' . $key); + foreach my $pid (keys %{$self->{results}}) { + $datas->{'cpu_' . $pid} = $self->{snmp_response_extra}->{$oid_hrSWRunPerfCPU . "." . $pid}; + my $old_cpu = $self->{statefile_cache}->get(name => 'cpu_' . $pid); # No value added if (!defined($old_cpu) || !defined($old_timestamp)) { - $self->{output}->output_add(long_msg => 'Buffer creation for process pid ' . $key . '...'); + $self->{results}->{$pid}->{cpu} = 'Buffer creation...'; next; } # Go back to zero - if ($old_cpu > $datas->{'cpu_' . $key}) { + if ($old_cpu > $datas->{'cpu_' . $pid}) { $old_cpu = 0; } my $time_delta = ($datas->{last_timestamp} - $old_timestamp); @@ -307,14 +314,16 @@ sub run { $time_delta = 1; } - $total_cpu += (($datas->{'cpu_' . $key} - $old_cpu) / $time_delta); + $total_cpu += (($datas->{'cpu_' . $pid} - $old_cpu) / $time_delta); + $self->{results}->{$pid}->{cpu} = sprintf("%.2f %%", ($datas->{'cpu_' . $pid} - $old_cpu) / $time_delta); $checked = 1; } if ($checked == 1) { - $exit = $self->{perfdata}->threshold_check(value => $total_cpu, threshold => [ { label => 'critical-cpu-total', 'exit_litteral' => 'critical' }, { label => 'warning-cpu-total', exit_litteral => 'warning' } ]); + $exit = $self->{perfdata}->threshold_check(value => $total_cpu, threshold => [ { label => 'critical-cpu-total', exit_litteral => 'critical' }, + { label => 'warning-cpu-total', exit_litteral => 'warning' } ]); $self->{output}->output_add(severity => $exit, - short_msg => sprintf("CPU Total Usage: %.2f %%", $total_cpu)); + short_msg => sprintf("Total CPU usage: %.2f %%", $total_cpu)); $self->{output}->perfdata_add(label => 'cpu_total', unit => '%', value => sprintf("%.2f", $total_cpu), warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning_cpu_total'), @@ -326,6 +335,15 @@ sub run { } $self->check_top() if (defined($self->{option_results}->{top})); + + foreach my $pid (keys %{$self->{results}}) { + my $long_msg = sprintf("Process '%s' [pid: %s]", $self->{results}->{$pid}->{name}, $pid); + for my $key (keys $self->{results}->{$pid}) { + next if ($key eq 'name'); + $long_msg .= sprintf(" [%s: %s]", $key, $self->{results}->{$pid}->{$key}); + } + $self->{output}->output_add(long_msg => $long_msg); + } $self->{output}->display(); $self->{output}->exit(); @@ -342,90 +360,109 @@ Can also check memory usage and cpu usage. =over 8 +=item B<--process-status> + +Filter process status. Can be a regexp. +(Default: 'running|runnable'). + +=item B<--process-name> + +Filter process name. + +=item B<--regexp-name> + +Allows to use regexp to filter process +name (with option --process-name). + +=item B<--process-path> + +Filter process path. + +=item B<--regexp-path> + +Allows to use regexp to filter process +path (with option --process-path). + +=item B<--process-args> + +Filter process arguments. + +=item B<--regexp-args> + +Allows to use regexp to filter process +arguments (with option --process-args). + =item B<--warning> -Threshold warning (process count). +Threshold warning of matching processes count. =item B<--critical> -Threshold critical (process count). +Threshold critical of matching processes count. + +=item B<--memory> + +Check memory usage. + +=item B<--warning-mem-each> + +Threshold warning of memory +used by each matching processes (in Bytes). + +=item B<--critical-mem-each> + +Threshold critical of memory +used by each matching processes (in Bytes). =item B<--warning-mem-total> -Threshold warning in Bytes of total memory usage processes. +Threshold warning of total +memory used by matching processes (in Bytes). =item B<--critical-mem-total> -Threshold warning in Bytes of total memory usage processes. +Threshold critical of total +memory used by matching processes (in Bytes). =item B<--warning-mem-avg> -Threshold warning in Bytes of average memory usage processes. +Threshold warning of average +memory used by matching processes (in Bytes). =item B<--critical-mem-avg> -Threshold warning in Bytes of average memory usage processes. +Threshold critical of average +memory used by matching processes (in Bytes). + +=item B<--cpu> + +Check cpu usage. Should be used with fix processes. +If processes pid changes too much, the plugin can't compute values. =item B<--warning-cpu-total> -Threshold warning in percent of cpu usage for all processes (sum). +Threshold warning of cpu usage for all processes (in percent). CPU usage is in % of one cpu, so maximum can be 100% * number of CPU and a process can have a value greater than 100%. =item B<--critical-cpu-total> -Threshold critical in percent of cpu usage for all processes (sum). +Threshold critical of cpu usage for all processes (in percent). CPU usage is in % of one cpu, so maximum can be 100% * number of CPU and a process can have a value greater than 100%. -=item B<--process-name> - -Check process name. - -=item B<--regexp-name> - -Allows to use regexp to filter process name (with option --process-name). - -=item B<--process-path> - -Check process path. - -=item B<--regexp-path> - -Allows to use regexp to filter process path (with option --process-path). - -=item B<--process-args> - -Check process args. - -=item B<--regexp-args> - -Allows to use regexp to filter process args (with option --process-args). - -=item B<--process-status> - -Check process status (Default: 'running|runnable'). Can be a regexp. - -=item B<--memory> - -Check memory. - -=item B<--cpu> - -Check cpu usage. Should be used with fix processes. -if processes pid changes too much, the plugin can compute values. - =item B<--top> Enable top memory usage display. =item B<--top-num> -Number of processes in the top (Default: 5). +Number of processes in top memory display (Default: 5). =item B<--top-size> -Minimum memory usage to be in the top (Default: 52428800 -> 50 MB). +Minimum memory usage to be in top memory display +(Default: 52428800 -> 50 MB). =back From 25817d6f8e691d9bf1dede8d8655ebc8f7d9faae Mon Sep 17 00:00:00 2001 From: Colin GAGNAIRE Date: Wed, 3 Jan 2018 10:01:22 +0100 Subject: [PATCH 53/77] remove name lookup --- snmp_standard/mode/processcount.pm | 45 ++++++++++++++---------------- 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/snmp_standard/mode/processcount.pm b/snmp_standard/mode/processcount.pm index 75a74d0ac..adb4429de 100644 --- a/snmp_standard/mode/processcount.pm +++ b/snmp_standard/mode/processcount.pm @@ -129,36 +129,35 @@ sub check_options { my $filters = { status => { oid => '.1.3.6.1.2.1.25.4.2.1.7', default => 1, value => '', regexp => 1 }, # hrSWRunStatus - name => { oid => '.1.3.6.1.2.1.25.4.2.1.2', default => 1, value => '' }, # hrSWRunName (Warning: it's truncated. (15 characters)) + name => { oid => '.1.3.6.1.2.1.25.4.2.1.2', default => 0, value => '' }, # hrSWRunName (Warning: it's truncated. (15 characters)) path => { oid => '.1.3.6.1.2.1.25.4.2.1.4', default => 0, value => '' }, # hrSWRunPath args => { oid => '.1.3.6.1.2.1.25.4.2.1.5', default => 0, value => '' }, # hrSWRunParameters (Warning: it's truncated. (128 characters)) }; -my $oid_hrSWRunName = '.1.3.6.1.2.1.25.4.2.1.2'; my $oid_hrSWRunStatus = '.1.3.6.1.2.1.25.4.2.1.7'; my $oid_hrSWRunPerfMem = '.1.3.6.1.2.1.25.5.1.1.2'; my $oid_hrSWRunPerfCPU = '.1.3.6.1.2.1.25.5.1.1.1'; -sub check_top { +sub check_top { my ($self, %options) = @_; my %data = (); - foreach my $key (keys %{$self->{snmp_response}->{$oid_hrSWRunName}}) { + foreach my $key (keys %{$self->{snmp_response}->{$oid_hrSWRunStatus}}) { if ($key =~ /\.([0-9]+)$/ && defined($self->{snmp_response}->{$oid_hrSWRunPerfMem}->{$oid_hrSWRunPerfMem . '.' . $1})) { - $data{$self->{snmp_response}->{$oid_hrSWRunName}->{$key}} = 0 if (!defined($data{$self->{snmp_response}->{$oid_hrSWRunName}->{$key}})); - $data{$self->{snmp_response}->{$oid_hrSWRunName}->{$key}} += $self->{snmp_response}->{$oid_hrSWRunPerfMem}->{$oid_hrSWRunPerfMem . '.' . $1} * 1024; + $data{$1} = 0 if (!defined($self->{snmp_response}->{$oid_hrSWRunPerfMem}->{$oid_hrSWRunPerfMem . '.' . $1})); + $data{$1} = $self->{snmp_response}->{$oid_hrSWRunPerfMem}->{$oid_hrSWRunPerfMem . '.' . $1} * 1024; } } my $i = 1; - foreach my $name (sort { $data{$b} <=> $data{$a} } keys %data) { + foreach my $pid (sort { $data{$b} <=> $data{$a} } keys %data) { last if ($i > $self->{option_results}->{top_num}); - last if ($data{$name} < $self->{option_results}->{top_size}); + last if ($data{$pid} < $self->{option_results}->{top_size}); - my ($mem_value, $mem_unit) = $self->{perfdata}->change_bytes(value => $data{$name}); - $self->{output}->output_add(long_msg => sprintf("Top %d '%s' memory usage: %s %s", $i, $name, $mem_value, $mem_unit)); - $self->{output}->perfdata_add(label => 'top_' . $name, unit => 'B', - value => $data{$name}, min => 0); + my ($mem_value, $mem_unit) = $self->{perfdata}->change_bytes(value => $data{$pid}); + $self->{output}->output_add(long_msg => sprintf("Top %d '%s' memory usage: %s %s", $i, $pid, $mem_value, $mem_unit)); + $self->{output}->perfdata_add(label => 'top_' . $pid, unit => 'B', + value => $data{$pid}, min => 0); $i++; } } @@ -187,18 +186,17 @@ sub run { push @{$extra_oids}, $oid_hrSWRunPerfCPU; } - my $oids_multiple_table = [ { oid => $oid_hrSWRunName }, { oid => $oid_hrSWRunStatus } ]; + my $oids_multiple_table = [ { oid => $oid_hrSWRunStatus } ]; if (defined($self->{option_results}->{top})) { push @{$oids_multiple_table}, { oid => $oid_hrSWRunPerfMem }; } # First lookup on name and status $self->{snmp_response} = $self->{snmp}->get_multiple_table(oids => $oids_multiple_table); - foreach my $key ($self->{snmp}->oid_lex_sort(keys %{$self->{snmp_response}->{$oid_hrSWRunName}})) { + foreach my $key ($self->{snmp}->oid_lex_sort(keys %{$self->{snmp_response}->{$oid_hrSWRunStatus}})) { $key =~ /\.([0-9]+)$/; my $pid = $1; - $self->{results}->{$pid}->{name} = $self->{snmp_response}->{$oid_hrSWRunName}->{$oid_hrSWRunName.'.'.$pid}; - $self->{results}->{$pid}->{status} = $map_process_status{$self->{snmp_response}->{$oid_hrSWRunStatus}->{$oid_hrSWRunStatus.'.'.$pid}}; + $self->{results}->{$pid}->{status} = $map_process_status{$self->{snmp_response}->{$oid_hrSWRunStatus}->{$oid_hrSWRunStatus . '.' . $pid}}; foreach my $filter (keys %$filters) { next if !defined($self->{results}->{$pid}) || $filters->{$filter}->{value} eq '' || $filters->{$filter}->{default} == 0; @@ -220,11 +218,11 @@ sub run { foreach my $filter (keys %$filters) { next if !defined($self->{results}->{$pid}) || $filters->{$filter}->{value} eq '' || $filters->{$filter}->{default} == 1; - if ((defined($filters->{$filter}->{regexp}) && $self->{snmp_response_extra}->{$filters->{$filter}->{oid}.'.'.$pid} !~ /$filters->{$filter}->{value}/) - || (!defined($filters->{$filter}->{regexp}) && $self->{snmp_response_extra}->{$filters->{$filter}->{oid}.'.'.$pid} ne $filters->{$filter}->{value})) { + if ((defined($filters->{$filter}->{regexp}) && $self->{snmp_response_extra}->{$filters->{$filter}->{oid} . '.' . $pid} !~ /$filters->{$filter}->{value}/) + || (!defined($filters->{$filter}->{regexp}) && $self->{snmp_response_extra}->{$filters->{$filter}->{oid} . '.' . $pid} ne $filters->{$filter}->{value})) { delete $self->{results}->{$pid}; } else { - $self->{results}->{$pid}->{$filter} = $self->{snmp_response_extra}->{$filters->{$filter}->{oid}.'.'.$pid}; + $self->{results}->{$pid}->{$filter} = $self->{snmp_response_extra}->{$filters->{$filter}->{oid} . '.' . $pid}; } } } @@ -248,15 +246,15 @@ sub run { my $total_memory = 0; foreach my $pid (keys %{$self->{results}}) { $total_memory += ($self->{snmp_response_extra}->{$oid_hrSWRunPerfMem . "." . $pid} * 1024); - my ($memory_value, $memory_unit) = $self->{perfdata}->change_bytes(value => $self->{snmp_response_extra}->{$oid_hrSWRunPerfMem.'.'.$pid} * 1024); + my ($memory_value, $memory_unit) = $self->{perfdata}->change_bytes(value => $self->{snmp_response_extra}->{$oid_hrSWRunPerfMem . '.' . $pid} * 1024); $self->{results}->{$pid}->{memory} = $memory_value . " " . $memory_unit; - $exit = $self->{perfdata}->threshold_check(value => $self->{snmp_response_extra}->{$oid_hrSWRunPerfMem.'.'.$pid} * 1024, + $exit = $self->{perfdata}->threshold_check(value => $self->{snmp_response_extra}->{$oid_hrSWRunPerfMem . '.' . $pid} * 1024, threshold => [ { label => 'critical-mem-each', exit_litteral => 'critical' }, { label => 'warning-mem-each', exit_litteral => 'warning' } ]); if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) { $self->{output}->output_add(severity => $exit, - short_msg => sprintf("Process '%s' [pid: %s] memory usage: %.2f %s", $self->{results}->{$pid}->{name}, $pid, $memory_value, $memory_unit)); + short_msg => sprintf("Process '%s' memory usage: %.2f %s", $pid, $memory_value, $memory_unit)); } } @@ -337,9 +335,8 @@ sub run { $self->check_top() if (defined($self->{option_results}->{top})); foreach my $pid (keys %{$self->{results}}) { - my $long_msg = sprintf("Process '%s' [pid: %s]", $self->{results}->{$pid}->{name}, $pid); + my $long_msg = sprintf("Process '%s'", $pid); for my $key (keys $self->{results}->{$pid}) { - next if ($key eq 'name'); $long_msg .= sprintf(" [%s: %s]", $key, $self->{results}->{$pid}->{$key}); } $self->{output}->output_add(long_msg => $long_msg); From 123fb5ae4d08b82c6dc515c745db5a7a49ef7b98 Mon Sep 17 00:00:00 2001 From: Colin GAGNAIRE Date: Wed, 3 Jan 2018 10:31:30 +0100 Subject: [PATCH 54/77] rollback top + improvement --- snmp_standard/mode/processcount.pm | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/snmp_standard/mode/processcount.pm b/snmp_standard/mode/processcount.pm index adb4429de..07a6918ec 100644 --- a/snmp_standard/mode/processcount.pm +++ b/snmp_standard/mode/processcount.pm @@ -134,6 +134,7 @@ my $filters = { args => { oid => '.1.3.6.1.2.1.25.4.2.1.5', default => 0, value => '' }, # hrSWRunParameters (Warning: it's truncated. (128 characters)) }; +my $oid_hrSWRunName = '.1.3.6.1.2.1.25.4.2.1.2'; my $oid_hrSWRunStatus = '.1.3.6.1.2.1.25.4.2.1.7'; my $oid_hrSWRunPerfMem = '.1.3.6.1.2.1.25.5.1.1.2'; my $oid_hrSWRunPerfCPU = '.1.3.6.1.2.1.25.5.1.1.1'; @@ -141,23 +142,23 @@ my $oid_hrSWRunPerfCPU = '.1.3.6.1.2.1.25.5.1.1.1'; sub check_top { my ($self, %options) = @_; - my %data = (); - foreach my $key (keys %{$self->{snmp_response}->{$oid_hrSWRunStatus}}) { + my $data; + foreach my $key (keys %{$self->{snmp_response}->{$oid_hrSWRunName}}) { if ($key =~ /\.([0-9]+)$/ && defined($self->{snmp_response}->{$oid_hrSWRunPerfMem}->{$oid_hrSWRunPerfMem . '.' . $1})) { - $data{$1} = 0 if (!defined($self->{snmp_response}->{$oid_hrSWRunPerfMem}->{$oid_hrSWRunPerfMem . '.' . $1})); - $data{$1} = $self->{snmp_response}->{$oid_hrSWRunPerfMem}->{$oid_hrSWRunPerfMem . '.' . $1} * 1024; + $data->{$self->{snmp_response}->{$oid_hrSWRunName}->{$oid_hrSWRunName . '.' . $1}}->{memory} += $self->{snmp_response}->{$oid_hrSWRunPerfMem}->{$oid_hrSWRunPerfMem . '.' . $1} * 1024; + push @{$data->{$self->{snmp_response}->{$oid_hrSWRunName}->{$oid_hrSWRunName . '.' . $1}}->{pids}}, $1; } } my $i = 1; - foreach my $pid (sort { $data{$b} <=> $data{$a} } keys %data) { + foreach my $name (sort { $data->{$b}->{memory} <=> $data->{$a}->{memory} } keys %$data) { last if ($i > $self->{option_results}->{top_num}); - last if ($data{$pid} < $self->{option_results}->{top_size}); + last if ($data->{$name}->{memory} < $self->{option_results}->{top_size}); - my ($mem_value, $mem_unit) = $self->{perfdata}->change_bytes(value => $data{$pid}); - $self->{output}->output_add(long_msg => sprintf("Top %d '%s' memory usage: %s %s", $i, $pid, $mem_value, $mem_unit)); - $self->{output}->perfdata_add(label => 'top_' . $pid, unit => 'B', - value => $data{$pid}, min => 0); + my ($mem_value, $mem_unit) = $self->{perfdata}->change_bytes(value => $data->{$name}->{memory}); + $self->{output}->output_add(long_msg => sprintf("Top %d '%s' [pids: %s] memory usage: %s %s", $i, $name, join(", ", @{$data->{$name}->{pids}}), $mem_value, $mem_unit)); + $self->{output}->perfdata_add(label => 'top_' . $name, unit => 'B', + value => $data->{$name}->{memory}, min => 0); $i++; } } @@ -188,6 +189,7 @@ sub run { my $oids_multiple_table = [ { oid => $oid_hrSWRunStatus } ]; if (defined($self->{option_results}->{top})) { + push @{$oids_multiple_table}, { oid => $oid_hrSWRunName }; push @{$oids_multiple_table}, { oid => $oid_hrSWRunPerfMem }; } From d9f58759ac3036ca3dc3ec82c4aac5fcc7c9ba3c Mon Sep 17 00:00:00 2001 From: qgarnier Date: Wed, 3 Jan 2018 14:59:08 +0100 Subject: [PATCH 55/77] Fix #825 --- apps/nsclient/restapi/mode/query.pm | 5 +-- apps/protocols/http/mode/expectedcontent.pm | 5 +-- apps/protocols/http/mode/jsoncontent.pm | 5 +-- apps/protocols/http/mode/response.pm | 7 ++-- apps/protocols/http/mode/soapcontent.pm | 5 +-- centreon/plugins/http.pm | 39 +++++++++++++-------- 6 files changed, 41 insertions(+), 25 deletions(-) diff --git a/apps/nsclient/restapi/mode/query.pm b/apps/nsclient/restapi/mode/query.pm index 339d94b71..64f4c6541 100644 --- a/apps/nsclient/restapi/mode/query.pm +++ b/apps/nsclient/restapi/mode/query.pm @@ -47,6 +47,7 @@ sub new { "proxyurl:s" => { name => 'proxyurl' }, "proxypac:s" => { name => 'proxypac' }, "timeout:s" => { name => 'timeout' }, + "ssl-opt:s@" => { name => 'ssl_opt' }, "ssl:s" => { name => 'ssl' }, "command:s" => { name => 'command' }, "arg:s@" => { name => 'arg' }, @@ -218,9 +219,9 @@ Proxy pac file (can be an url or local file) Threshold for HTTP timeout (Default: 5) -=item B<--ssl> +=item B<--ssl-opt> -Specify SSL version (example : 'sslv3', 'tlsv1'...) +Set SSL Options (--ssl-opt="SSL_version => TLSv1" --ssl-opt="SSL_verify_mode => SSL_VERIFY_NONE"). =item B<--command> diff --git a/apps/protocols/http/mode/expectedcontent.pm b/apps/protocols/http/mode/expectedcontent.pm index a573f75df..610eb8449 100644 --- a/apps/protocols/http/mode/expectedcontent.pm +++ b/apps/protocols/http/mode/expectedcontent.pm @@ -51,6 +51,7 @@ sub new { "timeout:s" => { name => 'timeout' }, "no-follow" => { name => 'no_follow', }, "ssl:s" => { name => 'ssl', }, + "ssl-opt:s@" => { name => 'ssl_opt' }, "cert-file:s" => { name => 'cert_file' }, "key-file:s" => { name => 'key_file' }, "cacert-file:s" => { name => 'cacert_file' }, @@ -216,9 +217,9 @@ Threshold for HTTP timeout (Default: 5) Do not follow http redirect -=item B<--ssl> +=item B<--ssl-opt> -Specify SSL version (example : 'sslv3', 'tlsv1'...) +Set SSL Options (--ssl-opt="SSL_version => TLSv1" --ssl-opt="SSL_verify_mode => SSL_VERIFY_NONE"). =item B<--cert-file> diff --git a/apps/protocols/http/mode/jsoncontent.pm b/apps/protocols/http/mode/jsoncontent.pm index b9354c1e3..88f70d817 100644 --- a/apps/protocols/http/mode/jsoncontent.pm +++ b/apps/protocols/http/mode/jsoncontent.pm @@ -54,6 +54,7 @@ sub new { "header:s@" => { name => 'header' }, "get-param:s@" => { name => 'get_param' }, "timeout:s" => { name => 'timeout', default => 10 }, + "ssl-opt:s@" => { name => 'ssl_opt' }, "ssl:s" => { name => 'ssl', }, "cert-file:s" => { name => 'cert_file' }, "key-file:s" => { name => 'key_file' }, @@ -409,9 +410,9 @@ Specify password for basic authentification (Mandatory if --credentials is speci Threshold for HTTP timeout (Default: 10) -=item B<--ssl> +=item B<--ssl-opt> -Specify SSL version (example : 'sslv3', 'tlsv1'...) +Set SSL Options (--ssl-opt="SSL_version => TLSv1" --ssl-opt="SSL_verify_mode => SSL_VERIFY_NONE"). =item B<--cert-file> diff --git a/apps/protocols/http/mode/response.pm b/apps/protocols/http/mode/response.pm index 16f2ea2f3..fb0f8fe77 100644 --- a/apps/protocols/http/mode/response.pm +++ b/apps/protocols/http/mode/response.pm @@ -49,7 +49,8 @@ sub new { "proxypac:s" => { name => 'proxypac' }, "timeout:s" => { name => 'timeout' }, "no-follow" => { name => 'no_follow', }, - "ssl:s" => { name => 'ssl' }, + "ssl:s" => { name => 'ssl' }, + "ssl-opt:s@" => { name => 'ssl_opt' }, "cert-file:s" => { name => 'cert_file' }, "key-file:s" => { name => 'key_file' }, "cacert-file:s" => { name => 'cacert_file' }, @@ -202,9 +203,9 @@ Threshold for HTTP timeout (Default: 5) Do not follow http redirect -=item B<--ssl> +=item B<--ssl-opt> -Specify SSL version (example : 'sslv3', 'tlsv1'...) +Set SSL Options (--ssl-opt="SSL_version => TLSv1" --ssl-opt="SSL_verify_mode => SSL_VERIFY_NONE"). =item B<--cert-file> diff --git a/apps/protocols/http/mode/soapcontent.pm b/apps/protocols/http/mode/soapcontent.pm index 01ebd87f0..b10cfb79a 100644 --- a/apps/protocols/http/mode/soapcontent.pm +++ b/apps/protocols/http/mode/soapcontent.pm @@ -53,6 +53,7 @@ sub new { "proxypac:s" => { name => 'proxypac' }, "header:s@" => { name => 'header' }, "timeout:s" => { name => 'timeout', default => 10 }, + "ssl-opt:s@" => { name => 'ssl_opt' }, "ssl:s" => { name => 'ssl', }, "cert-file:s" => { name => 'cert_file' }, "key-file:s" => { name => 'key_file' }, @@ -436,9 +437,9 @@ Specify password for basic authentification (Mandatory if --credentials is speci Threshold for HTTP timeout (Default: 10) -=item B<--ssl> +=item B<--ssl-opt> -Specify SSL version (example : 'sslv3', 'tlsv1'...) +Set SSL Options (--ssl-opt="SSL_version => TLSv1" --ssl-opt="SSL_verify_mode => SSL_VERIFY_NONE"). =item B<--cert-file> diff --git a/centreon/plugins/http.pm b/centreon/plugins/http.pm index 29a702476..fa6b655c6 100644 --- a/centreon/plugins/http.pm +++ b/centreon/plugins/http.pm @@ -121,6 +121,29 @@ sub check_options { $options{request}->{$_} =~ s/%\{http_code\}/\$response->code/g; } } + + $self->{ssl_context} = ''; + if (!defined($options{request}->{ssl_opt})) { + $options{request}->{ssl_opt} = []; + } + if (defined($options{request}->{ssl}) && $options{request}->{ssl} ne '') { + push @{$options{request}->{ssl_opt}}, 'SSL_version => ' . $options{request}->{ssl}; + } + if (defined($options{request}->{cert_file}) && !defined($options{request}->{cert_pkcs12})) { + push @{$options{request}->{ssl_opt}}, 'SSL_use_cert => 1'; + push @{$options{request}->{ssl_opt}}, 'SSL_cert_file => "' . $options{request}->{cert_file} . '"'; + push @{$options{request}->{ssl_opt}}, 'SSL_key_file => "' . $options{request}->{key_file} . '"' + if (defined($options{request}->{key_file})); + push @{$options{request}->{ssl_opt}}, 'SSL_ca_file => "' . $options{request}->{cacert_file} . '"' + if (defined($options{request}->{cacert_file})); + } + my $append = ''; + foreach (@{$options{request}->{ssl_opt}}) { + if ($_ ne '') { + $self->{ssl_context} .= $append . $_; + $append = ', '; + } + } } sub get_port { @@ -256,20 +279,8 @@ sub request { $ENV{HTTPS_PKCS12_PASSWORD} = $request_options->{cert_pwd}; } - my $ssl_context; - if (defined($request_options->{ssl}) && $request_options->{ssl} ne '') { - $ssl_context = { SSL_version => $request_options->{ssl} }; - } - if (defined($request_options->{cert_file}) && !defined($request_options->{cert_pkcs12})) { - $ssl_context = {} if (!defined($ssl_context)); - $ssl_context->{SSL_use_cert} = 1; - $ssl_context->{SSL_cert_file} = $request_options->{cert_file}; - $ssl_context->{SSL_key_file} = $request_options->{key_file} if (defined($request_options->{key_file})); - $ssl_context->{SSL_ca_file} = $request_options->{cacert_file} if (defined($request_options->{cacert_file})); - } - - if (defined($ssl_context)) { - my $context = new IO::Socket::SSL::SSL_Context(%{$ssl_context}); + if (defined($self->{ssl_context}) && $self->{ssl_context} ne '') { + my $context = new IO::Socket::SSL::SSL_Context(eval $self->{ssl_context}); IO::Socket::SSL::set_default_context($context); } From 17e2da43f7b52b635409c1c79f8bf5b5c1ef1e51 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Thu, 4 Jan 2018 13:36:37 +0100 Subject: [PATCH 56/77] add some status for hyperv scvmm-integration-service --- .../local/mode/scvmmintegrationservice.pm | 86 +++++++++++++++++-- 1 file changed, 81 insertions(+), 5 deletions(-) diff --git a/apps/hyperv/2012/local/mode/scvmmintegrationservice.pm b/apps/hyperv/2012/local/mode/scvmmintegrationservice.pm index 3c5267d4f..2a3842597 100644 --- a/apps/hyperv/2012/local/mode/scvmmintegrationservice.pm +++ b/apps/hyperv/2012/local/mode/scvmmintegrationservice.pm @@ -38,11 +38,13 @@ sub custom_status_threshold { local $SIG{__WARN__} = sub { $message = $_[0]; }; local $SIG{__DIE__} = sub { $message = $_[0]; }; - if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && - eval "$instance_mode->{option_results}->{critical_status}") { + my $label = $self->{label}; + $label =~ s/-/_/g; + if (defined($instance_mode->{option_results}->{'critical_' . $label}) && $instance_mode->{option_results}->{'critical_' . $label} ne '' && + eval "$instance_mode->{option_results}->{'critical_' . $label}") { $status = 'critical'; - } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && - eval "$instance_mode->{option_results}->{warning_status}") { + } elsif (defined($instance_mode->{option_results}->{'warning_' . $label}) && $instance_mode->{option_results}->{'warning_' . $label} ne '' && + eval "$instance_mode->{option_results}->{'warning_' . $label}") { $status = 'warning'; } }; @@ -74,6 +76,23 @@ sub custom_status_calc { return 0; } +sub custom_integrationservice_output { + my ($self, %options) = @_; + my $msg = $self->{result_values}->{output_label} . ' : ' . $self->{result_values}->{service_status}; + + return $msg; +} + +sub custom_integrationservice_calc { + my ($self, %options) = @_; + + $self->{result_values}->{output_label} = $options{extra_options}->{output_label}; + $self->{result_values}->{service_status} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{name_status}}; + $self->{result_values}->{vm} = $options{new_datas}->{$self->{instance} . '_vm'}; + $self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_status'}; + return 0; +} + sub set_counters { my ($self, %options) = @_; @@ -91,6 +110,51 @@ sub set_counters { closure_custom_threshold_check => $self->can('custom_status_threshold'), } }, + { label => 'osshutdown-status', threshold => 0, set => { + key_values => [ { name => 'status' }, { name => 'vm' }, { name => 'operatingsystemshutdownenabled' } ], + closure_custom_calc => $self->can('custom_integrationservice_calc'), + closure_custom_calc_extra_options => { output_label => 'Operating System Shutdown', name_status => 'operatingsystemshutdownenabled' }, + closure_custom_output => $self->can('custom_integrationservice_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + { label => 'timesync-status', threshold => 0, set => { + key_values => [ { name => 'status' }, { name => 'vm' }, { name => 'timesynchronizationenabled' } ], + closure_custom_calc => $self->can('custom_integrationservice_calc'), + closure_custom_calc_extra_options => { output_label => 'Time Synchronization', name_status => 'timesynchronizationenabled' }, + closure_custom_output => $self->can('custom_integrationservice_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + { label => 'dataexchange-status', threshold => 0, set => { + key_values => [ { name => 'status' }, { name => 'vm' }, { name => 'dataexchangeenabled' } ], + closure_custom_calc => $self->can('custom_integrationservice_calc'), + closure_custom_calc_extra_options => { output_label => 'Data Exchange', name_status => 'dataexchangeenabled' }, + closure_custom_output => $self->can('custom_integrationservice_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + { label => 'heartbeat-status', threshold => 0, set => { + key_values => [ { name => 'status' }, { name => 'vm' }, { name => 'heartbeatenabled' } ], + closure_custom_calc => $self->can('custom_integrationservice_calc'), + closure_custom_calc_extra_options => { output_label => 'Heartbeat', name_status => 'heartbeatenabled' }, + closure_custom_output => $self->can('custom_integrationservice_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + { label => 'backup-status', threshold => 0, set => { + key_values => [ { name => 'status' }, { name => 'vm' }, { name => 'backupenabled' } ], + closure_custom_calc => $self->can('custom_integrationservice_calc'), + closure_custom_calc_extra_options => { output_label => 'Backup', name_status => 'backupenabled' }, + closure_custom_output => $self->can('custom_integrationservice_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, ]; } @@ -124,6 +188,16 @@ sub new { "filter-status:s" => { name => 'filter_status' }, "warning-status:s" => { name => 'warning_status', default => '' }, "critical-status:s" => { name => 'critical_status', default => '%{vmaddition} =~ /not detected/i' }, + "warning-osshutdown-status:s" => { name => 'warning_osshutdown_status', default => '' }, + "critical-osshutdown-status:s" => { name => 'critical_osshutdown_status', default => '' }, + "warning-timesync-status:s" => { name => 'warning_timesync_status', default => '' }, + "critical-timesync-status:s" => { name => 'critical_timesync_status', default => '' }, + "warning-dataexchange-status:s" => { name => 'warning_dataexchange_status', default => '' }, + "critical-dataexchange-status:s" => { name => 'critical_dataexchange_status', default => '' }, + "warning-heartbeat-status:s" => { name => 'warning_heartbeat_status', default => '' }, + "critical-heartbeat-status:s" => { name => 'critical_heartbeat_status', default => '' }, + "warning-backup-status:s" => { name => 'warning_backup_status', default => '' }, + "critical-backup-status:s" => { name => 'critical_backup_status', default => '' }, }); return $self; } @@ -148,7 +222,9 @@ sub check_options { sub change_macros { my ($self, %options) = @_; - foreach (('warning_status', 'critical_status')) { + foreach (('warning_status', 'critical_status', 'warning_osshutdown_status', 'critical_osshutdown_status', + 'warning_timesync_status', 'critical_timesync_status', 'warning_dataexchange_status', 'critical_dataexchange_status', + 'warning_heartbeat_status', 'critical_heartbeat_status', 'warning_backup_status', 'critical_backup_status')) { if (defined($self->{option_results}->{$_})) { $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; } From 747af00f96e5aaacb9016bcbce66e65eec517132 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Thu, 4 Jan 2018 16:52:32 +0100 Subject: [PATCH 57/77] Fix #847 --- .../hp/procurve/snmp/mode/components/fan.pm | 76 ++++++++++++++++++ .../hp/procurve/snmp/mode/components/psu.pm | 78 +++++++++++++++++++ .../{ => snmp}/mode/components/sensor.pm | 4 +- network/hp/procurve/{ => snmp}/mode/cpu.pm | 4 +- .../procurve/{ => snmp}/mode/environment.pm | 32 ++++++-- network/hp/procurve/{ => snmp}/mode/memory.pm | 4 +- network/hp/procurve/{ => snmp}/plugin.pm | 14 ++-- 7 files changed, 193 insertions(+), 19 deletions(-) create mode 100644 network/hp/procurve/snmp/mode/components/fan.pm create mode 100644 network/hp/procurve/snmp/mode/components/psu.pm rename network/hp/procurve/{ => snmp}/mode/components/sensor.pm (98%) rename network/hp/procurve/{ => snmp}/mode/cpu.pm (98%) rename network/hp/procurve/{ => snmp}/mode/environment.pm (74%) rename network/hp/procurve/{ => snmp}/mode/memory.pm (98%) rename network/hp/procurve/{ => snmp}/plugin.pm (69%) diff --git a/network/hp/procurve/snmp/mode/components/fan.pm b/network/hp/procurve/snmp/mode/components/fan.pm new file mode 100644 index 000000000..7d39bde58 --- /dev/null +++ b/network/hp/procurve/snmp/mode/components/fan.pm @@ -0,0 +1,76 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package network::hp::procurve::snmp::mode::components::fan; + +use strict; +use warnings; + +my %map_fan_status = ( + 0 => 'failed', + 1 => 'removed', + 2 => 'off', + 3 => 'underspeed', + 4 => 'overspeed', + 5 => 'ok', + 6 => 'maxstate', +); + +my $mapping = { + hpicfFanState => { oid => '.1.3.6.1.4.1.11.2.14.11.5.1.54.2.1.1.4', map => \%map_fan_status }, +}; + +sub load { + my ($self) = @_; + + push @{$self->{request}}, { oid => $mapping->{hpicfFanState}->{oid} }; +} + +sub check { + my ($self) = @_; + + + $self->{output}->output_add(long_msg => "Checking fans"); + $self->{components}->{fan} = {name => 'fans', total => 0, skip => 0}; + return if ($self->check_filter(section => 'fan')); + + foreach my $oid ($self->{snmp}->oid_lex_sort(keys %{$self->{results}->{$mapping->{hpicfFanState}->{oid}}})) { + next if ($oid !~ /^$mapping->{hpicfFanState}->{oid}\.(.*)$/); + my $instance = $1; + my $result = $self->{snmp}->map_instance(mapping => $mapping, results => $self->{results}->{$mapping->{hpicfFanState}->{oid}}, instance => $instance); + + next if ($self->check_filter(section => 'fan', instance => $instance)); + next if ($result->{hpicfFanState} =~ /removed/i && + $self->absent_problem(section => 'fan', instance => $instance)); + $self->{components}->{fan}->{total}++; + + $self->{output}->output_add(long_msg => sprintf("fan '%s' state is %s [instance: %s].", + $instance, $result->{hpicfFanState}, $instance + )); + my $exit = $self->get_severity(section => 'fan', value => $result->{hpicfFanState}); + if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) { + $self->{output}->output_add(severity => $exit, + short_msg => sprintf("fan '%s' state is %s", + $instance, $result->{hpicfFanState})); + } + } +} + +1; diff --git a/network/hp/procurve/snmp/mode/components/psu.pm b/network/hp/procurve/snmp/mode/components/psu.pm new file mode 100644 index 000000000..223d47a47 --- /dev/null +++ b/network/hp/procurve/snmp/mode/components/psu.pm @@ -0,0 +1,78 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package network::hp::procurve::snmp::mode::components::psu; + +use strict; +use warnings; + +my %map_psu_status = ( + 1 => 'psNotPresent', + 2 => 'psNotPlugged', + 3 => 'psPowered', + 4 => 'psFailed', + 5 => 'psPermFailure', + 6 => 'psMax', + 7 => 'psAuxFailure', + 8 => 'psNotPowered', + 9 => 'psAuxNotPowered', +); + +my $mapping = { + hpicfPsState => { oid => '.1.3.6.1.4.1.11.2.14.11.5.1.55.1.1.1.2', map => \%map_psu_status }, +}; + +sub load { + my ($self) = @_; + + push @{$self->{request}}, { oid => $mapping->{hpicfPsState}->{oid} }; +} + +sub check { + my ($self) = @_; + + + $self->{output}->output_add(long_msg => "Checking power supply"); + $self->{components}->{psu} = {name => 'psu', total => 0, skip => 0}; + return if ($self->check_filter(section => 'psu')); + + foreach my $oid ($self->{snmp}->oid_lex_sort(keys %{$self->{results}->{$mapping->{hpicfPsState}->{oid}}})) { + next if ($oid !~ /^$mapping->{hpicfPsState}->{oid}\.(.*)$/); + my $instance = $1; + my $result = $self->{snmp}->map_instance(mapping => $mapping, results => $self->{results}->{$mapping->{hpicfPsState}->{oid}}, instance => $instance); + + next if ($self->check_filter(section => 'psu', instance => $instance)); + next if ($result->{hpicfPsState} =~ /psNotPresent/i && + $self->absent_problem(section => 'psu', instance => $instance)); + $self->{components}->{psu}->{total}++; + + $self->{output}->output_add(long_msg => sprintf("power supply '%s' state is %s [instance: %s].", + $instance, $result->{hpicfPsState}, $instance + )); + my $exit = $self->get_severity(section => 'psu', value => $result->{hpicfPsState}); + if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) { + $self->{output}->output_add(severity => $exit, + short_msg => sprintf("power supply '%s' state is %s", + $instance, $result->{hpicfPsState})); + } + } +} + +1; diff --git a/network/hp/procurve/mode/components/sensor.pm b/network/hp/procurve/snmp/mode/components/sensor.pm similarity index 98% rename from network/hp/procurve/mode/components/sensor.pm rename to network/hp/procurve/snmp/mode/components/sensor.pm index 49f84f802..7b0aa7990 100644 --- a/network/hp/procurve/mode/components/sensor.pm +++ b/network/hp/procurve/snmp/mode/components/sensor.pm @@ -18,7 +18,7 @@ # limitations under the License. # -package network::hp::procurve::mode::components::sensor; +package network::hp::procurve::snmp::mode::components::sensor; use strict; use warnings; @@ -81,4 +81,4 @@ sub check { } } -1; \ No newline at end of file +1; diff --git a/network/hp/procurve/mode/cpu.pm b/network/hp/procurve/snmp/mode/cpu.pm similarity index 98% rename from network/hp/procurve/mode/cpu.pm rename to network/hp/procurve/snmp/mode/cpu.pm index 31738f1d7..d3ac112a3 100644 --- a/network/hp/procurve/mode/cpu.pm +++ b/network/hp/procurve/snmp/mode/cpu.pm @@ -18,7 +18,7 @@ # limitations under the License. # -package network::hp::procurve::mode::cpu; +package network::hp::procurve::snmp::mode::cpu; use base qw(centreon::plugins::mode); @@ -97,4 +97,4 @@ Threshold critical in percent. =back =cut - \ No newline at end of file + diff --git a/network/hp/procurve/mode/environment.pm b/network/hp/procurve/snmp/mode/environment.pm similarity index 74% rename from network/hp/procurve/mode/environment.pm rename to network/hp/procurve/snmp/mode/environment.pm index a43f15a44..270bbfa37 100644 --- a/network/hp/procurve/mode/environment.pm +++ b/network/hp/procurve/snmp/mode/environment.pm @@ -18,7 +18,7 @@ # limitations under the License. # -package network::hp::procurve::mode::environment; +package network::hp::procurve::snmp::mode::environment; use base qw(centreon::plugins::templates::hardware); @@ -28,7 +28,7 @@ use warnings; sub set_system { my ($self, %options) = @_; - $self->{regexp_threshold_overload_check_section_option} = '^(sensor)$'; + $self->{regexp_threshold_overload_check_section_option} = '^(sensor|fan|psu)$'; $self->{cb_hook2} = 'snmp_execute'; @@ -40,10 +40,30 @@ sub set_system { ['good', 'OK'], ['not present', 'WARNING'], ], + psu => [ + ['psNotPresent', 'OK'], + ['psNotPlugged', 'WARNING'], + ['psPowered', 'OK'], + ['psFailed', 'CRITICAL'], + ['psPermFailure', 'CRITICAL'], + ['psMax', 'WARNING'], + ['psAuxFailure', 'CRITICAL'], + ['psNotPowered', 'WARNING'], + ['psAuxNotPowered', 'CRITICAL'], + ], + fan => [ + ['failed', 'CRITICAL'], + ['removed', 'OK'], + ['off', 'WARNING'], + ['underspeed', 'WARNING'], + ['overspeed', 'WARNING'], + ['ok', 'OK'], + ['maxstate', 'WARNING'], + ], }; - $self->{components_path} = 'network::hp::procurve::mode::components'; - $self->{components_module} = ['sensor']; + $self->{components_path} = 'network::hp::procurve::snmp::mode::components'; + $self->{components_module} = ['sensor', 'psu', 'fan']; } sub snmp_execute { @@ -79,7 +99,7 @@ Check sensors (hpicfChassis.mib). =item B<--component> Which component to check (Default: '.*'). -Can be: 'sensor'. +Can be: 'sensor', 'psu', 'fan'. =item B<--filter> @@ -105,4 +125,4 @@ Example: --threshold-overload='sensor,CRITICAL,^(?!(good)$)' =back =cut - \ No newline at end of file + diff --git a/network/hp/procurve/mode/memory.pm b/network/hp/procurve/snmp/mode/memory.pm similarity index 98% rename from network/hp/procurve/mode/memory.pm rename to network/hp/procurve/snmp/mode/memory.pm index b4b7ec8bb..f0af7150f 100644 --- a/network/hp/procurve/mode/memory.pm +++ b/network/hp/procurve/snmp/mode/memory.pm @@ -18,7 +18,7 @@ # limitations under the License. # -package network::hp::procurve::mode::memory; +package network::hp::procurve::snmp::mode::memory; use base qw(centreon::plugins::mode); @@ -127,4 +127,4 @@ Threshold critical in percent. =back =cut - \ No newline at end of file + diff --git a/network/hp/procurve/plugin.pm b/network/hp/procurve/snmp/plugin.pm similarity index 69% rename from network/hp/procurve/plugin.pm rename to network/hp/procurve/snmp/plugin.pm index ed633764a..6bc47d95e 100644 --- a/network/hp/procurve/plugin.pm +++ b/network/hp/procurve/snmp/plugin.pm @@ -18,7 +18,7 @@ # limitations under the License. # -package network::hp::procurve::plugin; +package network::hp::procurve::snmp::plugin; use strict; use warnings; @@ -31,12 +31,12 @@ sub new { $self->{version} = '1.0'; %{$self->{modes}} = ( - 'cpu' => 'network::hp::procurve::mode::cpu', - 'environment' => 'network::hp::procurve::mode::environment', - 'interfaces' => 'snmp_standard::mode::interfaces', - 'list-interfaces' => 'snmp_standard::mode::listinterfaces', - 'memory' => 'network::hp::procurve::mode::memory', - ); + 'cpu' => 'network::hp::procurve::snmp::mode::cpu', + 'environment' => 'network::hp::procurve::snmp::mode::environment', + 'interfaces' => 'snmp_standard::mode::interfaces', + 'list-interfaces' => 'snmp_standard::mode::listinterfaces', + 'memory' => 'network::hp::procurve::snmp::mode::memory', + ); return $self; } From a44c55815c23d744f3c9f84600472110ea5580b8 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Mon, 8 Jan 2018 11:46:29 +0100 Subject: [PATCH 58/77] fix nsclient restapi warning --- apps/nsclient/restapi/mode/query.pm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/nsclient/restapi/mode/query.pm b/apps/nsclient/restapi/mode/query.pm index 64f4c6541..97388e281 100644 --- a/apps/nsclient/restapi/mode/query.pm +++ b/apps/nsclient/restapi/mode/query.pm @@ -110,8 +110,8 @@ sub nscp_output_perf { value => sprintf($printf_format, $perf->{value}), warning => defined($perf->{warning}) ? sprintf($printf_format, $perf->{warning}) : undef, critical => defined($perf->{critical}) ? sprintf($printf_format, $perf->{critical}) : undef, - min => sprintf($printf_format, $perf->{minimum}), - max => sprintf($printf_format, $perf->{maximum}), + min => defined($perf->{minimum}) ? sprintf($printf_format, $perf->{minimum}) : undef, + max => defined($perf->{maximum}) ? sprintf($printf_format, $perf->{maximum}) : undef, ); } } From e0bfe7863b4cfcf82aab8d6f6fc3fed982144171 Mon Sep 17 00:00:00 2001 From: Fabien THEPAUT Date: Wed, 10 Jan 2018 10:39:37 +0100 Subject: [PATCH 59/77] Add list-storage mode for windows NSClient --- .../common/powershell/windows/liststorages.pm | 113 ++++++++++++++ os/windows/local/mode/liststorages.pm | 143 ++++++++++++++++++ os/windows/local/plugin.pm | 1 + 3 files changed, 257 insertions(+) create mode 100644 centreon/common/powershell/windows/liststorages.pm create mode 100644 os/windows/local/mode/liststorages.pm diff --git a/centreon/common/powershell/windows/liststorages.pm b/centreon/common/powershell/windows/liststorages.pm new file mode 100644 index 000000000..7c58474a7 --- /dev/null +++ b/centreon/common/powershell/windows/liststorages.pm @@ -0,0 +1,113 @@ +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package centreon::common::powershell::windows::liststorages; + +use strict; +use warnings; +use centreon::plugins::misc; + +sub get_powershell { + my (%options) = @_; + my $no_ps = (defined($options{no_ps})) ? 1 : 0; + + return '' if ($no_ps == 1); + + my $ps = ' +$culture = new-object "System.Globalization.CultureInfo" "en-us" +[System.Threading.Thread]::CurrentThread.CurrentUICulture = $culture +$ProgressPreference = "SilentlyContinue" + +Try { + $ErrorActionPreference = "Stop" + '; + + if (defined($options{filter})) { + $ps .= ' + $disks = Get-PSDrive -PSProvider "' . $options{filter} . '" +'; + } else { + $ps .= ' + $disks = Get-PSDrive +'; + } + + $ps .= ' +} Catch { + Write-Host $Error[0].Exception + exit 1 +}Foreach ($disk in $disks) { + Write-Host "[name=" $disk.Name "][used=" $disk.Used "][free=" $disk.Free "][provider=" $disk.Provider "][path=" $disk.Root "]" -NoNewline +} + +exit 0 +'; + + return centreon::plugins::misc::powershell_encoded($ps); +} +1; + +sub list { + my ($self, %options) = @_; + + # Following output: + #[name= c ][server= SRVI-WIN-TEST ][used= 20394858038 ][free= 509408308 ][provider= Microsoft.PowerShell.Core\FileSystem ][path= C:\ ] + #... + foreach my $line (split /\n/, $options{stdout}) { + next if ($line !~ /^\[name=(.*?)\]\[used=(.*?)\]\[free=(.*?)\]\[provider=(.*?)\]\[path=(.*?)\]/); + my ($disk, $used, $free, $provider, $path) = (centreon::plugins::misc::trim($1), centreon::plugins::misc::trim($2), + centreon::plugins::misc::trim($3), centreon::plugins::misc::trim($4), centreon::plugins::misc::trim($5)); + + $self->{output}->output_add(long_msg => "'" . $disk . "' [used = $used, free = $free, path = $path, provider = " . $provider . ']'); + + } +} +1; + + +sub disco_show { + my ($self, %options) = @_; + + # Following output: + #[name= c ][server= SRVI-WIN-TEST ][used= 20394858038 ][free= 509408308 ][provider= Microsoft.PowerShell.Core\FileSystem ][path= C:\ ] + #... + foreach my $line (split /\n/, $options{stdout}) { + next if ($line !~ /^\[name=(.*?)\]\[used=(.*?)\]\[free=(.*?)\]\[provider=(.*?)\]\[path=(.*?)\]/); + my ($disk, $used, $free, $provider, $path) = (centreon::plugins::misc::trim($1), centreon::plugins::misc::trim($2), + centreon::plugins::misc::trim($3), centreon::plugins::misc::trim($4), centreon::plugins::misc::trim($5)); + + $self->{output}->add_disco_entry(name => $disk, + used => $used, + free => $free, + provider => $provider, + path => $path); + } +} + +1; + +__END__ + +=head1 DESCRIPTION + +Method to list Windows Disks. + +=cut + diff --git a/os/windows/local/mode/liststorages.pm b/os/windows/local/mode/liststorages.pm new file mode 100644 index 000000000..fe628cdb6 --- /dev/null +++ b/os/windows/local/mode/liststorages.pm @@ -0,0 +1,143 @@ +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package os::windows::local::mode::liststorages; + +use base qw(centreon::plugins::mode); + +use strict; +use warnings; +use centreon::plugins::misc; +use centreon::common::powershell::windows::liststorages; + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + + "no-ps" => { name => 'no_ps', }, + "timeout:s" => { name => 'timeout', default => 50 }, + "command:s" => { name => 'command', default => 'powershell.exe' }, + "command-path:s" => { name => 'command_path' }, + "command-options:s" => { name => 'command_options', default => '-InputFormat none -NoLogo -EncodedCommand' }, + "ps-exec-only" => { name => 'ps_exec_only', }, + "filter-type:s" => { name => 'filter', default => 'FileSystem'}, + }); + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::init(%options); +} + +sub run { + my ($self, %options) = @_; + + my $ps = centreon::common::powershell::windows::liststorages::get_powershell(no_ps => $self->{option_results}->{no_ps}, + filter => $self->{option_results}->{filter}); + + $self->{option_results}->{command_options} .= " " . $ps; + + my ($stdout) = centreon::plugins::misc::windows_execute(output => $self->{output}, + timeout => $self->{option_results}->{timeout}, + command => $self->{option_results}->{command}, + command_path => $self->{option_results}->{command_path}, + command_options => $self->{option_results}->{command_options}); + if (defined($self->{option_results}->{ps_exec_only})) { + $self->{output}->output_add(severity => 'OK', + short_msg => $stdout); + } else { + $self->{output}->output_add(severity => 'OK', + short_msg => 'List disk:'); + centreon::common::powershell::windows::liststorages::list($self, stdout => $stdout); + } + + $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); + $self->{output}->exit(); +} + +sub disco_format { + my ($self, %options) = @_; + + $self->{output}->add_disco_format(elements => ['name', 'used', 'free', 'provider', 'path']); +} + +sub disco_show { + my ($self, %options) = @_; + + my $ps = centreon::common::powershell::windows::liststorages::get_powershell(no_ps => $self->{option_results}->{no_ps}, + filter => $self->{option_results}->{filter}); + + $self->{option_results}->{command_options} .= " " . $ps; + my ($stdout) = centreon::plugins::misc::windows_execute(output => $self->{output}, + timeout => $self->{option_results}->{timeout}, + command => $self->{option_results}->{command}, + command_path => $self->{option_results}->{command_path}, + command_options => $self->{option_results}->{command_options}); + centreon::common::powershell::windows::liststorages::disco_show($self, stdout => $stdout); +} + +1; + +__END__ + +=head1 MODE + +List Windows disks. + +=over 8 + +=item B<--timeout> + +Set timeout time for command execution (Default: 50 sec) + +=item B<--no-ps> + +Don't encode powershell. To be used with --command and 'type' command. + +=item B<--command> + +Command to get information (Default: 'powershell.exe'). +Can be changed if you have output in a file. To be used with --no-ps option!!! + +=item B<--command-path> + +Command path (Default: none). + +=item B<--command-options> + +Command options (Default: '-InputFormat none -NoLogo -EncodedCommand'). + +=item B<--ps-exec-only> + +Print powershell output. + +=item B<--filter-type> + +Filter database (only wilcard 'FileSystem' can be used. In Powershell). + +=back + +=cut \ No newline at end of file diff --git a/os/windows/local/plugin.pm b/os/windows/local/plugin.pm index 0d428c699..c04aca28a 100644 --- a/os/windows/local/plugin.pm +++ b/os/windows/local/plugin.pm @@ -35,6 +35,7 @@ sub new { 'pending-reboot' => 'os::windows::local::mode::pendingreboot', 'sessions' => 'os::windows::local::mode::sessions', 'time' => 'os::windows::local::mode::ntp', + 'list-storages' => 'os::windows::local::mode::liststorages', ); return $self; From e69ca36dc2b1bcde74cbb3245a540d0dcd7e7e38 Mon Sep 17 00:00:00 2001 From: THEPAUT Date: Wed, 10 Jan 2018 11:03:37 +0100 Subject: [PATCH 60/77] Correct indentation --- centreon/common/powershell/windows/liststorages.pm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/centreon/common/powershell/windows/liststorages.pm b/centreon/common/powershell/windows/liststorages.pm index 7c58474a7..8b68c40dc 100644 --- a/centreon/common/powershell/windows/liststorages.pm +++ b/centreon/common/powershell/windows/liststorages.pm @@ -73,7 +73,7 @@ sub list { foreach my $line (split /\n/, $options{stdout}) { next if ($line !~ /^\[name=(.*?)\]\[used=(.*?)\]\[free=(.*?)\]\[provider=(.*?)\]\[path=(.*?)\]/); my ($disk, $used, $free, $provider, $path) = (centreon::plugins::misc::trim($1), centreon::plugins::misc::trim($2), - centreon::plugins::misc::trim($3), centreon::plugins::misc::trim($4), centreon::plugins::misc::trim($5)); + centreon::plugins::misc::trim($3), centreon::plugins::misc::trim($4), centreon::plugins::misc::trim($5)); $self->{output}->output_add(long_msg => "'" . $disk . "' [used = $used, free = $free, path = $path, provider = " . $provider . ']'); @@ -95,8 +95,8 @@ sub disco_show { $self->{output}->add_disco_entry(name => $disk, used => $used, - free => $free, - provider => $provider, + free => $free, + provider => $provider, path => $path); } } From bcb0030baaa37f1c86a4c706b8db4f3632a6e7a6 Mon Sep 17 00:00:00 2001 From: Fabien THEPAUT Date: Wed, 10 Jan 2018 11:49:58 +0100 Subject: [PATCH 61/77] correct indentatin 2 --- centreon/common/powershell/windows/liststorages.pm | 4 ++-- os/windows/local/plugin.pm | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/centreon/common/powershell/windows/liststorages.pm b/centreon/common/powershell/windows/liststorages.pm index 8b68c40dc..75027d371 100644 --- a/centreon/common/powershell/windows/liststorages.pm +++ b/centreon/common/powershell/windows/liststorages.pm @@ -95,8 +95,8 @@ sub disco_show { $self->{output}->add_disco_entry(name => $disk, used => $used, - free => $free, - provider => $provider, + free => $free, + provider => $provider, path => $path); } } diff --git a/os/windows/local/plugin.pm b/os/windows/local/plugin.pm index c04aca28a..e120dd29a 100644 --- a/os/windows/local/plugin.pm +++ b/os/windows/local/plugin.pm @@ -35,7 +35,7 @@ sub new { 'pending-reboot' => 'os::windows::local::mode::pendingreboot', 'sessions' => 'os::windows::local::mode::sessions', 'time' => 'os::windows::local::mode::ntp', - 'list-storages' => 'os::windows::local::mode::liststorages', + 'list-storages' => 'os::windows::local::mode::liststorages', ); return $self; From 126245029ef34f31ff2638ea885c11d57680fbb3 Mon Sep 17 00:00:00 2001 From: pkriko Date: Thu, 11 Jan 2018 11:05:53 +0100 Subject: [PATCH 62/77] fix the typo mistakes in http mode --- apps/protocols/http/mode/expectedcontent.pm | 8 ++++---- apps/protocols/http/mode/jsoncontent.pm | 8 ++++---- apps/protocols/http/mode/response.pm | 8 ++++---- apps/protocols/http/mode/soapcontent.pm | 8 ++++---- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/apps/protocols/http/mode/expectedcontent.pm b/apps/protocols/http/mode/expectedcontent.pm index 610eb8449..8290d1148 100644 --- a/apps/protocols/http/mode/expectedcontent.pm +++ b/apps/protocols/http/mode/expectedcontent.pm @@ -195,19 +195,19 @@ Set path to get Webpage (Default: '/') =item B<--credentials> -Specify this option if you access webpage over basic authentification +Specify this option if you access webpage over basic authentication =item B<--ntlm> -Specify this option if you access webpage over ntlm authentification (Use with --credentials option) +Specify this option if you access webpage over ntlm authentication (Use with --credentials option) =item B<--username> -Specify username for basic authentification (Mandatory if --credentials is specidied) +Specify username for basic authentication (Mandatory if --credentials is specidied) =item B<--password> -Specify password for basic authentification (Mandatory if --credentials is specidied) +Specify password for basic authentication (Mandatory if --credentials is specidied) =item B<--timeout> diff --git a/apps/protocols/http/mode/jsoncontent.pm b/apps/protocols/http/mode/jsoncontent.pm index 88f70d817..ef774dd63 100644 --- a/apps/protocols/http/mode/jsoncontent.pm +++ b/apps/protocols/http/mode/jsoncontent.pm @@ -392,19 +392,19 @@ Set path to get Webpage (Default: '/') =item B<--credentials> -Specify this option if you access webpage over basic authentification +Specify this option if you access webpage over basic authentication =item B<--ntlm> -Specify this option if you access webpage over ntlm authentification (Use with --credentials option) +Specify this option if you access webpage over ntlm authentication (Use with --credentials option) =item B<--username> -Specify username for basic authentification (Mandatory if --credentials is specidied) +Specify username for basic authentication (Mandatory if --credentials is specidied) =item B<--password> -Specify password for basic authentification (Mandatory if --credentials is specidied) +Specify password for basic authentication (Mandatory if --credentials is specidied) =item B<--timeout> diff --git a/apps/protocols/http/mode/response.pm b/apps/protocols/http/mode/response.pm index fb0f8fe77..985dbc1ac 100644 --- a/apps/protocols/http/mode/response.pm +++ b/apps/protocols/http/mode/response.pm @@ -173,19 +173,19 @@ Set path to get webpage (Default: '/') =item B<--credentials> -Specify this option if you access webpage over basic authentification +Specify this option if you access webpage over basic authentication =item B<--ntlm> -Specify this option if you access webpage over ntlm authentification (Use with --credentials option) +Specify this option if you access webpage over ntlm authentication (Use with --credentials option) =item B<--username> -Specify username for basic authentification (Mandatory if --credentials is specidied) +Specify username for basic authentication (Mandatory if --credentials is specidied) =item B<--password> -Specify password for basic authentification (Mandatory if --credentials is specidied) +Specify password for basic authentication (Mandatory if --credentials is specidied) =item B<--proxyurl> diff --git a/apps/protocols/http/mode/soapcontent.pm b/apps/protocols/http/mode/soapcontent.pm index b10cfb79a..6671bdadf 100644 --- a/apps/protocols/http/mode/soapcontent.pm +++ b/apps/protocols/http/mode/soapcontent.pm @@ -419,19 +419,19 @@ Set path to get Webpage (Default: '/') =item B<--credentials> -Specify this option if you access webpage over basic authentification +Specify this option if you access webpage over basic authentication =item B<--ntlm> -Specify this option if you access webpage over ntlm authentification (Use with --credentials option) +Specify this option if you access webpage over ntlm authentication (Use with --credentials option) =item B<--username> -Specify username for basic authentification (Mandatory if --credentials is specidied) +Specify username for basic authentication (Mandatory if --credentials is specidied) =item B<--password> -Specify password for basic authentification (Mandatory if --credentials is specidied) +Specify password for basic authentication (Mandatory if --credentials is specidied) =item B<--timeout> From cdfb1935a46038ffb5d63de876bb9b3628b59ee3 Mon Sep 17 00:00:00 2001 From: pkriko Date: Thu, 11 Jan 2018 11:37:21 +0100 Subject: [PATCH 63/77] Enhancement NTLMv2 --- apps/protocols/http/mode/expectedcontent.pm | 5 +++++ apps/protocols/http/mode/jsoncontent.pm | 5 +++++ apps/protocols/http/mode/response.pm | 5 +++++ apps/protocols/http/mode/soapcontent.pm | 5 +++++ centreon/plugins/http.pm | 7 ++++++- 5 files changed, 26 insertions(+), 1 deletion(-) diff --git a/apps/protocols/http/mode/expectedcontent.pm b/apps/protocols/http/mode/expectedcontent.pm index 8290d1148..09f0860a7 100644 --- a/apps/protocols/http/mode/expectedcontent.pm +++ b/apps/protocols/http/mode/expectedcontent.pm @@ -43,6 +43,7 @@ sub new { "urlpath:s" => { name => 'url_path' }, "credentials" => { name => 'credentials' }, "ntlm" => { name => 'ntlm' }, + "ntlmv2" => { name => 'ntlmv2' }, "username:s" => { name => 'username' }, "password:s" => { name => 'password' }, "proxyurl:s" => { name => 'proxyurl' }, @@ -201,6 +202,10 @@ Specify this option if you access webpage over basic authentication Specify this option if you access webpage over ntlm authentication (Use with --credentials option) +=item B<--ntlmv2> + +Specify this option if you access webpage over ntlmv2 authentication (Use with --credentials and --port options) + =item B<--username> Specify username for basic authentication (Mandatory if --credentials is specidied) diff --git a/apps/protocols/http/mode/jsoncontent.pm b/apps/protocols/http/mode/jsoncontent.pm index ef774dd63..5a302096d 100644 --- a/apps/protocols/http/mode/jsoncontent.pm +++ b/apps/protocols/http/mode/jsoncontent.pm @@ -47,6 +47,7 @@ sub new { "urlpath:s" => { name => 'url_path' }, "credentials" => { name => 'credentials' }, "ntlm" => { name => 'ntlm' }, + "ntlmv2" => { name => 'ntlmv2' }, "username:s" => { name => 'username' }, "password:s" => { name => 'password' }, "proxyurl:s" => { name => 'proxyurl' }, @@ -398,6 +399,10 @@ Specify this option if you access webpage over basic authentication Specify this option if you access webpage over ntlm authentication (Use with --credentials option) +=item B<--ntlmv2> + +Specify this option if you access webpage over ntlmv2 authentication (Use with --credentials and --port options) + =item B<--username> Specify username for basic authentication (Mandatory if --credentials is specidied) diff --git a/apps/protocols/http/mode/response.pm b/apps/protocols/http/mode/response.pm index 985dbc1ac..b30bab8f9 100644 --- a/apps/protocols/http/mode/response.pm +++ b/apps/protocols/http/mode/response.pm @@ -43,6 +43,7 @@ sub new { "urlpath:s" => { name => 'url_path' }, "credentials" => { name => 'credentials' }, "ntlm" => { name => 'ntlm' }, + "ntlmv2" => { name => 'ntlmv2' }, "username:s" => { name => 'username' }, "password:s" => { name => 'password' }, "proxyurl:s" => { name => 'proxyurl' }, @@ -179,6 +180,10 @@ Specify this option if you access webpage over basic authentication Specify this option if you access webpage over ntlm authentication (Use with --credentials option) +=item B<--ntlmv2> + +Specify this option if you access webpage over ntlmv2 authentication (Use with --credentials and --port options) + =item B<--username> Specify username for basic authentication (Mandatory if --credentials is specidied) diff --git a/apps/protocols/http/mode/soapcontent.pm b/apps/protocols/http/mode/soapcontent.pm index 6671bdadf..c75cd1cf8 100644 --- a/apps/protocols/http/mode/soapcontent.pm +++ b/apps/protocols/http/mode/soapcontent.pm @@ -47,6 +47,7 @@ sub new { "urlpath:s" => { name => 'url_path' }, "credentials" => { name => 'credentials' }, "ntlm" => { name => 'ntlm' }, + "ntlmv2" => { name => 'ntlmv2' }, "username:s" => { name => 'username' }, "password:s" => { name => 'password' }, "proxyurl:s" => { name => 'proxyurl' }, @@ -425,6 +426,10 @@ Specify this option if you access webpage over basic authentication Specify this option if you access webpage over ntlm authentication (Use with --credentials option) +=item B<--ntlmv2> + +Specify this option if you access webpage over ntlmv2 authentication (Use with --credentials and --port options) + =item B<--username> Specify username for basic authentication (Mandatory if --credentials is specidied) diff --git a/centreon/plugins/http.pm b/centreon/plugins/http.pm index fa6b655c6..5c0d5934b 100644 --- a/centreon/plugins/http.pm +++ b/centreon/plugins/http.pm @@ -26,6 +26,7 @@ use LWP::UserAgent; use HTTP::Cookies; use URI; use IO::Socket::SSL; +use Data::Dumper; sub new { my ($class, %options) = @_; @@ -264,9 +265,13 @@ sub request { $req->content($uri_post->query); } } - + if (defined($request_options->{credentials}) && defined($request_options->{ntlm})) { $self->{ua}->credentials($request_options->{hostname} . ':' . $request_options->{port}, '', $request_options->{username}, $request_options->{password}); + } elsif (defined($request_options->{credentials}) && defined($request_options->{ntlmv2})) { + eval "use Authen::NTLM"; die $@ if $@; + ntlmv2(1); + $self->{ua}->credentials($request_options->{hostname} . ':' . $request_options->{port}, '', $request_options->{username}, $request_options->{password}); } elsif (defined($request_options->{credentials})) { $req->authorization_basic($request_options->{username}, $request_options->{password}); } From 148bafe4278ba8d538e1fc79e8df85f3f52dc73c Mon Sep 17 00:00:00 2001 From: pkriko Date: Thu, 11 Jan 2018 13:08:33 +0100 Subject: [PATCH 64/77] use centreon::plugins::miscs and fix indent mistakes --- apps/protocols/http/mode/expectedcontent.pm | 2 +- apps/protocols/http/mode/jsoncontent.pm | 2 +- apps/protocols/http/mode/response.pm | 2 +- apps/protocols/http/mode/soapcontent.pm | 2 +- centreon/plugins/http.pm | 8 ++++---- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/apps/protocols/http/mode/expectedcontent.pm b/apps/protocols/http/mode/expectedcontent.pm index 09f0860a7..47a79b8b8 100644 --- a/apps/protocols/http/mode/expectedcontent.pm +++ b/apps/protocols/http/mode/expectedcontent.pm @@ -43,7 +43,7 @@ sub new { "urlpath:s" => { name => 'url_path' }, "credentials" => { name => 'credentials' }, "ntlm" => { name => 'ntlm' }, - "ntlmv2" => { name => 'ntlmv2' }, + "ntlmv2" => { name => 'ntlmv2' }, "username:s" => { name => 'username' }, "password:s" => { name => 'password' }, "proxyurl:s" => { name => 'proxyurl' }, diff --git a/apps/protocols/http/mode/jsoncontent.pm b/apps/protocols/http/mode/jsoncontent.pm index 5a302096d..6f21c23b1 100644 --- a/apps/protocols/http/mode/jsoncontent.pm +++ b/apps/protocols/http/mode/jsoncontent.pm @@ -47,7 +47,7 @@ sub new { "urlpath:s" => { name => 'url_path' }, "credentials" => { name => 'credentials' }, "ntlm" => { name => 'ntlm' }, - "ntlmv2" => { name => 'ntlmv2' }, + "ntlmv2" => { name => 'ntlmv2' }, "username:s" => { name => 'username' }, "password:s" => { name => 'password' }, "proxyurl:s" => { name => 'proxyurl' }, diff --git a/apps/protocols/http/mode/response.pm b/apps/protocols/http/mode/response.pm index b30bab8f9..4ca6a58b3 100644 --- a/apps/protocols/http/mode/response.pm +++ b/apps/protocols/http/mode/response.pm @@ -43,7 +43,7 @@ sub new { "urlpath:s" => { name => 'url_path' }, "credentials" => { name => 'credentials' }, "ntlm" => { name => 'ntlm' }, - "ntlmv2" => { name => 'ntlmv2' }, + "ntlmv2" => { name => 'ntlmv2' }, "username:s" => { name => 'username' }, "password:s" => { name => 'password' }, "proxyurl:s" => { name => 'proxyurl' }, diff --git a/apps/protocols/http/mode/soapcontent.pm b/apps/protocols/http/mode/soapcontent.pm index c75cd1cf8..53d085650 100644 --- a/apps/protocols/http/mode/soapcontent.pm +++ b/apps/protocols/http/mode/soapcontent.pm @@ -47,7 +47,7 @@ sub new { "urlpath:s" => { name => 'url_path' }, "credentials" => { name => 'credentials' }, "ntlm" => { name => 'ntlm' }, - "ntlmv2" => { name => 'ntlmv2' }, + "ntlmv2" => { name => 'ntlmv2' }, "username:s" => { name => 'username' }, "password:s" => { name => 'password' }, "proxyurl:s" => { name => 'proxyurl' }, diff --git a/centreon/plugins/http.pm b/centreon/plugins/http.pm index 5c0d5934b..9a5762eeb 100644 --- a/centreon/plugins/http.pm +++ b/centreon/plugins/http.pm @@ -26,7 +26,6 @@ use LWP::UserAgent; use HTTP::Cookies; use URI; use IO::Socket::SSL; -use Data::Dumper; sub new { my ($class, %options) = @_; @@ -269,9 +268,10 @@ sub request { if (defined($request_options->{credentials}) && defined($request_options->{ntlm})) { $self->{ua}->credentials($request_options->{hostname} . ':' . $request_options->{port}, '', $request_options->{username}, $request_options->{password}); } elsif (defined($request_options->{credentials}) && defined($request_options->{ntlmv2})) { - eval "use Authen::NTLM"; die $@ if $@; - ntlmv2(1); - $self->{ua}->credentials($request_options->{hostname} . ':' . $request_options->{port}, '', $request_options->{username}, $request_options->{password}); + centreon::plugins::misc::mymodule_load(output => $self->{output}, module => 'Authen::NTLM', + error_msg => "Cannot load module 'Authen::NTLM'."); + Authen::NTLM::ntlmv2(1); + $self->{ua}->credentials($request_options->{hostname} . ':' . $request_options->{port}, '', $request_options->{username}, $request_options->{password}); } elsif (defined($request_options->{credentials})) { $req->authorization_basic($request_options->{username}, $request_options->{password}); } From 6e3b9c248073d1d72f122a2cc5a2116dd4678bab Mon Sep 17 00:00:00 2001 From: Colin GAGNAIRE Date: Wed, 17 Jan 2018 10:09:52 +0100 Subject: [PATCH 65/77] add mssql logsize mode --- database/mssql/mode/logssize.pm | 205 ++++++++++++++++++++++++++++++++ database/mssql/plugin.pm | 11 +- 2 files changed, 211 insertions(+), 5 deletions(-) create mode 100644 database/mssql/mode/logssize.pm diff --git a/database/mssql/mode/logssize.pm b/database/mssql/mode/logssize.pm new file mode 100644 index 000000000..9087a3b40 --- /dev/null +++ b/database/mssql/mode/logssize.pm @@ -0,0 +1,205 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package database::mssql::mode::logssize; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +my $instance_mode; + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'log', type => 1, cb_prefix_output => 'prefix_log_output', message_multiple => 'All logs are OK' }, + ]; + + $self->{maps_counters}->{log} = [ + { label => 'log', set => { + key_values => [ { name => 'total' }, { name => 'prct_used' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + ]; +} + +sub custom_usage_perfdata { + my ($self, %options) = @_; + + my $label = 'log_' . $self->{result_values}->{display} . '_used'; + my $value_perf = $self->{result_values}->{used}; + if (defined($instance_mode->{option_results}->{free})) { + $label = 'log_' . $self->{result_values}->{display} . '_free'; + $value_perf = $self->{result_values}->{free}; + } + my $extra_label = ''; + $extra_label = '_' . $self->{result_values}->{display} if (!defined($options{extra_instance}) || $options{extra_instance} != 0); + my %total_options = (); + if ($instance_mode->{option_results}->{units} eq '%') { + $total_options{total} = $self->{result_values}->{total}; + $total_options{cast_int} = 1; + } + + $self->{output}->perfdata_add(label => $label . $extra_label, unit => 'B', + value => $value_perf, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{label}, %total_options), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{label}, %total_options), + min => 0, max => $self->{result_values}->{total}); +} + +sub custom_usage_threshold { + my ($self, %options) = @_; + + my ($exit, $threshold_value); + $threshold_value = $self->{result_values}->{used}; + $threshold_value = $self->{result_values}->{free} if (defined($instance_mode->{option_results}->{free})); + if ($instance_mode->{option_results}->{units} eq '%') { + $threshold_value = $self->{result_values}->{prct_used}; + $threshold_value = $self->{result_values}->{prct_free} if (defined($instance_mode->{option_results}->{free})); + } + $exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{label}, exit_litteral => 'critical' }, + { label => 'warning-'. $self->{label}, exit_litteral => 'warning' } ]); + return $exit; +} + +sub custom_usage_output { + my ($self, %options) = @_; + + my ($total_size_value, $total_size_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{total}); + my ($total_used_value, $total_used_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{used}); + my ($total_free_value, $total_free_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{free}); + my $msg = sprintf("Total: %s Used: %s (%.2f%%) Free: %s (%.2f%%)", + $total_size_value . " " . $total_size_unit, + $total_used_value . " " . $total_used_unit, $self->{result_values}->{prct_used}, + $total_free_value . " " . $total_free_unit, $self->{result_values}->{prct_free}); + return $msg; +} + +sub custom_usage_calc { + my ($self, %options) = @_; + + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'}; + $self->{result_values}->{total} = $options{new_datas}->{$self->{instance} . '_total'}; + $self->{result_values}->{prct_used} = $options{new_datas}->{$self->{instance} . '_prct_used'}; + + $self->{result_values}->{used} = $self->{result_values}->{prct_used} * $self->{result_values}->{total} / 100; + $self->{result_values}->{free} = $self->{result_values}->{total} - $self->{result_values}->{used}; + $self->{result_values}->{prct_free} = 100 - $self->{result_values}->{prct_used}; + + return 0; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "filter-log:s" => { name => 'filter_log' }, + "units:s" => { name => 'units', default => '%' }, + "free" => { name => 'free' }, + }); + return $self; +} + +sub prefix_log_output { + my ($self, %options) = @_; + + return "Log '" . $options{instance_value}->{display} . "' "; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; +} + +sub manage_selection { + my ($self, %options) = @_; + + $self->{sql} = $options{sql}; + $self->{sql}->connect(); + $self->{sql}->query(query => q{DBCC SQLPERF(LOGSPACE)}); + + my $result = $self->{sql}->fetchall_arrayref(); + + foreach my $row (@$result) { + if (defined($self->{option_results}->{filter_log}) && $self->{option_results}->{filter_log} ne '' && + $$row[0] !~ /$self->{option_results}->{filter_log}/) { + $self->{output}->output_add(long_msg => "skipping log '" . $$row[0] . "': no matching filter.", debug => 1); + next; + } + + my $total = $$row[1] * 1024 * 1024; + my $prct_used = $$row[2]; + + $self->{log}->{$$row[0]} = { total => $total, + prct_used => $prct_used, + display => lc $$row[0] }; + } + + if (scalar(keys %{$self->{log}}) <= 0) { + $self->{output}->add_option_msg(short_msg => 'No logs detected, check your filter ? '); + $self->{output}->option_exit(); + } +} + +1; + +__END__ + +=head1 MODE + +Check MSSQL Log usage + +=over 8 + +=item B<--warning-log> + +Threshold warning. + +=item B<--critical-log> + +Threshold critical. + +=item B<--filter-log> + +Filter log by name. Can be a regex + +=item B<--units> + +Default is '%', can be 'B' + +=item B<--free> + +Perfdata show free space + +=back + +=cut diff --git a/database/mssql/plugin.pm b/database/mssql/plugin.pm index a114cffd0..61b86b13d 100644 --- a/database/mssql/plugin.pm +++ b/database/mssql/plugin.pm @@ -32,18 +32,19 @@ sub new { $self->{version} = '0.1'; %{$self->{modes}} = ( + 'backup-age' => 'database::mssql::mode::backupage', 'blocked-processes' => 'database::mssql::mode::blockedprocesses', 'cache-hitratio' => 'database::mssql::mode::cachehitratio', 'connected-users' => 'database::mssql::mode::connectedusers', 'connection-time' => 'centreon::common::protocols::sql::mode::connectiontime', - 'databases-size' => 'database::mssql::mode::databasessize', - 'locks-waits' => 'database::mssql::mode::lockswaits', - 'transactions' => 'database::mssql::mode::transactions', - 'failed-jobs' => 'database::mssql::mode::failedjobs', 'dead-locks' => 'database::mssql::mode::deadlocks', - 'backup-age' => 'database::mssql::mode::backupage', + 'databases-size' => 'database::mssql::mode::databasessize', + 'failed-jobs' => 'database::mssql::mode::failedjobs', + 'locks-waits' => 'database::mssql::mode::lockswaits', + 'logs-size' => 'database::mssql::mode::logssize', 'sql' => 'centreon::common::protocols::sql::mode::sql', 'sql-string' => 'centreon::common::protocols::sql::mode::sqlstring', + 'transactions' => 'database::mssql::mode::transactions', ); return $self; From 064ac198a91cd549b230af1735b6a5d2a272ad2a Mon Sep 17 00:00:00 2001 From: Colin GAGNAIRE Date: Wed, 17 Jan 2018 14:49:37 +0100 Subject: [PATCH 66/77] improve authentification handling --- centreon/plugins/http.pm | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/centreon/plugins/http.pm b/centreon/plugins/http.pm index 9a5762eeb..ee0c4d7d7 100644 --- a/centreon/plugins/http.pm +++ b/centreon/plugins/http.pm @@ -27,6 +27,18 @@ use HTTP::Cookies; use URI; use IO::Socket::SSL; +{ + package CentreonUserAgent; + our @ISA = qw(LWP::UserAgent); + + sub get_basic_credentials { + my($self, $realm, $uri, $proxy) = @_; + return if $proxy; + return $centreon::plugins::http::request_options->{username}, $centreon::plugins::http::request_options->{password} if $centreon::plugins::http::request_options->{credentials}; + return undef, undef; + } +} + sub new { my ($class, %options) = @_; my $self = {}; @@ -204,14 +216,14 @@ sub set_proxy { sub request { my ($self, %options) = @_; - my $request_options = { %{$self->{options}} }; + our $request_options = { %{$self->{options}} }; foreach (keys %options) { $request_options->{$_} = $options{$_} if (defined($options{$_})); } $self->check_options(request => $request_options); if (!defined($self->{ua})) { - $self->{ua} = LWP::UserAgent->new(keep_alive => 1, protocols_allowed => ['http', 'https'], timeout => $request_options->{timeout}); + $self->{ua} = CentreonUserAgent->new(keep_alive => 1, protocols_allowed => ['http', 'https'], timeout => $request_options->{timeout}); if (defined($request_options->{cookies_file})) { $self->{ua}->cookie_jar(HTTP::Cookies->new(file => $request_options->{cookies_file}, autosave => 1)); @@ -264,16 +276,11 @@ sub request { $req->content($uri_post->query); } } - - if (defined($request_options->{credentials}) && defined($request_options->{ntlm})) { - $self->{ua}->credentials($request_options->{hostname} . ':' . $request_options->{port}, '', $request_options->{username}, $request_options->{password}); - } elsif (defined($request_options->{credentials}) && defined($request_options->{ntlmv2})) { + + if (defined($request_options->{credentials}) && defined($request_options->{ntlmv2})) { centreon::plugins::misc::mymodule_load(output => $self->{output}, module => 'Authen::NTLM', error_msg => "Cannot load module 'Authen::NTLM'."); Authen::NTLM::ntlmv2(1); - $self->{ua}->credentials($request_options->{hostname} . ':' . $request_options->{port}, '', $request_options->{username}, $request_options->{password}); - } elsif (defined($request_options->{credentials})) { - $req->authorization_basic($request_options->{username}, $request_options->{password}); } $self->set_proxy(request => $request_options, url => $url); @@ -316,9 +323,15 @@ sub request { } if (!$self->{output}->is_status(value => $status, compare => 'ok', litteral => 1)) { + my $short_msg = $response->status_line; + if ($short_msg =~ /^401/) { + my ($authenticate) = $response->www_authenticate =~ /(\S+)/; + $short_msg .= ' (' . $authenticate . ' authentification expected)'; + } + $self->{output}->output_add(long_msg => $response->content, debug => 1); $self->{output}->output_add(severity => $status, - short_msg => $response->status_line); + short_msg => $short_msg); $self->{output}->display(); $self->{output}->exit(); } From a9e52da83a0248d06e0ab48a0f2f80e1f05397ff Mon Sep 17 00:00:00 2001 From: Colin GAGNAIRE Date: Fri, 19 Jan 2018 12:11:16 +0100 Subject: [PATCH 67/77] create new class --- centreon/plugins/http.pm | 19 +++----------- centreon/plugins/useragent.pm | 49 +++++++++++++++++++++++++++++++++++ 2 files changed, 53 insertions(+), 15 deletions(-) create mode 100644 centreon/plugins/useragent.pm diff --git a/centreon/plugins/http.pm b/centreon/plugins/http.pm index ee0c4d7d7..681b9124e 100644 --- a/centreon/plugins/http.pm +++ b/centreon/plugins/http.pm @@ -22,23 +22,11 @@ package centreon::plugins::http; use strict; use warnings; -use LWP::UserAgent; +use centreon::plugins::useragent; use HTTP::Cookies; use URI; use IO::Socket::SSL; -{ - package CentreonUserAgent; - our @ISA = qw(LWP::UserAgent); - - sub get_basic_credentials { - my($self, $realm, $uri, $proxy) = @_; - return if $proxy; - return $centreon::plugins::http::request_options->{username}, $centreon::plugins::http::request_options->{password} if $centreon::plugins::http::request_options->{credentials}; - return undef, undef; - } -} - sub new { my ($class, %options) = @_; my $self = {}; @@ -216,14 +204,15 @@ sub set_proxy { sub request { my ($self, %options) = @_; - our $request_options = { %{$self->{options}} }; + my $request_options = { %{$self->{options}} }; foreach (keys %options) { $request_options->{$_} = $options{$_} if (defined($options{$_})); } $self->check_options(request => $request_options); if (!defined($self->{ua})) { - $self->{ua} = CentreonUserAgent->new(keep_alive => 1, protocols_allowed => ['http', 'https'], timeout => $request_options->{timeout}); + $self->{ua} = centreon::plugins::useragent->new(keep_alive => 1, protocols_allowed => ['http', 'https'], timeout => $request_options->{timeout}, + credentials => $request_options->{credentials}, username => $request_options->{username}, password => $request_options->{password}); if (defined($request_options->{cookies_file})) { $self->{ua}->cookie_jar(HTTP::Cookies->new(file => $request_options->{cookies_file}, autosave => 1)); diff --git a/centreon/plugins/useragent.pm b/centreon/plugins/useragent.pm new file mode 100644 index 000000000..245194894 --- /dev/null +++ b/centreon/plugins/useragent.pm @@ -0,0 +1,49 @@ +# +# Copyright 2017 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package centreon::plugins::useragent; + +use strict; +use warnings; +use base 'LWP::UserAgent'; + +sub new { + my ($class, %options) = @_; + my $self = {}; + bless $self, $class; + + $self = LWP::UserAgent::new(@_); + $self->agent("centreon::plugins::useragent"); + + $self->{credentials} = $options{credentials} if defined($options{credentials}); + $self->{username} = $options{username} if defined($options{username}); + $self->{password} = $options{password} if defined($options{password}); + + return $self; +} + +sub get_basic_credentials { + my($self, $realm, $uri, $proxy) = @_; + return if $proxy; + return $self->{username}, $self->{password} if $self->{credentials}; + return undef, undef; +} + +1; From 51da04b5e3561f94f5bc2961a4c433035190e154 Mon Sep 17 00:00:00 2001 From: Colin GAGNAIRE Date: Fri, 19 Jan 2018 13:34:10 +0100 Subject: [PATCH 68/77] add wantarray or string --- centreon/plugins/useragent.pm | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/centreon/plugins/useragent.pm b/centreon/plugins/useragent.pm index 245194894..5eca396e9 100644 --- a/centreon/plugins/useragent.pm +++ b/centreon/plugins/useragent.pm @@ -42,8 +42,9 @@ sub new { sub get_basic_credentials { my($self, $realm, $uri, $proxy) = @_; return if $proxy; - return $self->{username}, $self->{password} if $self->{credentials}; - return undef, undef; + return $self->{username}, $self->{password} if $self->{credentials} and wantarray; + return $self->{username}.":".$self->{password} if $self->{credentials}; + return undef; } 1; From 6cf7c3153fe0f0082d5bb5bc4831336d9af67c62 Mon Sep 17 00:00:00 2001 From: Colin GAGNAIRE Date: Fri, 19 Jan 2018 16:54:07 +0100 Subject: [PATCH 69/77] remove ntlm option from pod --- apps/protocols/http/mode/expectedcontent.pm | 4 ---- apps/protocols/http/mode/jsoncontent.pm | 4 ---- apps/protocols/http/mode/response.pm | 4 ---- apps/protocols/http/mode/soapcontent.pm | 4 ---- 4 files changed, 16 deletions(-) diff --git a/apps/protocols/http/mode/expectedcontent.pm b/apps/protocols/http/mode/expectedcontent.pm index 47a79b8b8..4674fbf1f 100644 --- a/apps/protocols/http/mode/expectedcontent.pm +++ b/apps/protocols/http/mode/expectedcontent.pm @@ -198,10 +198,6 @@ Set path to get Webpage (Default: '/') Specify this option if you access webpage over basic authentication -=item B<--ntlm> - -Specify this option if you access webpage over ntlm authentication (Use with --credentials option) - =item B<--ntlmv2> Specify this option if you access webpage over ntlmv2 authentication (Use with --credentials and --port options) diff --git a/apps/protocols/http/mode/jsoncontent.pm b/apps/protocols/http/mode/jsoncontent.pm index 6f21c23b1..70c241be3 100644 --- a/apps/protocols/http/mode/jsoncontent.pm +++ b/apps/protocols/http/mode/jsoncontent.pm @@ -395,10 +395,6 @@ Set path to get Webpage (Default: '/') Specify this option if you access webpage over basic authentication -=item B<--ntlm> - -Specify this option if you access webpage over ntlm authentication (Use with --credentials option) - =item B<--ntlmv2> Specify this option if you access webpage over ntlmv2 authentication (Use with --credentials and --port options) diff --git a/apps/protocols/http/mode/response.pm b/apps/protocols/http/mode/response.pm index 4ca6a58b3..b60bc2258 100644 --- a/apps/protocols/http/mode/response.pm +++ b/apps/protocols/http/mode/response.pm @@ -176,10 +176,6 @@ Set path to get webpage (Default: '/') Specify this option if you access webpage over basic authentication -=item B<--ntlm> - -Specify this option if you access webpage over ntlm authentication (Use with --credentials option) - =item B<--ntlmv2> Specify this option if you access webpage over ntlmv2 authentication (Use with --credentials and --port options) diff --git a/apps/protocols/http/mode/soapcontent.pm b/apps/protocols/http/mode/soapcontent.pm index 53d085650..9d0084cd1 100644 --- a/apps/protocols/http/mode/soapcontent.pm +++ b/apps/protocols/http/mode/soapcontent.pm @@ -422,10 +422,6 @@ Set path to get Webpage (Default: '/') Specify this option if you access webpage over basic authentication -=item B<--ntlm> - -Specify this option if you access webpage over ntlm authentication (Use with --credentials option) - =item B<--ntlmv2> Specify this option if you access webpage over ntlmv2 authentication (Use with --credentials and --port options) From 8b450c3aaff73927bd94fb620475cfacc4b6fb45 Mon Sep 17 00:00:00 2001 From: qgarnier Date: Mon, 22 Jan 2018 17:41:54 +0100 Subject: [PATCH 70/77] Fix #863 --- apps/backup/veeam/local/mode/jobstatus.pm | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/backup/veeam/local/mode/jobstatus.pm b/apps/backup/veeam/local/mode/jobstatus.pm index 9c606aa30..b3e03f3b8 100644 --- a/apps/backup/veeam/local/mode/jobstatus.pm +++ b/apps/backup/veeam/local/mode/jobstatus.pm @@ -243,6 +243,8 @@ sub manage_selection { my ($name, $type, $is_running, $result, $start_time, $end_time) = (centreon::plugins::misc::trim($1), centreon::plugins::misc::trim($2), centreon::plugins::misc::trim($3), centreon::plugins::misc::trim($4), centreon::plugins::misc::trim($5), centreon::plugins::misc::trim($6)); + $start_time =~ s/,/\./; + $end_time =~ s/,/\./; if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' && $name !~ /$self->{option_results}->{filter_name}/) { From 67ef5834f886f3331e1d5cfb6407e137d0ab63cb Mon Sep 17 00:00:00 2001 From: Colin GAGNAIRE Date: Thu, 25 Jan 2018 12:02:16 +0100 Subject: [PATCH 71/77] remove extra_instance --- database/mssql/mode/logssize.pm | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/database/mssql/mode/logssize.pm b/database/mssql/mode/logssize.pm index 9087a3b40..469885b0a 100644 --- a/database/mssql/mode/logssize.pm +++ b/database/mssql/mode/logssize.pm @@ -55,15 +55,13 @@ sub custom_usage_perfdata { $label = 'log_' . $self->{result_values}->{display} . '_free'; $value_perf = $self->{result_values}->{free}; } - my $extra_label = ''; - $extra_label = '_' . $self->{result_values}->{display} if (!defined($options{extra_instance}) || $options{extra_instance} != 0); my %total_options = (); if ($instance_mode->{option_results}->{units} eq '%') { $total_options{total} = $self->{result_values}->{total}; $total_options{cast_int} = 1; } - $self->{output}->perfdata_add(label => $label . $extra_label, unit => 'B', + $self->{output}->perfdata_add(label => $label, unit => 'B', value => $value_perf, warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{label}, %total_options), critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{label}, %total_options), From b94cf177cb4b800fb4ea9f64cff93a3c64a0897d Mon Sep 17 00:00:00 2001 From: Colin GAGNAIRE Date: Fri, 26 Jan 2018 14:13:10 +0100 Subject: [PATCH 72/77] fix oracle eventwaitsusage --- database/oracle/mode/eventwaitsusage.pm | 25 +++++++------------------ 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/database/oracle/mode/eventwaitsusage.pm b/database/oracle/mode/eventwaitsusage.pm index 6f312e169..b64ffdaaf 100644 --- a/database/oracle/mode/eventwaitsusage.pm +++ b/database/oracle/mode/eventwaitsusage.pm @@ -38,9 +38,9 @@ sub set_counters { $self->{maps_counters}->{event_count} = [ { label => 'event-count', set => { key_values => [ { name => 'count' } ], - output_template => 'Event Wait Count : %d events' , output_use => 'count_absolute', + output_template => 'Event Wait Count : %s events', perfdatas => [ - { label => 'event_wait_count', value => 'count_absolute', template => '%d', min => 0 } + { label => 'event_wait_count', value => 'count_absolute', template => '%s', min => 0 } ], } }, @@ -80,17 +80,6 @@ sub custom_usage_calc { return 0; } -sub custom_count_calc { - my ($self, %options) = @_; - - $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'}; - - my $delta_total = $options{new_datas}->{$self->{instance} . '_time_waited_micro'} - $options{old_datas}->{$self->{instance} . '_time_waited_micro'}; - $self->{result_values}->{prct_wait} = 100 * ($delta_total / 1000000) / $options{delta_time}; - - return 0; -} - sub new { my ($class, %options) = @_; my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 1); @@ -99,9 +88,9 @@ sub new { $self->{version} = '1.0'; $options{options}->add_options(arguments => { - "filter-name:s" => { name => 'filter_name' }, - "wait-time-min:s" => { name => 'wait_time_min', default => 1000 }, - "show-details" => { name => 'show_details' } + "filter-name:s" => { name => 'filter_name' }, + "wait-time-min:s" => { name => 'wait_time_min', default => 1000 }, + "show-details" => { name => 'show_details' } }); return $self; } @@ -212,12 +201,12 @@ Check Oracle event wait usage. =item B<--warning-*> Threshold warning. -Can be: 'total-waits-sec', 'total-waits-time', 'count'. +Can be: 'total-waits-sec', 'total-waits-time', 'event-count'. =item B<--critical-*> Threshold critical. -Can be: 'total-waits-sec', 'total-waits-time', 'count'. +Can be: 'total-waits-sec', 'total-waits-time', 'event-count'. =item B<--filter-name> From 33521303f18283112eb0390e670f4d1eb2f5c715 Mon Sep 17 00:00:00 2001 From: Fabien THEPAUT Date: Mon, 29 Jan 2018 14:11:11 +0100 Subject: [PATCH 73/77] New Year ! --- apps/activedirectory/local/mode/dcdiag.pm | 2 +- .../activedirectory/local/mode/dfsrbacklog.pm | 2 +- apps/activedirectory/local/mode/netdom.pm | 2 +- apps/activedirectory/local/plugin.pm | 2 +- apps/activedirectory/wsman/mode/dcdiag.pm | 2 +- apps/activedirectory/wsman/plugin.pm | 2 +- .../clamav/local/mode/updatestatus.pm | 2 +- apps/antivirus/clamav/local/plugin.pm | 2 +- apps/apache/serverstatus/mode/cpuload.pm | 2 +- apps/apache/serverstatus/mode/requests.pm | 2 +- apps/apache/serverstatus/mode/responsetime.pm | 2 +- apps/apache/serverstatus/mode/slotstates.pm | 2 +- apps/apache/serverstatus/mode/workers.pm | 2 +- apps/apache/serverstatus/plugin.pm | 2 +- apps/apcupsd/local/mode/batterycharge.pm | 2 +- apps/apcupsd/local/mode/batteryvoltage.pm | 2 +- apps/apcupsd/local/mode/libgetdata.pm | 2 +- apps/apcupsd/local/mode/linefrequency.pm | 2 +- apps/apcupsd/local/mode/linevoltage.pm | 2 +- apps/apcupsd/local/mode/loadpercentage.pm | 2 +- apps/apcupsd/local/mode/outputvoltage.pm | 2 +- apps/apcupsd/local/mode/temperature.pm | 2 +- apps/apcupsd/local/mode/timeleft.pm | 2 +- apps/apcupsd/local/plugin.pm | 2 +- .../netbackup/local/mode/dedupstatus.pm | 2 +- .../netbackup/local/mode/drivecleaning.pm | 2 +- .../netbackup/local/mode/drivestatus.pm | 2 +- apps/backup/netbackup/local/mode/jobstatus.pm | 2 +- .../netbackup/local/mode/listpolicies.pm | 2 +- apps/backup/netbackup/local/mode/tapeusage.pm | 2 +- apps/backup/netbackup/local/plugin.pm | 2 +- apps/backup/quadstor/local/mode/listvtl.pm | 2 +- .../quadstor/local/mode/vtldiskusage.pm | 2 +- .../quadstor/local/mode/vtljobstatus.pm | 2 +- .../quadstor/local/mode/vtltapeusage.pm | 2 +- apps/backup/quadstor/local/plugin.pm | 2 +- apps/backup/tsm/local/custom/api.pm | 2 +- apps/backup/tsm/local/mode/actlog.pm | 430 +++--- apps/backup/tsm/local/mode/drives.pm | 330 ++--- apps/backup/tsm/local/mode/nodes.pm | 226 +-- apps/backup/tsm/local/mode/sessions.pm | 494 +++---- apps/backup/tsm/local/mode/volumes.pm | 386 +++--- apps/backup/tsm/local/plugin.pm | 2 +- apps/backup/veeam/local/mode/jobstatus.pm | 2 +- apps/backup/veeam/local/mode/listjobs.pm | 2 +- apps/backup/veeam/local/plugin.pm | 2 +- apps/biztalk/sql/mode/rlocationdisabled.pm | 2 +- apps/bluemind/mode/incoming.pm | 2 +- apps/bluemind/plugin.pm | 2 +- apps/centreon/local/mode/brokerstats.pm | 2 +- .../local/mode/centreonpluginsversion.pm | 2 +- apps/centreon/local/mode/downtimetrap.pm | 2 +- apps/centreon/local/mode/metaservice.pm | 2 +- apps/centreon/local/mode/retentionbroker.pm | 2 +- apps/centreon/local/plugin.pm | 2 +- apps/centreon/map/jmx/mode/eventqueue.pm | 2 +- apps/centreon/map/jmx/mode/eventstatistics.pm | 2 +- apps/centreon/map/jmx/mode/gates.pm | 2 +- apps/centreon/map/jmx/mode/sessions.pm | 2 +- apps/centreon/map/jmx/plugin.pm | 2 +- apps/centreon/sql/mode/countnotifications.pm | 2 +- apps/centreon/sql/mode/countproblems.pm | 2 +- apps/centreon/sql/mode/countservices.pm | 2 +- apps/centreon/sql/mode/dsmqueue.pm | 2 +- apps/centreon/sql/mode/multiservices.pm | 2 +- apps/centreon/sql/mode/partitioning.pm | 2 +- apps/centreon/sql/mode/pollerdelay.pm | 2 +- apps/centreon/sql/mode/virtualservice.pm | 2 +- apps/checkmyws/mode/status.pm | 2 +- apps/checkmyws/plugin.pm | 2 +- apps/citrix/local/mode/folder.pm | 2 +- apps/citrix/local/mode/license.pm | 2 +- apps/citrix/local/mode/session.pm | 2 +- apps/citrix/local/mode/zone.pm | 2 +- apps/citrix/local/plugin.pm | 2 +- apps/cluster/mscs/local/mode/listnodes.pm | 2 +- apps/cluster/mscs/local/mode/listresources.pm | 2 +- apps/cluster/mscs/local/mode/networkstatus.pm | 2 +- apps/cluster/mscs/local/mode/nodestatus.pm | 2 +- .../mscs/local/mode/resourcegroupstatus.pm | 2 +- .../cluster/mscs/local/mode/resourcestatus.pm | 2 +- apps/cluster/mscs/local/plugin.pm | 2 +- apps/elasticsearch/restapi/custom/api.pm | 2 +- apps/elasticsearch/restapi/mode/cluster.pm | 2 +- apps/elasticsearch/restapi/mode/indices.pm | 2 +- apps/elasticsearch/restapi/mode/nodes.pm | 2 +- apps/elasticsearch/restapi/plugin.pm | 2 +- .../2010/local/mode/activesyncmailbox.pm | 2 +- apps/exchange/2010/local/mode/databases.pm | 2 +- apps/exchange/2010/local/mode/imapmailbox.pm | 2 +- .../exchange/2010/local/mode/listdatabases.pm | 2 +- apps/exchange/2010/local/mode/mapimailbox.pm | 2 +- .../2010/local/mode/outlookwebservices.pm | 2 +- apps/exchange/2010/local/mode/owamailbox.pm | 2 +- apps/exchange/2010/local/mode/queues.pm | 2 +- .../2010/local/mode/replicationhealth.pm | 2 +- apps/exchange/2010/local/mode/services.pm | 2 +- apps/exchange/2010/local/plugin.pm | 2 +- apps/github/mode/commits.pm | 2 +- apps/github/mode/issues.pm | 2 +- apps/github/mode/pullrequests.pm | 2 +- apps/github/mode/stats.pm | 2 +- apps/github/mode/status.pm | 2 +- apps/github/plugin.pm | 2 +- apps/haproxy/snmp/mode/backendusage.pm | 2 +- apps/haproxy/snmp/mode/frontendusage.pm | 2 +- apps/haproxy/snmp/plugin.pm | 2 +- apps/hddtemp/local/mode/temperature.pm | 2 +- apps/hddtemp/local/plugin.pm | 2 +- apps/hddtemp/remote/mode/listdrives.pm | 2 +- apps/hddtemp/remote/mode/temperature.pm | 2 +- apps/hddtemp/remote/plugin.pm | 2 +- apps/hyperv/2012/local/mode/listnodevms.pm | 2 +- .../2012/local/mode/nodeintegrationservice.pm | 2 +- .../hyperv/2012/local/mode/nodereplication.pm | 2 +- apps/hyperv/2012/local/mode/nodesnapshot.pm | 2 +- apps/hyperv/2012/local/mode/nodevmstatus.pm | 2 +- .../local/mode/scvmmintegrationservice.pm | 2 +- apps/hyperv/2012/local/mode/scvmmsnapshot.pm | 2 +- apps/hyperv/2012/local/mode/scvmmvmstatus.pm | 2 +- apps/hyperv/2012/local/plugin.pm | 2 +- apps/iis/local/mode/applicationpoolstate.pm | 2 +- apps/iis/local/mode/listapplicationpools.pm | 2 +- apps/iis/local/mode/listsites.pm | 2 +- apps/iis/local/mode/webservicestatistics.pm | 2 +- apps/iis/local/plugin.pm | 2 +- apps/iis/wsman/mode/applicationpoolstate.pm | 2 +- apps/iis/wsman/mode/listapplicationpools.pm | 2 +- apps/iis/wsman/plugin.pm | 2 +- apps/inin/ig/snmp/mode/spanusage.pm | 2 +- apps/inin/ig/snmp/mode/stats.pm | 2 +- apps/inin/ig/snmp/plugin.pm | 2 +- .../mediaserver/snmp/mode/audioengineusage.pm | 2 +- .../inin/mediaserver/snmp/mode/cmdsrvusage.pm | 2 +- apps/inin/mediaserver/snmp/mode/component.pm | 2 +- apps/inin/mediaserver/snmp/mode/diskusage.pm | 2 +- .../inin/mediaserver/snmp/mode/memoryusage.pm | 2 +- apps/inin/mediaserver/snmp/plugin.pm | 2 +- apps/java/awa/jmx/mode/agent.pm | 2 +- apps/java/awa/jmx/mode/listagents.pm | 2 +- apps/java/awa/jmx/mode/listqueues.pm | 2 +- apps/java/awa/jmx/mode/listservers.pm | 2 +- apps/java/awa/jmx/mode/queue.pm | 2 +- apps/java/awa/jmx/mode/server.pm | 2 +- apps/java/awa/jmx/plugin.pm | 2 +- apps/java/hibernate/jmx/mode/stats.pm | 2 +- apps/java/hibernate/jmx/plugin.pm | 2 +- apps/java/jboss/jmx/mode/datasourceusage.pm | 2 +- apps/java/jboss/jmx/mode/listdatasources.pm | 2 +- apps/java/jboss/jmx/plugin.pm | 2 +- apps/java/peoplesoft/jmx/mode/queuelength.pm | 2 +- apps/java/peoplesoft/jmx/mode/sessions.pm | 2 +- apps/java/peoplesoft/jmx/plugin.pm | 2 +- apps/java/solr/jmx/mode/cacheusage.pm | 2 +- .../java/solr/jmx/mode/requesthandlerusage.pm | 2 +- apps/java/solr/jmx/plugin.pm | 2 +- apps/java/weblogic/jmx/mode/workmanager.pm | 2 +- apps/java/weblogic/jmx/plugin.pm | 2 +- apps/java/zookeeper/jmx/mode/stats.pm | 2 +- apps/java/zookeeper/jmx/plugin.pm | 2 +- apps/jenkins/mode/jobstate.pm | 2 +- apps/jenkins/plugin.pm | 2 +- apps/jive/sql/mode/etljobstatus.pm | 2 +- apps/jmeter/mode/scenario.pm | 2 +- apps/jmeter/plugin.pm | 2 +- apps/kayako/api/mode/listdepartment.pm | 2 +- apps/kayako/api/mode/listpriority.pm | 2 +- apps/kayako/api/mode/liststaff.pm | 2 +- apps/kayako/api/mode/liststatus.pm | 2 +- apps/kayako/api/mode/ticketcount.pm | 2 +- apps/kayako/api/plugin.pm | 2 +- apps/kayako/sql/mode/listdepartment.pm | 2 +- apps/kayako/sql/mode/listpriority.pm | 2 +- apps/kayako/sql/mode/liststaff.pm | 2 +- apps/kayako/sql/mode/liststatus.pm | 2 +- apps/kayako/sql/mode/ticketcount.pm | 2 +- apps/kingdee/eas/custom/api.pm | 2 +- apps/kingdee/eas/mode/activeusers.pm | 2 +- apps/kingdee/eas/mode/classloading.pm | 2 +- apps/kingdee/eas/mode/datasource.pm | 2 +- apps/kingdee/eas/mode/easlicense.pm | 2 +- apps/kingdee/eas/mode/httphandler.pm | 372 ++--- apps/kingdee/eas/mode/ibmjvmgc.pm | 2 +- apps/kingdee/eas/mode/javaruntime.pm | 2 +- apps/kingdee/eas/mode/memory.pm | 644 ++++----- apps/kingdee/eas/mode/muxhandler.pm | 370 ++--- apps/kingdee/eas/mode/oraclejvmgc.pm | 2 +- apps/kingdee/eas/mode/oracleksqltemptable.pm | 2 +- apps/kingdee/eas/mode/oraclerecyclebin.pm | 2 +- apps/kingdee/eas/mode/oracleredolog.pm | 2 +- apps/kingdee/eas/mode/oraclesession.pm | 2 +- apps/kingdee/eas/mode/oracletable.pm | 2 +- apps/kingdee/eas/mode/oracleversion.pm | 2 +- apps/kingdee/eas/mode/ormrpc.pm | 538 ++++---- apps/kingdee/eas/mode/transaction.pm | 2 +- apps/kingdee/eas/plugin.pm | 2 +- apps/lmsensors/mode/fan.pm | 2 +- apps/lmsensors/mode/misc.pm | 2 +- apps/lmsensors/mode/temperature.pm | 2 +- apps/lmsensors/mode/voltage.pm | 2 +- apps/lmsensors/plugin.pm | 2 +- apps/lotus/snmp/mode/mailstate.pm | 2 +- apps/lotus/snmp/mode/mailtime.pm | 2 +- apps/lotus/snmp/mode/serveravailability.pm | 2 +- apps/lotus/snmp/mode/servertransactions.pm | 2 +- apps/lotus/snmp/mode/usersessions.pm | 2 +- apps/lotus/snmp/plugin.pm | 2 +- apps/lync/2013/mssql/mode/appsharingqoe.pm | 2 +- apps/lync/2013/mssql/mode/audioqoe.pm | 2 +- apps/lync/2013/mssql/mode/lyncusers.pm | 2 +- apps/lync/2013/mssql/mode/poorcalls.pm | 2 +- apps/lync/2013/mssql/mode/sessionstypes.pm | 2 +- apps/nginx/serverstatus/mode/connections.pm | 2 +- apps/nginx/serverstatus/mode/requests.pm | 2 +- apps/nginx/serverstatus/mode/responsetime.pm | 2 +- apps/nginx/serverstatus/plugin.pm | 2 +- apps/nsclient/restapi/mode/query.pm | 2 +- apps/nsclient/restapi/plugin.pm | 2 +- apps/pacemaker/local/mode/clustat.pm | 2 +- apps/pacemaker/local/mode/constraints.pm | 2 +- apps/pacemaker/local/mode/crm.pm | 2 +- apps/pacemaker/local/plugin.pm | 2 +- apps/pfsense/snmp/mode/listpfinterfaces.pm | 2 +- apps/pfsense/snmp/mode/packetstats.pm | 2 +- apps/pfsense/snmp/mode/pfinterfaces.pm | 2 +- apps/pfsense/snmp/mode/runtime.pm | 2 +- apps/pfsense/snmp/plugin.pm | 2 +- apps/php/apc/web/mode/filecache.pm | 2 +- apps/php/apc/web/mode/memory.pm | 2 +- apps/php/apc/web/plugin.pm | 2 +- apps/php/fpm/web/mode/usage.pm | 2 +- apps/php/fpm/web/plugin.pm | 2 +- apps/protocols/bgp/4/mode/bgppeerstate.pm | 2 +- apps/protocols/bgp/4/plugin.pm | 2 +- apps/protocols/dhcp/mode/connection.pm | 2 +- apps/protocols/dhcp/plugin.pm | 2 +- apps/protocols/dns/lib/dns.pm | 2 +- apps/protocols/dns/mode/request.pm | 2 +- apps/protocols/dns/plugin.pm | 2 +- apps/protocols/ftp/lib/ftp.pm | 2 +- apps/protocols/ftp/mode/commands.pm | 2 +- apps/protocols/ftp/mode/date.pm | 2 +- apps/protocols/ftp/mode/filescount.pm | 2 +- apps/protocols/ftp/mode/login.pm | 2 +- apps/protocols/ftp/plugin.pm | 2 +- apps/protocols/http/mode/expectedcontent.pm | 2 +- apps/protocols/http/mode/jsoncontent.pm | 2 +- apps/protocols/http/mode/response.pm | 2 +- apps/protocols/http/mode/soapcontent.pm | 2 +- apps/protocols/http/plugin.pm | 2 +- apps/protocols/imap/lib/imap.pm | 2 +- apps/protocols/imap/mode/login.pm | 2 +- apps/protocols/imap/mode/searchmessage.pm | 2 +- apps/protocols/imap/plugin.pm | 2 +- apps/protocols/jmx/mode/listattributes.pm | 2 +- apps/protocols/jmx/mode/numericvalue.pm | 2 +- apps/protocols/jmx/plugin.pm | 2 +- apps/protocols/ldap/lib/ldap.pm | 2 +- apps/protocols/ldap/mode/login.pm | 2 +- apps/protocols/ldap/mode/search.pm | 2 +- apps/protocols/ldap/plugin.pm | 2 +- apps/protocols/modbus/mode/numericvalue.pm | 2 +- apps/protocols/modbus/plugin.pm | 2 +- apps/protocols/ntp/mode/offset.pm | 2 +- apps/protocols/ntp/mode/responsetime.pm | 2 +- apps/protocols/ntp/plugin.pm | 2 +- apps/protocols/ospf/snmp/mode/neighbor.pm | 2 +- apps/protocols/ospf/snmp/plugin.pm | 2 +- apps/protocols/radius/mode/login.pm | 2 +- apps/protocols/radius/plugin.pm | 2 +- apps/protocols/smtp/lib/smtp.pm | 2 +- apps/protocols/smtp/mode/login.pm | 2 +- apps/protocols/smtp/mode/message.pm | 2 +- apps/protocols/smtp/plugin.pm | 2 +- apps/protocols/snmp/plugin.pm | 2 +- apps/protocols/ssh/mode/login.pm | 2 +- apps/protocols/ssh/plugin.pm | 2 +- apps/protocols/tcp/mode/responsetime.pm | 2 +- apps/protocols/tcp/plugin.pm | 2 +- apps/protocols/telnet/mode/scenario.pm | 2 +- apps/protocols/telnet/plugin.pm | 2 +- apps/protocols/udp/mode/connection.pm | 2 +- apps/protocols/udp/plugin.pm | 2 +- apps/protocols/x509/mode/validity.pm | 2 +- apps/protocols/x509/plugin.pm | 2 +- apps/redis/cli/custom/rediscli.pm | 316 ++--- apps/redis/cli/mode/clients.pm | 282 ++-- apps/redis/cli/mode/commands.pm | 234 ++-- apps/redis/cli/mode/connections.pm | 334 ++--- apps/redis/cli/mode/cpu.pm | 338 ++--- apps/redis/cli/mode/memory.pm | 712 +++++----- apps/redis/cli/mode/persistence.pm | 436 +++--- apps/redis/cli/mode/replication.pm | 500 +++---- apps/redis/cli/plugin.pm | 118 +- apps/redis/restapi/custom/api.pm | 490 +++---- apps/redis/restapi/mode/clusterstats.pm | 668 ++++----- apps/redis/restapi/mode/databasesstats.pm | 1220 ++++++++--------- apps/redis/restapi/mode/listdatabases.pm | 198 +-- apps/redis/restapi/mode/listnodes.pm | 188 +-- apps/redis/restapi/mode/listshards.pm | 198 +-- apps/redis/restapi/mode/nodesstats.pm | 890 ++++++------ apps/redis/restapi/mode/shardsstats.pm | 944 ++++++------- apps/redis/restapi/plugin.pm | 108 +- apps/rrdcached/mode/stats.pm | 2 +- apps/rrdcached/plugin.pm | 2 +- apps/selenium/mode/scenario.pm | 2 +- apps/selenium/plugin.pm | 2 +- apps/sendmail/snmp/plugin.pm | 2 +- apps/tomcat/jmx/mode/connectorusage.pm | 2 +- apps/tomcat/jmx/mode/datasourceusage.pm | 2 +- apps/tomcat/jmx/mode/listdatasources.pm | 2 +- apps/tomcat/jmx/mode/listwebapps.pm | 2 +- apps/tomcat/jmx/mode/webappssessions.pm | 2 +- apps/tomcat/jmx/plugin.pm | 2 +- apps/tomcat/web/mode/applications.pm | 2 +- apps/tomcat/web/mode/listapplication.pm | 2 +- apps/tomcat/web/mode/memory.pm | 2 +- apps/tomcat/web/mode/requestinfo.pm | 2 +- apps/tomcat/web/mode/sessions.pm | 2 +- apps/tomcat/web/mode/threads.pm | 2 +- apps/tomcat/web/mode/traffic.pm | 2 +- apps/tomcat/web/plugin.pm | 2 +- .../storemate/sql/mode/maintenanceplan.pm | 428 +++--- apps/toshiba/storemate/sql/mode/posstatus.pm | 2 +- apps/varnish/local/mode/backend.pm | 2 +- apps/varnish/local/mode/bans.pm | 2 +- apps/varnish/local/mode/cache.pm | 2 +- apps/varnish/local/mode/clients.pm | 2 +- apps/varnish/local/mode/connections.pm | 2 +- apps/varnish/local/mode/dns.pm | 2 +- apps/varnish/local/mode/esi.pm | 2 +- apps/varnish/local/mode/fetch.pm | 2 +- apps/varnish/local/mode/hcb.pm | 2 +- apps/varnish/local/mode/n.pm | 2 +- apps/varnish/local/mode/objects.pm | 2 +- apps/varnish/local/mode/sessions.pm | 2 +- apps/varnish/local/mode/shm.pm | 2 +- apps/varnish/local/mode/sms.pm | 2 +- apps/varnish/local/mode/threads.pm | 2 +- apps/varnish/local/mode/totals.pm | 2 +- apps/varnish/local/mode/uptime.pm | 2 +- apps/varnish/local/mode/vcl.pm | 2 +- apps/varnish/local/mode/workers.pm | 2 +- apps/varnish/local/plugin.pm | 2 +- apps/video/openheadend/snmp/mode/nodeusage.pm | 2 +- .../openheadend/snmp/mode/operationstatus.pm | 2 +- apps/video/openheadend/snmp/plugin.pm | 2 +- apps/video/zixi/restapi/custom/api.pm | 2 +- .../restapi/mode/broadcasterinputusage.pm | 2 +- .../restapi/mode/broadcasterlicenseusage.pm | 2 +- .../restapi/mode/broadcasteroutputusage.pm | 2 +- .../restapi/mode/broadcastersystemusage.pm | 2 +- .../zixi/restapi/mode/feederinputusage.pm | 2 +- .../zixi/restapi/mode/feederoutputusage.pm | 2 +- apps/video/zixi/restapi/plugin.pm | 2 +- apps/vmware/connector/custom/connector.pm | 2 +- apps/vmware/connector/mode/alarmdatacenter.pm | 2 +- apps/vmware/connector/mode/alarmhost.pm | 2 +- apps/vmware/connector/mode/countvmhost.pm | 2 +- apps/vmware/connector/mode/cpuhost.pm | 2 +- apps/vmware/connector/mode/cpuvm.pm | 2 +- .../vmware/connector/mode/datastorecountvm.pm | 2 +- apps/vmware/connector/mode/datastorehost.pm | 2 +- apps/vmware/connector/mode/datastoreio.pm | 2 +- apps/vmware/connector/mode/datastoreiops.pm | 2 +- .../connector/mode/datastoresnapshot.pm | 2 +- apps/vmware/connector/mode/datastoreusage.pm | 2 +- apps/vmware/connector/mode/datastorevm.pm | 2 +- apps/vmware/connector/mode/devicevm.pm | 2 +- apps/vmware/connector/mode/getmap.pm | 2 +- apps/vmware/connector/mode/healthhost.pm | 2 +- apps/vmware/connector/mode/limitvm.pm | 2 +- apps/vmware/connector/mode/listclusters.pm | 2 +- apps/vmware/connector/mode/listdatacenters.pm | 2 +- apps/vmware/connector/mode/listdatastores.pm | 2 +- apps/vmware/connector/mode/listnichost.pm | 2 +- apps/vmware/connector/mode/maintenancehost.pm | 2 +- apps/vmware/connector/mode/memoryhost.pm | 2 +- apps/vmware/connector/mode/memoryvm.pm | 2 +- apps/vmware/connector/mode/nethost.pm | 2 +- apps/vmware/connector/mode/servicehost.pm | 2 +- apps/vmware/connector/mode/snapshotvm.pm | 2 +- apps/vmware/connector/mode/statconnectors.pm | 2 +- apps/vmware/connector/mode/statushost.pm | 2 +- apps/vmware/connector/mode/statusvm.pm | 2 +- apps/vmware/connector/mode/swaphost.pm | 2 +- apps/vmware/connector/mode/swapvm.pm | 2 +- .../connector/mode/thinprovisioningvm.pm | 2 +- apps/vmware/connector/mode/timehost.pm | 2 +- apps/vmware/connector/mode/toolsvm.pm | 2 +- apps/vmware/connector/mode/uptimehost.pm | 2 +- .../connector/mode/vmoperationcluster.pm | 2 +- apps/vmware/connector/plugin.pm | 2 +- apps/vmware/wsman/mode/components/cim_card.pm | 2 +- .../mode/components/cim_computersystem.pm | 2 +- .../wsman/mode/components/cim_memory.pm | 2 +- .../mode/components/cim_numericsensor.pm | 2 +- .../wsman/mode/components/cim_processor.pm | 2 +- .../wsman/mode/components/cim_recordlog.pm | 2 +- .../mode/components/omc_discretesensor.pm | 2 +- apps/vmware/wsman/mode/components/omc_fan.pm | 2 +- apps/vmware/wsman/mode/components/omc_psu.pm | 2 +- .../vmware/wsman/mode/components/resources.pm | 2 +- .../wsman/mode/components/vmware_battery.pm | 2 +- .../mode/components/vmware_controller.pm | 2 +- .../mode/components/vmware_sassataport.pm | 2 +- .../mode/components/vmware_storageextent.pm | 2 +- .../mode/components/vmware_storagevolume.pm | 2 +- apps/vmware/wsman/mode/hardware.pm | 2 +- apps/vmware/wsman/plugin.pm | 2 +- apps/voip/asterisk/ami/custom/api.pm | 2 +- apps/voip/asterisk/ami/mode/channelusage.pm | 2 +- apps/voip/asterisk/ami/mode/dahdistatus.pm | 2 +- apps/voip/asterisk/ami/mode/sippeersusage.pm | 2 +- apps/voip/asterisk/ami/plugin.pm | 2 +- apps/voip/asterisk/snmp/mode/channelusage.pm | 2 +- apps/voip/asterisk/snmp/plugin.pm | 2 +- .../cisco/meetingplace/mode/audiolicenses.pm | 2 +- .../cisco/meetingplace/mode/audioports.pm | 2 +- .../cisco/meetingplace/mode/videolicenses.pm | 2 +- .../cisco/meetingplace/mode/videoports.pm | 2 +- apps/voip/cisco/meetingplace/plugin.pm | 2 +- apps/vtom/restapi/custom/api.pm | 2 +- apps/vtom/restapi/mode/jobstatus.pm | 2 +- apps/vtom/restapi/plugin.pm | 2 +- .../tape/snmp/mode/components/component.pm | 2 +- .../adic/tape/snmp/mode/components/fan.pm | 2 +- .../adic/tape/snmp/mode/components/global.pm | 2 +- .../snmp/mode/components/physicaldrive.pm | 2 +- .../tape/snmp/mode/components/subsystem.pm | 2 +- .../tape/snmp/mode/components/temperature.pm | 2 +- .../common/adic/tape/snmp/mode/hardware.pm | 2 +- .../snmp/mode/apchannelinterference.pm | 2 +- .../airespace/snmp/mode/apchannelnoise.pm | 2 +- .../common/airespace/snmp/mode/apstatus.pm | 2 +- .../common/airespace/snmp/mode/apusers.pm | 2 +- .../airespace/snmp/mode/components/psu.pm | 2 +- centreon/common/airespace/snmp/mode/cpu.pm | 2 +- .../common/airespace/snmp/mode/hardware.pm | 2 +- centreon/common/airespace/snmp/mode/memory.pm | 2 +- .../common/aruba/snmp/mode/apconnections.pm | 2 +- centreon/common/aruba/snmp/mode/apusers.pm | 2 +- .../common/aruba/snmp/mode/components/fan.pm | 2 +- .../aruba/snmp/mode/components/module.pm | 2 +- .../common/aruba/snmp/mode/components/psu.pm | 2 +- centreon/common/aruba/snmp/mode/cpu.pm | 2 +- centreon/common/aruba/snmp/mode/hardware.pm | 2 +- centreon/common/aruba/snmp/mode/memory.pm | 2 +- centreon/common/aruba/snmp/mode/storage.pm | 2 +- .../common/bluearc/snmp/mode/clusterstatus.pm | 2 +- .../bluearc/snmp/mode/components/battery.pm | 2 +- .../bluearc/snmp/mode/components/fan.pm | 2 +- .../bluearc/snmp/mode/components/psu.pm | 2 +- .../bluearc/snmp/mode/components/sysdrive.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- centreon/common/bluearc/snmp/mode/hardware.pm | 2 +- .../common/bluearc/snmp/mode/volumeusage.pm | 2 +- .../fastpath/snmp/mode/components/fan.pm | 2 +- .../fastpath/snmp/mode/components/psu.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- .../common/broadcom/fastpath/snmp/mode/cpu.pm | 2 +- .../broadcom/fastpath/snmp/mode/hardware.pm | 2 +- .../broadcom/fastpath/snmp/mode/memory.pm | 2 +- .../smallbusiness/snmp/mode/components/fan.pm | 2 +- .../smallbusiness/snmp/mode/components/psu.pm | 2 +- .../cisco/smallbusiness/snmp/mode/cpu.pm | 2 +- .../smallbusiness/snmp/mode/environment.pm | 2 +- .../standard/snmp/mode/components/fan.pm | 2 +- .../standard/snmp/mode/components/module.pm | 2 +- .../standard/snmp/mode/components/physical.pm | 2 +- .../standard/snmp/mode/components/psu.pm | 2 +- .../standard/snmp/mode/components/sensor.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- .../standard/snmp/mode/components/voltage.pm | 2 +- .../common/cisco/standard/snmp/mode/cpu.pm | 2 +- .../cisco/standard/snmp/mode/environment.pm | 2 +- .../common/cisco/standard/snmp/mode/hsrp.pm | 2 +- .../cisco/standard/snmp/mode/ipsectunnel.pm | 2 +- .../common/cisco/standard/snmp/mode/ipsla.pm | 2 +- .../common/cisco/standard/snmp/mode/memory.pm | 2 +- .../cisco/standard/snmp/mode/memoryflash.pm | 2 +- .../cisco/standard/snmp/mode/qosusage.pm | 2 +- .../cisco/standard/snmp/mode/sessions.pm | 2 +- .../common/cisco/standard/snmp/mode/stack.pm | 2 +- .../dell/fastpath/snmp/mode/components/fan.pm | 2 +- .../dell/fastpath/snmp/mode/components/psu.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- .../common/dell/fastpath/snmp/mode/cpu.pm | 2 +- .../dell/fastpath/snmp/mode/environment.pm | 2 +- .../common/dell/fastpath/snmp/mode/memory.pm | 2 +- .../powerconnect3000/mode/globalstatus.pm | 2 +- .../common/emc/navisphere/custom/custom.pm | 2 +- centreon/common/emc/navisphere/mode/cache.pm | 2 +- .../common/emc/navisphere/mode/controller.pm | 2 +- centreon/common/emc/navisphere/mode/disk.pm | 2 +- centreon/common/emc/navisphere/mode/faults.pm | 2 +- .../common/emc/navisphere/mode/hbastate.pm | 2 +- .../common/emc/navisphere/mode/listluns.pm | 2 +- .../common/emc/navisphere/mode/portstate.pm | 2 +- centreon/common/emc/navisphere/mode/sp.pm | 2 +- .../navisphere/mode/spcomponents/battery.pm | 2 +- .../emc/navisphere/mode/spcomponents/cable.pm | 2 +- .../emc/navisphere/mode/spcomponents/cpu.pm | 2 +- .../emc/navisphere/mode/spcomponents/fan.pm | 2 +- .../navisphere/mode/spcomponents/iomodule.pm | 2 +- .../emc/navisphere/mode/spcomponents/lcc.pm | 2 +- .../navisphere/mode/spcomponents/memory.pm | 2 +- .../emc/navisphere/mode/spcomponents/psu.pm | 2 +- .../emc/navisphere/mode/spcomponents/sp.pm | 2 +- centreon/common/emc/navisphere/mode/spinfo.pm | 2 +- .../force10/snmp/mode/components/fan.pm | 2 +- .../force10/snmp/mode/components/psu.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- centreon/common/force10/snmp/mode/cpu.pm | 2 +- centreon/common/force10/snmp/mode/hardware.pm | 2 +- centreon/common/force10/snmp/mode/memory.pm | 2 +- .../fortinet/fortigate/mode/clusterstatus.pm | 2 +- .../common/fortinet/fortigate/mode/cpu.pm | 2 +- .../common/fortinet/fortigate/mode/disk.pm | 2 +- .../fortinet/fortigate/mode/hardware.pm | 2 +- .../fortinet/fortigate/mode/ipsstats.pm | 2 +- .../fortigate/mode/listvirtualdomains.pm | 2 +- .../common/fortinet/fortigate/mode/memory.pm | 2 +- .../fortinet/fortigate/mode/sessions.pm | 2 +- .../fortinet/fortigate/mode/signatures.pm | 2 +- .../common/fortinet/fortigate/mode/virus.pm | 2 +- .../common/fortinet/fortigate/mode/vpn.pm | 2 +- .../snmp/mode/components/changer.pm | 2 +- .../snmp/mode/components/chassis.pm | 2 +- .../tapelibrary/snmp/mode/components/drive.pm | 2 +- .../tapelibrary/snmp/mode/components/psu.pm | 2 +- .../snmp/mode/components/resources.pm | 2 +- .../ibm/tapelibrary/snmp/mode/hardware.pm | 2 +- .../common/ingrian/snmp/mode/connections.pm | 2 +- centreon/common/ingrian/snmp/mode/cpu.pm | 2 +- centreon/common/ingrian/snmp/mode/disk.pm | 2 +- centreon/common/ingrian/snmp/mode/memory.pm | 2 +- .../common/ingrian/snmp/mode/requeststats.pm | 2 +- centreon/common/jvm/mode/classcount.pm | 2 +- centreon/common/jvm/mode/cpuload.pm | 2 +- centreon/common/jvm/mode/fdusage.pm | 2 +- centreon/common/jvm/mode/gcusage.pm | 2 +- centreon/common/jvm/mode/loadaverage.pm | 2 +- centreon/common/jvm/mode/memory.pm | 2 +- centreon/common/jvm/mode/memorydetailed.pm | 2 +- centreon/common/jvm/mode/threads.pm | 2 +- .../powershell/dell/compellent/hbausage.pm | 2 +- .../powershell/dell/compellent/volumeusage.pm | 2 +- .../exchange/2010/activesyncmailbox.pm | 2 +- .../powershell/exchange/2010/databases.pm | 2 +- .../powershell/exchange/2010/imapmailbox.pm | 2 +- .../powershell/exchange/2010/listdatabases.pm | 2 +- .../powershell/exchange/2010/mapimailbox.pm | 2 +- .../exchange/2010/outlookwebservices.pm | 2 +- .../powershell/exchange/2010/owamailbox.pm | 2 +- .../powershell/exchange/2010/powershell.pm | 2 +- .../common/powershell/exchange/2010/queues.pm | 2 +- .../exchange/2010/replicationhealth.pm | 2 +- .../powershell/exchange/2010/services.pm | 2 +- .../powershell/hyperv/2012/listnodevms.pm | 2 +- .../hyperv/2012/nodeintegrationservice.pm | 2 +- .../powershell/hyperv/2012/nodereplication.pm | 2 +- .../powershell/hyperv/2012/nodesnapshot.pm | 2 +- .../powershell/hyperv/2012/nodevmstatus.pm | 2 +- .../hyperv/2012/scvmmintegrationservice.pm | 2 +- .../powershell/hyperv/2012/scvmmsnapshot.pm | 2 +- .../powershell/hyperv/2012/scvmmvmstatus.pm | 2 +- centreon/common/powershell/veeam/jobstatus.pm | 2 +- centreon/common/powershell/veeam/listjobs.pm | 2 +- .../powershell/windows/pendingreboot.pm | 2 +- .../common/protocols/jmx/custom/jolokia.pm | 2 +- .../common/protocols/modbus/custom/api.pm | 2 +- .../protocols/sql/mode/connectiontime.pm | 2 +- centreon/common/protocols/sql/mode/sql.pm | 2 +- .../common/protocols/sql/mode/sqlstring.pm | 2 +- centreon/common/protocols/ssh/custom/api.pm | 2 +- centreon/common/radlan/mode/cpu.pm | 2 +- centreon/common/radlan/mode/environment.pm | 2 +- centreon/common/smcli/custom/custom.pm | 2 +- centreon/common/smcli/mode/healthstatus.pm | 2 +- .../common/sun/snmp/mode/components/entity.pm | 2 +- centreon/common/sun/snmp/mode/hardware.pm | 2 +- .../common/violin/snmp/mode/components/ca.pm | 2 +- .../common/violin/snmp/mode/components/fan.pm | 2 +- .../common/violin/snmp/mode/components/gfc.pm | 2 +- .../common/violin/snmp/mode/components/lfc.pm | 2 +- .../common/violin/snmp/mode/components/psu.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- .../violin/snmp/mode/components/vimm.pm | 2 +- centreon/common/violin/snmp/mode/hardware.pm | 2 +- .../plugins/alternative/FatPackerOptions.pm | 2 +- centreon/plugins/alternative/Getopt.pm | 2 +- centreon/plugins/dbi.pm | 2 +- centreon/plugins/http.pm | 2 +- centreon/plugins/misc.pm | 2 +- centreon/plugins/mode.pm | 2 +- centreon/plugins/options.pm | 2 +- centreon/plugins/output.pm | 2 +- centreon/plugins/perfdata.pm | 2 +- centreon/plugins/script.pm | 2 +- centreon/plugins/script_custom.pm | 2 +- centreon/plugins/script_simple.pm | 2 +- centreon/plugins/script_snmp.pm | 2 +- centreon/plugins/script_sql.pm | 2 +- centreon/plugins/script_wsman.pm | 2 +- centreon/plugins/snmp.pm | 2 +- centreon/plugins/statefile.pm | 2 +- centreon/plugins/templates/counter.pm | 2 +- centreon/plugins/templates/hardware.pm | 2 +- centreon/plugins/values.pm | 2 +- centreon/plugins/wsman.pm | 2 +- centreon_plugins.pl | 2 +- changelog | 594 ++++---- cloud/aws/custom/awscli.pm | 2 +- cloud/aws/custom/paws.pm | 2 +- cloud/aws/mode/cloudwatchgetalarms.pm | 2 +- cloud/aws/mode/cloudwatchgetmetrics.pm | 2 +- cloud/aws/mode/cloudwatchlistmetrics.pm | 2 +- cloud/aws/mode/ec2instancestatus.pm | 2 +- cloud/aws/mode/rdsinstancestatus.pm | 2 +- cloud/aws/plugin.pm | 2 +- cloud/docker/restapi/custom/api.pm | 2 +- cloud/docker/restapi/mode/containerusage.pm | 2 +- cloud/docker/restapi/mode/listcontainers.pm | 2 +- cloud/docker/restapi/mode/nodestatus.pm | 2 +- cloud/docker/restapi/plugin.pm | 2 +- cloud/nutanix/snmp/mode/clusterusage.pm | 2 +- cloud/nutanix/snmp/mode/containerusage.pm | 2 +- cloud/nutanix/snmp/mode/diskusage.pm | 2 +- cloud/nutanix/snmp/mode/hypervisorusage.pm | 2 +- cloud/nutanix/snmp/mode/listcontainers.pm | 2 +- cloud/nutanix/snmp/mode/listdisks.pm | 2 +- cloud/nutanix/snmp/mode/listhypervisors.pm | 2 +- cloud/nutanix/snmp/mode/liststoragepools.pm | 2 +- cloud/nutanix/snmp/mode/listvms.pm | 2 +- cloud/nutanix/snmp/mode/storagepoolusage.pm | 2 +- cloud/nutanix/snmp/mode/vmusage.pm | 2 +- cloud/nutanix/snmp/plugin.pm | 2 +- cloud/ovh/restapi/custom/api.pm | 2 +- cloud/ovh/restapi/mode/quotausage.pm | 2 +- cloud/ovh/restapi/mode/sms.pm | 2 +- cloud/ovh/restapi/plugin.pm | 2 +- database/firebird/mode/longqueries.pm | 2 +- database/firebird/mode/memory.pm | 2 +- database/firebird/mode/pages.pm | 2 +- database/firebird/mode/queries.pm | 2 +- database/firebird/mode/users.pm | 2 +- database/firebird/plugin.pm | 2 +- database/informix/mode/archivelevel0.pm | 2 +- database/informix/mode/checkpoints.pm | 2 +- database/informix/mode/chunkstates.pm | 2 +- database/informix/mode/dbspacesusage.pm | 2 +- database/informix/mode/globalcache.pm | 2 +- database/informix/mode/listdatabases.pm | 2 +- database/informix/mode/listdbspaces.pm | 2 +- database/informix/mode/lockoverflow.pm | 2 +- database/informix/mode/logfilesusage.pm | 2 +- database/informix/mode/longtxs.pm | 2 +- database/informix/mode/sessions.pm | 2 +- database/informix/mode/tablelocks.pm | 2 +- database/informix/plugin.pm | 2 +- database/mssql/mode/backupage.pm | 2 +- database/mssql/mode/blockedprocesses.pm | 2 +- database/mssql/mode/cachehitratio.pm | 2 +- database/mssql/mode/connectedusers.pm | 2 +- database/mssql/mode/databasessize.pm | 2 +- database/mssql/mode/deadlocks.pm | 2 +- database/mssql/mode/failedjobs.pm | 2 +- database/mssql/mode/lockswaits.pm | 2 +- database/mssql/mode/transactions.pm | 2 +- database/mssql/plugin.pm | 2 +- database/mysql/mode/databasessize.pm | 2 +- .../mysql/mode/innodbbufferpoolhitrate.pm | 2 +- database/mysql/mode/longqueries.pm | 2 +- database/mysql/mode/myisamkeycachehitrate.pm | 2 +- database/mysql/mode/openfiles.pm | 2 +- database/mysql/mode/opentables.pm | 2 +- database/mysql/mode/qcachehitrate.pm | 2 +- database/mysql/mode/queries.pm | 2 +- .../mysql/mode/replicationmastermaster.pm | 2 +- database/mysql/mode/replicationmasterslave.pm | 2 +- database/mysql/mode/slowqueries.pm | 2 +- database/mysql/mode/tablescount.pm | 2 +- database/mysql/mode/tablessize.pm | 2 +- database/mysql/mode/threadsconnected.pm | 2 +- database/mysql/mode/uptime.pm | 2 +- database/mysql/mysqlcmd.pm | 2 +- database/mysql/plugin.pm | 2 +- database/oracle/mode/asmdiskgroupusage.pm | 2 +- database/oracle/mode/connectedusers.pm | 2 +- database/oracle/mode/corruptedblocks.pm | 2 +- database/oracle/mode/datacachehitratio.pm | 2 +- database/oracle/mode/datafilesstatus.pm | 2 +- database/oracle/mode/eventwaitsusage.pm | 2 +- database/oracle/mode/invalidobject.pm | 2 +- database/oracle/mode/longqueries.pm | 2 +- database/oracle/mode/processusage.pm | 2 +- database/oracle/mode/rmanbackupage.pm | 2 +- database/oracle/mode/rmanbackupproblems.pm | 2 +- database/oracle/mode/rmanonlinebackupage.pm | 2 +- database/oracle/mode/rollbacksegmentusage.pm | 2 +- database/oracle/mode/sessionusage.pm | 2 +- database/oracle/mode/tablespaceusage.pm | 2 +- database/oracle/mode/temptablespace.pm | 2 +- database/oracle/mode/tnsping.pm | 2 +- database/oracle/mode/undotablespace.pm | 2 +- database/oracle/plugin.pm | 2 +- database/postgres/mode/backends.pm | 2 +- database/postgres/mode/hitratio.pm | 2 +- database/postgres/mode/listdatabases.pm | 2 +- database/postgres/mode/locks.pm | 2 +- database/postgres/mode/querytime.pm | 2 +- database/postgres/mode/statistics.pm | 2 +- database/postgres/mode/tablespace.pm | 2 +- database/postgres/mode/timesync.pm | 2 +- database/postgres/mode/vacuum.pm | 2 +- database/postgres/plugin.pm | 2 +- database/postgres/psqlcmd.pm | 2 +- database/sap/hana/mode/blockedtransactions.pm | 2 +- database/sap/hana/mode/connectedusers.pm | 2 +- database/sap/hana/mode/diskusage.pm | 2 +- database/sap/hana/mode/hostcpu.pm | 2 +- database/sap/hana/mode/hostmemory.pm | 2 +- database/sap/hana/mode/volumeusage.pm | 2 +- database/sap/hana/plugin.pm | 2 +- database/sybase/mode/blockedprocesses.pm | 2 +- database/sybase/mode/connectedusers.pm | 2 +- database/sybase/mode/databasessize.pm | 2 +- database/sybase/plugin.pm | 2 +- docs/en/developer/guide.rst | 4 +- docs/en/developer/index.rst | 20 +- docs/en/index.rst | 30 +- docs/en/user/index.rst | 20 +- docs/fr/developer/guide.rst | 4 +- docs/fr/developer/index.rst | 20 +- docs/fr/index.rst | 28 +- docs/fr/user/index.rst | 20 +- example/custommode/simple.pm | 2 +- example/mode/getvalue.pm | 2 +- example/mode/launchcmd.pm | 2 +- example/mode/testcustom.pm | 2 +- example/plugin_command.pm | 2 +- example/plugin_custom.pm | 2 +- example/plugin_snmp.pm | 2 +- .../ats/apc/snmp/mode/components/entity.pm | 2 +- hardware/ats/apc/snmp/mode/devicestatus.pm | 2 +- hardware/ats/apc/snmp/mode/inputlines.pm | 2 +- hardware/ats/apc/snmp/mode/outputlines.pm | 2 +- hardware/ats/apc/snmp/plugin.pm | 2 +- .../gorgy/ntpserver/snmp/mode/globalstatus.pm | 2 +- .../devices/gorgy/ntpserver/snmp/plugin.pm | 2 +- .../mode/components/hwstatus.pm | 2 +- .../protecttoolkit/mode/components/memory.pm | 2 +- .../mode/components/temperature.pm | 2 +- .../hsm/protecttoolkit/mode/hardware.pm | 2 +- .../safenet/hsm/protecttoolkit/plugin.pm | 2 +- .../devices/safenet/keysecure/snmp/plugin.pm | 2 +- .../video/appeartv/snmp/mode/alarms.pm | 2 +- .../devices/video/appeartv/snmp/plugin.pm | 2 +- .../acs/6000/snmp/mode/components/psu.pm | 2 +- .../avocent/acs/6000/snmp/mode/hardware.pm | 2 +- hardware/kvm/avocent/acs/6000/snmp/plugin.pm | 2 +- .../pdu/apc/snmp/mode/components/humidity.pm | 2 +- hardware/pdu/apc/snmp/mode/components/psu.pm | 2 +- .../apc/snmp/mode/components/temperature.pm | 2 +- hardware/pdu/apc/snmp/mode/hardware.pm | 2 +- hardware/pdu/apc/snmp/mode/load.pm | 2 +- hardware/pdu/apc/snmp/mode/outlet.pm | 2 +- hardware/pdu/apc/snmp/plugin.pm | 2 +- hardware/pdu/clever/snmp/mode/psusage.pm | 2 +- hardware/pdu/clever/snmp/plugin.pm | 2 +- hardware/pdu/eaton/mode/group.pm | 2 +- hardware/pdu/eaton/mode/outlet.pm | 2 +- hardware/pdu/eaton/plugin.pm | 2 +- .../pdu/emerson/snmp/mode/globalstatus.pm | 2 +- hardware/pdu/emerson/snmp/mode/psusage.pm | 2 +- hardware/pdu/emerson/snmp/mode/rbusage.pm | 2 +- hardware/pdu/emerson/snmp/plugin.pm | 2 +- .../raritan/snmp/mode/components/resources.pm | 2 +- .../raritan/snmp/mode/components/sensor.pm | 2 +- .../pdu/raritan/snmp/mode/inletsensors.pm | 2 +- .../pdu/raritan/snmp/mode/ocprotsensors.pm | 2 +- .../pdu/raritan/snmp/mode/outletsensors.pm | 2 +- hardware/pdu/raritan/snmp/plugin.pm | 2 +- .../standard/rfc3805/mode/coverstatus.pm | 2 +- .../standard/rfc3805/mode/markerimpression.pm | 2 +- .../standard/rfc3805/mode/markersupply.pm | 2 +- .../standard/rfc3805/mode/papertray.pm | 2 +- hardware/printers/standard/rfc3805/plugin.pm | 2 +- .../akcp/snmp/mode/components/humidity.pm | 2 +- .../akcp/snmp/mode/components/resources.pm | 2 +- .../akcp/snmp/mode/components/serial.pm | 2 +- .../akcp/snmp/mode/components/switch.pm | 2 +- .../akcp/snmp/mode/components/temperature.pm | 2 +- .../akcp/snmp/mode/components/water.pm | 2 +- hardware/sensors/akcp/snmp/mode/sensors.pm | 2 +- hardware/sensors/akcp/snmp/plugin.pm | 2 +- .../sensors/comet/p8000/snmp/mode/sensors.pm | 2 +- hardware/sensors/comet/p8000/snmp/plugin.pm | 2 +- .../hwgste/snmp/mode/components/humidity.pm | 2 +- .../hwgste/snmp/mode/components/resources.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- hardware/sensors/hwgste/snmp/mode/sensors.pm | 2 +- hardware/sensors/hwgste/snmp/plugin.pm | 2 +- .../jacarta/snmp/mode/components/humidity.pm | 2 +- .../jacarta/snmp/mode/components/input.pm | 2 +- .../jacarta/snmp/mode/components/resources.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- hardware/sensors/jacarta/snmp/mode/sensors.pm | 2 +- hardware/sensors/jacarta/snmp/plugin.pm | 2 +- .../netbotz/snmp/mode/components/airflow.pm | 2 +- .../netbotz/snmp/mode/components/camera.pm | 2 +- .../netbotz/snmp/mode/components/dewpoint.pm | 2 +- .../snmp/mode/components/doorswitch.pm | 2 +- .../netbotz/snmp/mode/components/humidity.pm | 2 +- .../snmp/mode/components/otherstate.pm | 2 +- .../netbotz/snmp/mode/components/resources.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- hardware/sensors/netbotz/snmp/mode/sensors.pm | 2 +- hardware/sensors/netbotz/snmp/plugin.pm | 2 +- .../sensorip/snmp/mode/components/humidity.pm | 2 +- .../sensorip/snmp/mode/components/sp.pm | 2 +- .../sensorip/snmp/mode/components/switch.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- .../sensors/sensorip/snmp/mode/sensors.pm | 2 +- hardware/sensors/sensorip/snmp/plugin.pm | 2 +- .../sensormetrix/em01/web/mode/contact.pm | 2 +- .../sensormetrix/em01/web/mode/flood.pm | 2 +- .../sensormetrix/em01/web/mode/humidity.pm | 2 +- .../em01/web/mode/illumination.pm | 2 +- .../sensormetrix/em01/web/mode/temperature.pm | 2 +- .../sensormetrix/em01/web/mode/thermistor.pm | 2 +- .../sensormetrix/em01/web/mode/voltage.pm | 2 +- .../sensors/sensormetrix/em01/web/plugin.pm | 2 +- .../snmp/mode/components/sensors.pm | 2 +- .../sensorgateway/snmp/mode/sensors.pm | 2 +- .../serverscheck/sensorgateway/snmp/plugin.pm | 2 +- .../temperhum/local/mode/environment.pm | 2 +- hardware/sensors/temperhum/local/plugin.pm | 2 +- hardware/server/cisco/ucs/mode/auditlogs.pm | 2 +- .../server/cisco/ucs/mode/components/blade.pm | 2 +- .../cisco/ucs/mode/components/chassis.pm | 2 +- .../server/cisco/ucs/mode/components/cpu.pm | 2 +- .../server/cisco/ucs/mode/components/fan.pm | 2 +- .../server/cisco/ucs/mode/components/fex.pm | 2 +- .../cisco/ucs/mode/components/iocard.pm | 2 +- .../cisco/ucs/mode/components/localdisk.pm | 2 +- .../cisco/ucs/mode/components/memory.pm | 2 +- .../server/cisco/ucs/mode/components/psu.pm | 2 +- .../cisco/ucs/mode/components/resources.pm | 2 +- hardware/server/cisco/ucs/mode/equipment.pm | 2 +- hardware/server/cisco/ucs/mode/faults.pm | 2 +- .../server/cisco/ucs/mode/serviceprofile.pm | 2 +- hardware/server/cisco/ucs/plugin.pm | 2 +- .../dell/cmc/snmp/mode/components/chassis.pm | 2 +- .../dell/cmc/snmp/mode/components/health.pm | 2 +- .../dell/cmc/snmp/mode/components/psu.pm | 2 +- .../cmc/snmp/mode/components/temperature.pm | 2 +- .../server/dell/cmc/snmp/mode/hardware.pm | 2 +- hardware/server/dell/cmc/snmp/plugin.pm | 2 +- .../idrac/snmp/mode/components/amperage.pm | 2 +- .../snmp/mode/components/coolingdevice.pm | 2 +- .../idrac/snmp/mode/components/coolingunit.pm | 2 +- .../dell/idrac/snmp/mode/components/fru.pm | 2 +- .../dell/idrac/snmp/mode/components/memory.pm | 2 +- .../idrac/snmp/mode/components/network.pm | 2 +- .../dell/idrac/snmp/mode/components/pci.pm | 2 +- .../dell/idrac/snmp/mode/components/pdisk.pm | 2 +- .../idrac/snmp/mode/components/processor.pm | 2 +- .../dell/idrac/snmp/mode/components/psu.pm | 2 +- .../dell/idrac/snmp/mode/components/punit.pm | 2 +- .../idrac/snmp/mode/components/resources.pm | 2 +- .../dell/idrac/snmp/mode/components/slot.pm | 2 +- .../snmp/mode/components/storagebattery.pm | 2 +- .../idrac/snmp/mode/components/storagectrl.pm | 2 +- .../snmp/mode/components/systembattery.pm | 2 +- .../idrac/snmp/mode/components/temperature.pm | 2 +- .../dell/idrac/snmp/mode/components/vdisk.pm | 2 +- .../idrac/snmp/mode/components/voltage.pm | 2 +- .../dell/idrac/snmp/mode/globalstatus.pm | 2 +- .../server/dell/idrac/snmp/mode/hardware.pm | 2 +- hardware/server/dell/idrac/snmp/plugin.pm | 2 +- .../snmp/mode/components/battery.pm | 2 +- .../snmp/mode/components/cachebattery.pm | 2 +- .../snmp/mode/components/connector.pm | 2 +- .../snmp/mode/components/controller.pm | 2 +- .../openmanage/snmp/mode/components/cpu.pm | 2 +- .../openmanage/snmp/mode/components/esmlog.pm | 2 +- .../openmanage/snmp/mode/components/fan.pm | 2 +- .../snmp/mode/components/globalstatus.pm | 2 +- .../snmp/mode/components/logicaldrive.pm | 2 +- .../openmanage/snmp/mode/components/memory.pm | 2 +- .../snmp/mode/components/physicaldisk.pm | 2 +- .../openmanage/snmp/mode/components/psu.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- .../dell/openmanage/snmp/mode/hardware.pm | 2 +- .../server/dell/openmanage/snmp/plugin.pm | 2 +- .../fujitsu/snmp/mode/components/cpu.pm | 2 +- .../fujitsu/snmp/mode/components/fan.pm | 2 +- .../fujitsu/snmp/mode/components/memory.pm | 2 +- .../fujitsu/snmp/mode/components/psu.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- .../fujitsu/snmp/mode/components/voltage.pm | 2 +- hardware/server/fujitsu/snmp/mode/hardware.pm | 2 +- hardware/server/fujitsu/snmp/plugin.pm | 2 +- .../snmp/mode/components/blade.pm | 2 +- .../snmp/mode/components/enclosure.pm | 2 +- .../bladechassis/snmp/mode/components/fan.pm | 2 +- .../bladechassis/snmp/mode/components/fuse.pm | 2 +- .../snmp/mode/components/manager.pm | 2 +- .../snmp/mode/components/network.pm | 2 +- .../bladechassis/snmp/mode/components/psu.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- .../hp/bladechassis/snmp/mode/hardware.pm | 2 +- .../server/hp/bladechassis/snmp/plugin.pm | 2 +- hardware/server/hp/ilo/xmlapi/custom/api.pm | 2 +- .../hp/ilo/xmlapi/mode/components/battery.pm | 2 +- .../hp/ilo/xmlapi/mode/components/bios.pm | 2 +- .../hp/ilo/xmlapi/mode/components/cpu.pm | 2 +- .../hp/ilo/xmlapi/mode/components/ctrl.pm | 2 +- .../ilo/xmlapi/mode/components/driveencl.pm | 2 +- .../hp/ilo/xmlapi/mode/components/fan.pm | 2 +- .../hp/ilo/xmlapi/mode/components/ldrive.pm | 2 +- .../hp/ilo/xmlapi/mode/components/memory.pm | 2 +- .../hp/ilo/xmlapi/mode/components/nic.pm | 2 +- .../hp/ilo/xmlapi/mode/components/pdrive.pm | 2 +- .../hp/ilo/xmlapi/mode/components/psu.pm | 2 +- .../ilo/xmlapi/mode/components/temperature.pm | 2 +- .../hp/ilo/xmlapi/mode/components/vrm.pm | 2 +- .../server/hp/ilo/xmlapi/mode/hardware.pm | 2 +- hardware/server/hp/ilo/xmlapi/plugin.pm | 2 +- .../hp/proliant/snmp/mode/components/cpu.pm | 2 +- .../hp/proliant/snmp/mode/components/daacc.pm | 2 +- .../hp/proliant/snmp/mode/components/dactl.pm | 2 +- .../proliant/snmp/mode/components/daldrive.pm | 2 +- .../proliant/snmp/mode/components/dapdrive.pm | 2 +- .../hp/proliant/snmp/mode/components/fan.pm | 2 +- .../snmp/mode/components/fcaexternalacc.pm | 2 +- .../snmp/mode/components/fcaexternalctl.pm | 2 +- .../snmp/mode/components/fcahostctl.pm | 2 +- .../snmp/mode/components/fcaldrive.pm | 2 +- .../snmp/mode/components/fcapdrive.pm | 2 +- .../proliant/snmp/mode/components/idectl.pm | 2 +- .../snmp/mode/components/ideldrive.pm | 2 +- .../snmp/mode/components/idepdrive.pm | 2 +- .../hp/proliant/snmp/mode/components/ilo.pm | 2 +- .../hp/proliant/snmp/mode/components/lnic.pm | 2 +- .../hp/proliant/snmp/mode/components/pc.pm | 2 +- .../hp/proliant/snmp/mode/components/pnic.pm | 2 +- .../hp/proliant/snmp/mode/components/psu.pm | 2 +- .../proliant/snmp/mode/components/sasctl.pm | 2 +- .../snmp/mode/components/sasldrive.pm | 2 +- .../snmp/mode/components/saspdrive.pm | 2 +- .../proliant/snmp/mode/components/scsictl.pm | 2 +- .../snmp/mode/components/scsildrive.pm | 2 +- .../snmp/mode/components/scsipdrive.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- .../hp/proliant/snmp/mode/globalstatus.pm | 2 +- .../server/hp/proliant/snmp/mode/hardware.pm | 2 +- hardware/server/hp/proliant/snmp/plugin.pm | 2 +- .../snmp/mode/components/ambient.pm | 2 +- .../bladecenter/snmp/mode/components/blade.pm | 2 +- .../snmp/mode/components/blower.pm | 2 +- .../snmp/mode/components/chassisfan.pm | 2 +- .../snmp/mode/components/chassisstatus.pm | 2 +- .../snmp/mode/components/fanpack.pm | 2 +- .../snmp/mode/components/powermodule.pm | 2 +- .../snmp/mode/components/switchmodule.pm | 2 +- .../snmp/mode/components/systemhealth.pm | 2 +- .../ibm/bladecenter/snmp/mode/hardware.pm | 2 +- .../server/ibm/bladecenter/snmp/plugin.pm | 2 +- .../server/ibm/hmc/ssh/mode/hardwareerrors.pm | 2 +- hardware/server/ibm/hmc/ssh/mode/ledstatus.pm | 2 +- hardware/server/ibm/hmc/ssh/plugin.pm | 2 +- .../imm/snmp/mode/components/fan.pm | 2 +- .../imm/snmp/mode/components/global.pm | 2 +- .../imm/snmp/mode/components/temperature.pm | 2 +- .../imm/snmp/mode/components/voltage.pm | 2 +- .../mgmt_cards/imm/snmp/mode/environment.pm | 2 +- .../ibm/mgmt_cards/imm/snmp/mode/eventlog.pm | 2 +- .../server/ibm/mgmt_cards/imm/snmp/plugin.pm | 2 +- .../components/showenvironment/disk.pm | 2 +- .../components/showenvironment/fan.pm | 2 +- .../components/showenvironment/psu.pm | 2 +- .../components/showenvironment/resources.pm | 2 +- .../components/showenvironment/sensors.pm | 2 +- .../components/showenvironment/si.pm | 2 +- .../components/showenvironment/temperature.pm | 2 +- .../components/showenvironment/voltage.pm | 2 +- hardware/server/sun/mgmt_cards/lib/telnet.pm | 2 +- .../sun/mgmt_cards/mode/environmentsf2xx.pm | 2 +- .../sun/mgmt_cards/mode/environmentv4xx.pm | 2 +- .../sun/mgmt_cards/mode/environmentv8xx.pm | 2 +- .../server/sun/mgmt_cards/mode/showboards.pm | 2 +- .../sun/mgmt_cards/mode/showenvironment.pm | 2 +- .../server/sun/mgmt_cards/mode/showfaults.pm | 2 +- .../server/sun/mgmt_cards/mode/showfaulty.pm | 2 +- .../server/sun/mgmt_cards/mode/showstatus.pm | 2 +- hardware/server/sun/mgmt_cards/plugin.pm | 2 +- hardware/server/sun/mseries/mode/domains.pm | 2 +- hardware/server/sun/mseries/mode/hardware.pm | 2 +- hardware/server/sun/mseries/plugin.pm | 2 +- hardware/server/sun/sfxxk/mode/boards.pm | 2 +- hardware/server/sun/sfxxk/mode/environment.pm | 2 +- hardware/server/sun/sfxxk/mode/failover.pm | 2 +- hardware/server/sun/sfxxk/plugin.pm | 2 +- .../server/supermicro/snmp/mode/hardware.pm | 2 +- hardware/server/supermicro/snmp/plugin.pm | 2 +- hardware/ups/alpha/snmp/mode/alarms.pm | 2 +- hardware/ups/alpha/snmp/mode/batterystatus.pm | 2 +- hardware/ups/apc/snmp/mode/batterystatus.pm | 2 +- hardware/ups/apc/snmp/mode/outputlines.pm | 2 +- hardware/ups/apc/snmp/mode/sensors.pm | 2 +- hardware/ups/mge/snmp/mode/batterystatus.pm | 2 +- hardware/ups/mge/snmp/mode/environment.pm | 2 +- hardware/ups/mge/snmp/mode/inputlines.pm | 2 +- hardware/ups/mge/snmp/mode/outputlines.pm | 2 +- hardware/ups/mge/snmp/mode/outputsource.pm | 2 +- hardware/ups/mge/snmp/plugin.pm | 2 +- hardware/ups/powerware/snmp/mode/alarms.pm | 2 +- .../ups/powerware/snmp/mode/batterystatus.pm | 2 +- .../ups/powerware/snmp/mode/environment.pm | 2 +- .../ups/powerware/snmp/mode/inputlines.pm | 2 +- .../ups/powerware/snmp/mode/outputlines.pm | 2 +- .../ups/powerware/snmp/mode/outputsource.pm | 2 +- hardware/ups/powerware/snmp/plugin.pm | 2 +- .../ups/standard/rfc1628/snmp/mode/alarms.pm | 2 +- .../rfc1628/snmp/mode/batterystatus.pm | 2 +- .../standard/rfc1628/snmp/mode/inputlines.pm | 2 +- .../standard/rfc1628/snmp/mode/outputlines.pm | 2 +- .../rfc1628/snmp/mode/outputsource.pm | 2 +- hardware/ups/standard/rfc1628/snmp/plugin.pm | 2 +- network/3com/snmp/mode/components/fan.pm | 2 +- network/3com/snmp/mode/components/psu.pm | 2 +- network/3com/snmp/mode/cpu.pm | 2 +- network/3com/snmp/mode/hardware.pm | 2 +- network/3com/snmp/mode/memory.pm | 2 +- network/3com/snmp/plugin.pm | 2 +- network/a10/ax/snmp/mode/cpu.pm | 2 +- network/a10/ax/snmp/mode/disk.pm | 2 +- network/a10/ax/snmp/mode/globalstats.pm | 2 +- network/a10/ax/snmp/mode/hardware.pm | 2 +- network/a10/ax/snmp/mode/listvservers.pm | 2 +- network/a10/ax/snmp/mode/memory.pm | 2 +- network/a10/ax/snmp/mode/vserverusage.pm | 2 +- network/a10/ax/snmp/plugin.pm | 2 +- .../acmepacket/snmp/mode/components/fan.pm | 2 +- .../acmepacket/snmp/mode/components/psu.pm | 2 +- .../snmp/mode/components/resources.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- .../snmp/mode/components/voltage.pm | 2 +- network/acmepacket/snmp/mode/hardware.pm | 2 +- network/acmepacket/snmp/mode/listrealm.pm | 2 +- network/acmepacket/snmp/mode/listsip.pm | 2 +- network/acmepacket/snmp/mode/realmusage.pm | 2 +- network/acmepacket/snmp/mode/sipusage.pm | 2 +- network/acmepacket/snmp/mode/systemusage.pm | 2 +- network/acmepacket/snmp/plugin.pm | 2 +- network/adva/fsp3000/snmp/mode/alarms.pm | 2 +- network/adva/fsp3000/snmp/mode/interfaces.pm | 2 +- .../adva/fsp3000/snmp/mode/listinterfaces.pm | 2 +- network/adva/fsp3000/snmp/plugin.pm | 2 +- network/aerohive/snmp/mode/connectedusers.pm | 2 +- network/aerohive/snmp/plugin.pm | 2 +- .../snmp/mode/components/cardtemperature.pm | 2 +- .../isam/snmp/mode/components/resources.pm | 2 +- .../alcatel/isam/snmp/mode/components/sfp.pm | 2 +- network/alcatel/isam/snmp/mode/cpu.pm | 2 +- network/alcatel/isam/snmp/mode/hardware.pm | 2 +- network/alcatel/isam/snmp/mode/hubsapusage.pm | 2 +- network/alcatel/isam/snmp/mode/listhubsap.pm | 2 +- network/alcatel/isam/snmp/mode/memory.pm | 2 +- network/alcatel/isam/snmp/plugin.pm | 2 +- .../snmp/mode/components/backplane.pm | 2 +- .../snmp/mode/components/chassis.pm | 2 +- .../snmp/mode/components/container.pm | 2 +- .../omniswitch/snmp/mode/components/fan.pm | 2 +- .../omniswitch/snmp/mode/components/module.pm | 2 +- .../omniswitch/snmp/mode/components/other.pm | 2 +- .../omniswitch/snmp/mode/components/port.pm | 2 +- .../omniswitch/snmp/mode/components/psu.pm | 2 +- .../snmp/mode/components/resources.pm | 2 +- .../omniswitch/snmp/mode/components/sensor.pm | 2 +- .../omniswitch/snmp/mode/components/stack.pm | 2 +- .../snmp/mode/components/unknown.pm | 2 +- network/alcatel/omniswitch/snmp/mode/cpu.pm | 2 +- .../omniswitch/snmp/mode/flashmemory.pm | 2 +- .../alcatel/omniswitch/snmp/mode/hardware.pm | 2 +- .../alcatel/omniswitch/snmp/mode/memory.pm | 2 +- network/alcatel/omniswitch/snmp/plugin.pm | 2 +- network/alcatel/oxe/snmp/mode/domainusage.pm | 2 +- network/alcatel/oxe/snmp/mode/pbxrole.pm | 2 +- network/alcatel/oxe/snmp/mode/pbxstate.pm | 2 +- network/alcatel/oxe/snmp/plugin.pm | 2 +- network/alcatel/pss/1830/snmp/mode/listsap.pm | 2 +- .../alcatel/pss/1830/snmp/mode/sapqosstats.pm | 2 +- network/alcatel/pss/1830/snmp/plugin.pm | 2 +- network/arista/snmp/mode/memory.pm | 2 +- network/arista/snmp/plugin.pm | 2 +- network/arkoon/plugin.pm | 2 +- network/aruba/standard/snmp/plugin.pm | 2 +- network/atrica/snmp/mode/connections.pm | 2 +- network/atrica/snmp/mode/listconnections.pm | 2 +- network/atrica/snmp/plugin.pm | 2 +- .../snmp/mode/components/fantray.pm | 2 +- .../audiocodes/snmp/mode/components/module.pm | 2 +- .../audiocodes/snmp/mode/components/psu.pm | 2 +- network/audiocodes/snmp/mode/cpu.pm | 2 +- network/audiocodes/snmp/mode/hardware.pm | 2 +- network/audiocodes/snmp/mode/listtrunks.pm | 2 +- network/audiocodes/snmp/mode/memory.pm | 2 +- network/audiocodes/snmp/mode/trunkstatus.pm | 2 +- network/audiocodes/snmp/plugin.pm | 2 +- network/beeware/snmp/mode/listreverseproxy.pm | 2 +- .../beeware/snmp/mode/reverseproxyusage.pm | 2 +- network/beeware/snmp/plugin.pm | 2 +- .../bluecoat/snmp/mode/clientconnections.pm | 2 +- network/bluecoat/snmp/mode/clientrequests.pm | 2 +- network/bluecoat/snmp/mode/clienttraffic.pm | 2 +- network/bluecoat/snmp/mode/components/disk.pm | 2 +- .../bluecoat/snmp/mode/components/sensor.pm | 2 +- network/bluecoat/snmp/mode/cpu.pm | 2 +- network/bluecoat/snmp/mode/disk.pm | 2 +- network/bluecoat/snmp/mode/hardware.pm | 2 +- network/bluecoat/snmp/mode/memory.pm | 2 +- .../bluecoat/snmp/mode/serverconnections.pm | 2 +- network/bluecoat/snmp/plugin.pm | 2 +- network/brocade/snmp/mode/cpu.pm | 2 +- network/brocade/snmp/mode/hardware.pm | 2 +- network/brocade/snmp/mode/memory.pm | 2 +- network/brocade/snmp/plugin.pm | 2 +- .../checkpoint/snmp/mode/components/fan.pm | 2 +- .../checkpoint/snmp/mode/components/psu.pm | 2 +- .../snmp/mode/components/raiddisk.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- .../snmp/mode/components/voltage.pm | 2 +- network/checkpoint/snmp/mode/connections.pm | 2 +- network/checkpoint/snmp/mode/cpu.pm | 2 +- network/checkpoint/snmp/mode/hardware.pm | 2 +- network/checkpoint/snmp/mode/hastate.pm | 2 +- network/checkpoint/snmp/mode/memory.pm | 2 +- network/checkpoint/snmp/mode/vpnstatus.pm | 2 +- network/checkpoint/snmp/plugin.pm | 2 +- network/cisco/WaaS/mode/sessions.pm | 2 +- network/cisco/WaaS/plugin.pm | 2 +- network/cisco/asa/snmp/mode/failover.pm | 2 +- network/cisco/asa/snmp/plugin.pm | 2 +- .../cisco/callmanager/snmp/mode/ccmusage.pm | 2 +- .../callmanager/snmp/mode/gatewayusage.pm | 2 +- .../callmanager/snmp/mode/mediadeviceusage.pm | 2 +- .../cisco/callmanager/snmp/mode/phoneusage.pm | 2 +- network/cisco/callmanager/snmp/plugin.pm | 2 +- .../ironport/snmp/mode/components/fan.pm | 2 +- .../ironport/snmp/mode/components/psu.pm | 2 +- .../ironport/snmp/mode/components/raid.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- network/cisco/ironport/snmp/mode/cpu.pm | 2 +- network/cisco/ironport/snmp/mode/hardware.pm | 2 +- .../cisco/ironport/snmp/mode/keysexpire.pm | 2 +- network/cisco/ironport/snmp/mode/memory.pm | 2 +- network/cisco/ironport/snmp/plugin.pm | 2 +- .../cloudcontroller/snmp/mode/deviceusage.pm | 2 +- .../meraki/cloudcontroller/snmp/plugin.pm | 2 +- network/cisco/prime/restapi/custom/api.pm | 2 +- network/cisco/prime/restapi/mode/apusage.pm | 2 +- network/cisco/prime/restapi/plugin.pm | 2 +- .../smallbusiness/standard/snmp/plugin.pm | 2 +- network/cisco/standard/snmp/plugin.pm | 2 +- network/cisco/vg/snmp/plugin.pm | 2 +- network/cisco/wlc/snmp/plugin.pm | 2 +- .../citrix/appacceleration/snmp/mode/cpu.pm | 2 +- .../snmp/mode/listserviceclass.pm | 2 +- .../snmp/mode/serviceclassusage.pm | 2 +- network/citrix/appacceleration/snmp/plugin.pm | 2 +- .../netscaler/snmp/mode/certificatesexpire.pm | 2 +- .../snmp/mode/components/fanspeed.pm | 2 +- .../netscaler/snmp/mode/components/psu.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- .../netscaler/snmp/mode/components/voltage.pm | 2 +- .../citrix/netscaler/snmp/mode/connections.pm | 2 +- network/citrix/netscaler/snmp/mode/cpu.pm | 2 +- network/citrix/netscaler/snmp/mode/hastate.pm | 2 +- network/citrix/netscaler/snmp/mode/health.pm | 2 +- .../netscaler/snmp/mode/listvservers.pm | 2 +- network/citrix/netscaler/snmp/mode/memory.pm | 2 +- network/citrix/netscaler/snmp/mode/storage.pm | 2 +- .../netscaler/snmp/mode/vserverstatus.pm | 2 +- network/citrix/netscaler/snmp/plugin.pm | 2 +- network/citrix/sdx/snmp/mode/diskusage.pm | 2 +- network/citrix/sdx/snmp/mode/hardware.pm | 2 +- network/citrix/sdx/snmp/mode/srusage.pm | 2 +- network/citrix/sdx/snmp/mode/xenusage.pm | 2 +- network/citrix/sdx/snmp/plugin.pm | 2 +- network/colubris/snmp/mode/apusage.pm | 2 +- network/colubris/snmp/mode/cpu.pm | 2 +- network/colubris/snmp/mode/load.pm | 2 +- network/colubris/snmp/mode/memory.pm | 2 +- network/colubris/snmp/mode/storage.pm | 2 +- network/colubris/snmp/plugin.pm | 2 +- .../cyberoam/snmp/mode/components/service.pm | 2 +- network/cyberoam/snmp/mode/cpu.pm | 2 +- network/cyberoam/snmp/mode/memory.pm | 2 +- network/cyberoam/snmp/mode/requests.pm | 2 +- network/cyberoam/snmp/mode/services.pm | 2 +- network/cyberoam/snmp/mode/storage.pm | 2 +- network/cyberoam/snmp/plugin.pm | 2 +- network/dell/6200/snmp/plugin.pm | 2 +- network/dell/n4000/snmp/plugin.pm | 2 +- network/dell/sseries/snmp/plugin.pm | 2 +- network/digi/anywhereusb/snmp/mode/cpu.pm | 2 +- network/digi/anywhereusb/snmp/mode/memory.pm | 2 +- network/digi/anywhereusb/snmp/plugin.pm | 2 +- network/digi/portserverts/snmp/mode/cpu.pm | 2 +- network/digi/portserverts/snmp/mode/memory.pm | 2 +- network/digi/portserverts/snmp/plugin.pm | 2 +- network/digi/sarian/snmp/mode/cpu.pm | 2 +- network/digi/sarian/snmp/mode/gprs.pm | 2 +- network/digi/sarian/snmp/mode/memory.pm | 2 +- network/digi/sarian/snmp/mode/temperature.pm | 2 +- network/digi/sarian/snmp/plugin.pm | 2 +- .../dlink/dgs3100/snmp/mode/components/fan.pm | 2 +- .../dlink/dgs3100/snmp/mode/components/psu.pm | 2 +- network/dlink/dgs3100/snmp/mode/cpu.pm | 2 +- network/dlink/dgs3100/snmp/mode/hardware.pm | 2 +- network/dlink/dgs3100/snmp/plugin.pm | 2 +- .../standard/snmp/mode/components/fan.pm | 2 +- .../standard/snmp/mode/components/psu.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- network/dlink/standard/snmp/mode/cpu.pm | 2 +- network/dlink/standard/snmp/mode/hardware.pm | 2 +- network/dlink/standard/snmp/plugin.pm | 2 +- network/efficientip/snmp/mode/dhcpusage.pm | 2 +- network/efficientip/snmp/mode/dnsusage.pm | 2 +- network/efficientip/snmp/plugin.pm | 2 +- .../evertz/AEA47721/snmp/mode/streamstatus.pm | 2 +- network/evertz/AEA47721/snmp/plugin.pm | 2 +- .../DA6HDL7700/snmp/mode/videostatus.pm | 2 +- network/evertz/DA6HDL7700/snmp/plugin.pm | 2 +- network/evertz/FC7800/snmp/mode/hardware.pm | 2 +- network/evertz/FC7800/snmp/plugin.pm | 2 +- network/extreme/snmp/mode/components/fan.pm | 2 +- network/extreme/snmp/mode/components/poe.pm | 2 +- network/extreme/snmp/mode/components/psu.pm | 2 +- network/extreme/snmp/mode/components/slot.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- network/extreme/snmp/mode/cpu.pm | 2 +- network/extreme/snmp/mode/hardware.pm | 2 +- network/extreme/snmp/mode/memory.pm | 2 +- network/extreme/snmp/mode/stack.pm | 2 +- network/extreme/snmp/plugin.pm | 2 +- network/f5/bigip/snmp/mode/components/fan.pm | 2 +- network/f5/bigip/snmp/mode/components/psu.pm | 2 +- .../bigip/snmp/mode/components/temperature.pm | 2 +- network/f5/bigip/snmp/mode/connections.pm | 2 +- network/f5/bigip/snmp/mode/failover.pm | 2 +- network/f5/bigip/snmp/mode/hardware.pm | 2 +- network/f5/bigip/snmp/mode/listnodes.pm | 2 +- network/f5/bigip/snmp/mode/listpools.pm | 2 +- .../f5/bigip/snmp/mode/listvirtualservers.pm | 2 +- network/f5/bigip/snmp/mode/nodestatus.pm | 2 +- network/f5/bigip/snmp/mode/poolstatus.pm | 2 +- network/f5/bigip/snmp/mode/tmmusage.pm | 2 +- .../f5/bigip/snmp/mode/virtualserverstatus.pm | 2 +- network/f5/bigip/snmp/plugin.pm | 2 +- network/fortinet/fortigate/plugin.pm | 2 +- .../fortinet/fortimanager/snmp/mode/cpu.pm | 2 +- .../fortimanager/snmp/mode/devicestatus.pm | 2 +- .../fortinet/fortimanager/snmp/mode/disk.pm | 2 +- .../fortinet/fortimanager/snmp/mode/memory.pm | 2 +- network/fortinet/fortimanager/snmp/plugin.pm | 2 +- network/freebox/restapi/custom/api.pm | 2 +- network/freebox/restapi/mode/dslusage.pm | 2 +- network/freebox/restapi/mode/netusage.pm | 2 +- network/freebox/restapi/mode/system.pm | 2 +- network/freebox/restapi/plugin.pm | 2 +- network/fritzbox/mode/libgetdata.pm | 2 +- network/fritzbox/mode/traffic.pm | 2 +- network/fritzbox/mode/upstatus.pm | 2 +- network/fritzbox/plugin.pm | 2 +- network/h3c/snmp/mode/components/default.pm | 2 +- network/h3c/snmp/mode/components/fan.pm | 2 +- network/h3c/snmp/mode/components/psu.pm | 2 +- network/h3c/snmp/mode/components/sensor.pm | 2 +- network/h3c/snmp/mode/cpu.pm | 2 +- network/h3c/snmp/mode/hardware.pm | 2 +- network/h3c/snmp/mode/memory.pm | 2 +- network/h3c/snmp/plugin.pm | 2 +- .../standard/snmp/mode/components/fan.pm | 2 +- .../standard/snmp/mode/components/led.pm | 2 +- .../standard/snmp/mode/components/psu.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- network/hirschmann/standard/snmp/mode/cpu.pm | 2 +- .../hirschmann/standard/snmp/mode/hardware.pm | 2 +- .../hirschmann/standard/snmp/mode/memory.pm | 2 +- .../standard/snmp/mode/processcount.pm | 2 +- network/hirschmann/standard/snmp/plugin.pm | 2 +- .../hp/procurve/snmp/mode/components/fan.pm | 2 +- .../hp/procurve/snmp/mode/components/psu.pm | 2 +- .../procurve/snmp/mode/components/sensor.pm | 2 +- network/hp/procurve/snmp/mode/cpu.pm | 2 +- network/hp/procurve/snmp/mode/environment.pm | 2 +- network/hp/procurve/snmp/mode/memory.pm | 2 +- network/hp/procurve/snmp/plugin.pm | 2 +- network/hp/vc/snmp/mode/components/domain.pm | 2 +- .../hp/vc/snmp/mode/components/enclosure.pm | 2 +- network/hp/vc/snmp/mode/components/enet.pm | 2 +- network/hp/vc/snmp/mode/components/fc.pm | 2 +- network/hp/vc/snmp/mode/components/module.pm | 2 +- .../hp/vc/snmp/mode/components/moduleport.pm | 2 +- .../vc/snmp/mode/components/physicalserver.pm | 2 +- network/hp/vc/snmp/mode/components/port.pm | 2 +- network/hp/vc/snmp/mode/components/profile.pm | 2 +- .../hp/vc/snmp/mode/components/resources.pm | 2 +- network/hp/vc/snmp/mode/hardware.pm | 2 +- network/hp/vc/snmp/plugin.pm | 2 +- network/huawei/snmp/mode/cpu.pm | 2 +- network/huawei/snmp/mode/memory.pm | 2 +- network/huawei/snmp/plugin.pm | 2 +- network/infoblox/snmp/mode/cpu.pm | 2 +- network/infoblox/snmp/mode/dhcpusage.pm | 2 +- network/infoblox/snmp/mode/dnsusage.pm | 2 +- network/infoblox/snmp/mode/memory.pm | 2 +- network/infoblox/snmp/mode/services.pm | 2 +- network/infoblox/snmp/plugin.pm | 2 +- network/juniper/common/ive/mode/cpu.pm | 2 +- network/juniper/common/ive/mode/disk.pm | 2 +- network/juniper/common/ive/mode/logfile.pm | 2 +- network/juniper/common/ive/mode/users.pm | 2 +- .../common/junos/mode/components/fru.pm | 2 +- .../common/junos/mode/components/operating.pm | 2 +- .../juniper/common/junos/mode/cpsessions.pm | 2 +- .../common/junos/mode/cpuforwarding.pm | 2 +- .../juniper/common/junos/mode/cpurouting.pm | 2 +- .../juniper/common/junos/mode/flowsessions.pm | 2 +- network/juniper/common/junos/mode/hardware.pm | 2 +- .../common/junos/mode/memoryforwarding.pm | 2 +- .../common/junos/mode/memoryrouting.pm | 2 +- .../screenos/snmp/mode/components/fan.pm | 2 +- .../screenos/snmp/mode/components/module.pm | 2 +- .../screenos/snmp/mode/components/psu.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- .../juniper/common/screenos/snmp/mode/cpu.pm | 2 +- .../common/screenos/snmp/mode/hardware.pm | 2 +- .../common/screenos/snmp/mode/memory.pm | 2 +- .../common/screenos/snmp/mode/sessions.pm | 2 +- network/juniper/ex/plugin.pm | 2 +- network/juniper/ggsn/mode/apnstats.pm | 2 +- network/juniper/ggsn/mode/globalstats.pm | 2 +- network/juniper/ggsn/plugin.pm | 2 +- network/juniper/isg/snmp/plugin.pm | 2 +- network/juniper/mag/mode/bladetemperature.pm | 2 +- network/juniper/mag/plugin.pm | 2 +- network/juniper/mseries/plugin.pm | 2 +- network/juniper/sa/plugin.pm | 2 +- network/juniper/srx/plugin.pm | 2 +- network/juniper/ssg/snmp/plugin.pm | 2 +- network/kemp/snmp/mode/hastatus.pm | 2 +- network/kemp/snmp/mode/listvs.pm | 2 +- network/kemp/snmp/mode/rsstatus.pm | 2 +- network/kemp/snmp/mode/vsstatus.pm | 2 +- network/kemp/snmp/plugin.pm | 2 +- .../mseries/snmp/mode/components/fan.pm | 2 +- .../mseries/snmp/mode/components/psu.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- network/netgear/mseries/snmp/mode/cpu.pm | 2 +- network/netgear/mseries/snmp/mode/hardware.pm | 2 +- network/netgear/mseries/snmp/mode/memory.pm | 2 +- network/netgear/mseries/snmp/plugin.pm | 2 +- network/nokia/timos/snmp/mode/bgpusage.pm | 2 +- network/nokia/timos/snmp/mode/cpu.pm | 2 +- network/nokia/timos/snmp/mode/hardware.pm | 2 +- network/nokia/timos/snmp/mode/isisusage.pm | 2 +- network/nokia/timos/snmp/mode/l2tpusage.pm | 2 +- network/nokia/timos/snmp/mode/ldpusage.pm | 2 +- network/nokia/timos/snmp/mode/listbgp.pm | 2 +- network/nokia/timos/snmp/mode/listisis.pm | 2 +- network/nokia/timos/snmp/mode/listldp.pm | 2 +- network/nokia/timos/snmp/mode/listsap.pm | 2 +- network/nokia/timos/snmp/mode/listvrtr.pm | 2 +- network/nokia/timos/snmp/mode/memory.pm | 2 +- network/nokia/timos/snmp/mode/sapusage.pm | 2 +- network/nokia/timos/snmp/plugin.pm | 2 +- .../standard/snmp/mode/components/card.pm | 2 +- .../standard/snmp/mode/components/entity.pm | 2 +- .../standard/snmp/mode/components/fan.pm | 2 +- .../standard/snmp/mode/components/psu.pm | 2 +- .../snmp/mode/components/resources.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- network/nortel/standard/snmp/mode/cpu.pm | 2 +- network/nortel/standard/snmp/mode/hardware.pm | 2 +- network/nortel/standard/snmp/mode/memory.pm | 2 +- network/nortel/standard/snmp/plugin.pm | 2 +- network/oneaccess/snmp/mode/cpu.pm | 2 +- network/oneaccess/snmp/mode/memory.pm | 2 +- network/oneaccess/snmp/plugin.pm | 2 +- .../infiniband/snmp/mode/infinibandusage.pm | 2 +- .../infiniband/snmp/mode/listinfinibands.pm | 2 +- network/oracle/infiniband/snmp/plugin.pm | 2 +- network/oracle/otd/snmp/mode/listvservers.pm | 2 +- network/oracle/otd/snmp/mode/vserverusage.pm | 2 +- network/oracle/otd/snmp/plugin.pm | 2 +- network/paloalto/snmp/mode/clusterstatus.pm | 2 +- network/paloalto/snmp/mode/memory.pm | 2 +- network/paloalto/snmp/mode/panorama.pm | 2 +- network/paloalto/snmp/mode/sessions.pm | 2 +- network/paloalto/snmp/plugin.pm | 2 +- .../polycom/rmx/snmp/mode/components/board.pm | 2 +- .../polycom/rmx/snmp/mode/components/fan.pm | 2 +- .../polycom/rmx/snmp/mode/components/psu.pm | 2 +- network/polycom/rmx/snmp/mode/hardware.pm | 2 +- .../rmx/snmp/mode/videoconferencingusage.pm | 2 +- network/polycom/rmx/snmp/plugin.pm | 2 +- network/radware/alteon/snmp/mode/cpu.pm | 2 +- network/radware/alteon/snmp/mode/hardware.pm | 2 +- .../radware/alteon/snmp/mode/listvservers.pm | 2 +- network/radware/alteon/snmp/mode/memory.pm | 2 +- .../radware/alteon/snmp/mode/vserverstatus.pm | 2 +- network/radware/alteon/snmp/plugin.pm | 2 +- network/raisecom/snmp/mode/components/fan.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- .../raisecom/snmp/mode/components/voltage.pm | 2 +- network/raisecom/snmp/mode/cpu.pm | 2 +- network/raisecom/snmp/mode/hardware.pm | 2 +- network/raisecom/snmp/mode/memory.pm | 2 +- network/raisecom/snmp/plugin.pm | 2 +- network/redback/snmp/mode/components/disk.pm | 2 +- network/redback/snmp/mode/components/fan.pm | 2 +- network/redback/snmp/mode/components/psu.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- .../redback/snmp/mode/components/voltage.pm | 2 +- network/redback/snmp/mode/cpu.pm | 2 +- network/redback/snmp/mode/disk.pm | 2 +- network/redback/snmp/mode/hardware.pm | 2 +- network/redback/snmp/mode/memory.pm | 2 +- network/redback/snmp/plugin.pm | 2 +- .../steelhead/snmp/mode/bwoptimization.pm | 2 +- .../steelhead/snmp/mode/bwpassthrough.pm | 2 +- .../steelhead/snmp/mode/connections.pm | 2 +- .../steelhead/snmp/mode/diskutilization.pm | 2 +- .../riverbed/steelhead/snmp/mode/health.pm | 2 +- .../steelhead/snmp/mode/loadaverage.pm | 2 +- .../steelhead/snmp/mode/servicestatus.pm | 2 +- .../steelhead/snmp/mode/serviceuptime.pm | 2 +- .../steelhead/snmp/mode/temperature.pm | 2 +- network/riverbed/steelhead/snmp/plugin.pm | 2 +- network/ruckus/ap/snmp/mode/cpu.pm | 2 +- network/ruckus/ap/snmp/mode/memory.pm | 2 +- network/ruckus/ap/snmp/mode/users.pm | 2 +- network/ruckus/ap/snmp/plugin.pm | 2 +- network/ruggedcom/mode/errors.pm | 2 +- network/ruggedcom/mode/hardware.pm | 2 +- network/ruggedcom/mode/memory.pm | 2 +- network/ruggedcom/mode/temperature.pm | 2 +- network/ruggedcom/plugin.pm | 2 +- network/securactive/mode/bca.pm | 2 +- network/securactive/mode/bcn.pm | 2 +- network/securactive/mode/listbca.pm | 2 +- network/securactive/mode/listbcn.pm | 2 +- network/securactive/plugin.pm | 2 +- network/sonus/sbc/snmp/mode/callstats.pm | 2 +- network/sonus/sbc/snmp/mode/channels.pm | 2 +- network/sonus/sbc/snmp/mode/dspstats.pm | 2 +- network/sonus/sbc/snmp/plugin.pm | 2 +- .../es/snmp/mode/components/component.pm | 2 +- .../sophos/es/snmp/mode/components/system.pm | 2 +- network/sophos/es/snmp/mode/health.pm | 2 +- network/sophos/es/snmp/mode/message.pm | 2 +- network/sophos/es/snmp/plugin.pm | 2 +- network/stonesoft/snmp/mode/clusterload.pm | 2 +- network/stonesoft/snmp/mode/clusterstate.pm | 2 +- network/stonesoft/snmp/mode/connections.pm | 2 +- network/stonesoft/snmp/mode/cpu.pm | 2 +- network/stonesoft/snmp/mode/droppedpackets.pm | 2 +- network/stonesoft/snmp/mode/memory.pm | 2 +- .../stonesoft/snmp/mode/rejectedpackets.pm | 2 +- network/stonesoft/snmp/mode/storage.pm | 2 +- network/stonesoft/snmp/plugin.pm | 2 +- network/stormshield/local/mode/qosusage.pm | 2 +- network/stormshield/local/plugin.pm | 2 +- network/stormshield/snmp/mode/connections.pm | 2 +- network/stormshield/snmp/mode/hanodes.pm | 2 +- network/stormshield/snmp/mode/vpnstatus.pm | 2 +- network/stormshield/snmp/plugin.pm | 2 +- network/ubiquiti/edge/snmp/plugin.pm | 2 +- network/ucopia/wlc/snmp/mode/temperature.pm | 2 +- network/ucopia/wlc/snmp/mode/users.pm | 2 +- network/ucopia/wlc/snmp/plugin.pm | 2 +- network/watchguard/snmp/mode/cpu.pm | 2 +- network/watchguard/snmp/mode/policyusage.pm | 2 +- network/watchguard/snmp/mode/system.pm | 2 +- network/watchguard/snmp/plugin.pm | 2 +- network/zyxel/snmp/mode/cpu.pm | 2 +- network/zyxel/snmp/mode/listvpn.pm | 2 +- network/zyxel/snmp/mode/memory.pm | 2 +- network/zyxel/snmp/mode/sessions.pm | 2 +- network/zyxel/snmp/mode/vpnstatus.pm | 2 +- network/zyxel/snmp/plugin.pm | 2 +- notification/foxbox/mode/alert.pm | 2 +- notification/foxbox/plugin.pm | 2 +- notification/highsms/mode/alert.pm | 2 +- notification/highsms/plugin.pm | 2 +- notification/slack/mode/alert.pm | 2 +- notification/slack/plugin.pm | 2 +- os/aix/local/mode/errpt.pm | 2 +- os/aix/local/mode/liststorages.pm | 2 +- os/aix/local/mode/lvsync.pm | 2 +- os/aix/local/mode/storage.pm | 2 +- os/aix/local/plugin.pm | 2 +- os/aix/snmp/mode/swap.pm | 2 +- os/aix/snmp/plugin.pm | 2 +- os/freebsd/snmp/mode/memory.pm | 2 +- os/freebsd/snmp/plugin.pm | 2 +- os/hpux/snmp/mode/cpu.pm | 2 +- os/hpux/snmp/mode/load.pm | 2 +- os/hpux/snmp/mode/memory.pm | 2 +- os/hpux/snmp/mode/process.pm | 2 +- os/hpux/snmp/mode/storage.pm | 2 +- os/hpux/snmp/plugin.pm | 2 +- os/linux/local/mode/cmdreturn.pm | 2 +- os/linux/local/mode/connections.pm | 2 +- os/linux/local/mode/cpu.pm | 2 +- os/linux/local/mode/cpudetailed.pm | 2 +- os/linux/local/mode/directlvmusage.pm | 2 +- os/linux/local/mode/diskio.pm | 2 +- os/linux/local/mode/filesdate.pm | 2 +- os/linux/local/mode/filessize.pm | 2 +- os/linux/local/mode/inodes.pm | 2 +- os/linux/local/mode/listinterfaces.pm | 2 +- os/linux/local/mode/listpartitions.pm | 2 +- os/linux/local/mode/liststorages.pm | 2 +- os/linux/local/mode/loadaverage.pm | 2 +- os/linux/local/mode/memory.pm | 2 +- os/linux/local/mode/packeterrors.pm | 2 +- os/linux/local/mode/paging.pm | 2 +- os/linux/local/mode/process.pm | 2 +- os/linux/local/mode/quota.pm | 2 +- os/linux/local/mode/storage.pm | 2 +- os/linux/local/mode/swap.pm | 2 +- os/linux/local/mode/systemdscstatus.pm | 2 +- os/linux/local/mode/traffic.pm | 2 +- os/linux/local/mode/uptime.pm | 2 +- os/linux/local/plugin.pm | 2 +- os/linux/snmp/plugin.pm | 2 +- os/solaris/local/mode/analyzedisks.pm | 2 +- os/solaris/local/mode/cpu.pm | 2 +- os/solaris/local/mode/fcconnected.pm | 2 +- os/solaris/local/mode/fmadm.pm | 2 +- os/solaris/local/mode/hwraidctl.pm | 2 +- os/solaris/local/mode/hwsas2ircu.pm | 2 +- os/solaris/local/mode/lomv120.pm | 2 +- .../local/mode/lomv120components/fan.pm | 2 +- .../local/mode/lomv120components/psu.pm | 2 +- os/solaris/local/mode/lomv120components/sf.pm | 2 +- .../local/mode/lomv120components/voltage.pm | 2 +- os/solaris/local/mode/lomv1280.pm | 2 +- os/solaris/local/mode/prtdiag.pm | 2 +- os/solaris/local/mode/svmdisks.pm | 2 +- os/solaris/local/mode/vxdisks.pm | 2 +- os/solaris/local/plugin.pm | 2 +- os/solaris/snmp/plugin.pm | 2 +- os/windows/local/mode/cmdreturn.pm | 2 +- os/windows/local/mode/ntp.pm | 2 +- os/windows/local/mode/pendingreboot.pm | 2 +- os/windows/local/mode/sessions.pm | 2 +- os/windows/local/plugin.pm | 2 +- os/windows/snmp/mode/memory.pm | 2 +- os/windows/snmp/mode/service.pm | 2 +- os/windows/snmp/mode/swap.pm | 2 +- os/windows/snmp/plugin.pm | 2 +- os/windows/wsman/mode/listservices.pm | 2 +- os/windows/wsman/mode/service.pm | 2 +- os/windows/wsman/plugin.pm | 2 +- snmp_standard/mode/cpu.pm | 2 +- snmp_standard/mode/cpudetailed.pm | 2 +- snmp_standard/mode/diskio.pm | 2 +- snmp_standard/mode/diskusage.pm | 2 +- snmp_standard/mode/dynamiccommand.pm | 2 +- snmp_standard/mode/entity.pm | 2 +- snmp_standard/mode/hardwaredevice.pm | 2 +- snmp_standard/mode/hardwarefibrealliance.pm | 2 +- snmp_standard/mode/inodes.pm | 2 +- snmp_standard/mode/interfaces.pm | 2 +- snmp_standard/mode/isdnusage.pm | 2 +- snmp_standard/mode/listdiskspath.pm | 2 +- snmp_standard/mode/listinterfaces.pm | 2 +- snmp_standard/mode/liststorages.pm | 2 +- snmp_standard/mode/loadaverage.pm | 2 +- snmp_standard/mode/memory.pm | 2 +- snmp_standard/mode/mtausage.pm | 2 +- snmp_standard/mode/ntp.pm | 2 +- snmp_standard/mode/numericvalue.pm | 2 +- snmp_standard/mode/printererror.pm | 2 +- snmp_standard/mode/processcount.pm | 2 +- snmp_standard/mode/spanningtree.pm | 2 +- snmp_standard/mode/storage.pm | 2 +- snmp_standard/mode/stringvalue.pm | 2 +- snmp_standard/mode/swap.pm | 2 +- snmp_standard/mode/tcpcon.pm | 2 +- snmp_standard/mode/uptime.pm | 2 +- snmp_standard/mode/vrrp.pm | 2 +- storage/dell/MD3000/cli/plugin.pm | 2 +- storage/dell/TL2000/mode/globalstatus.pm | 2 +- storage/dell/TL2000/plugin.pm | 2 +- .../dell/compellent/local/mode/hbausage.pm | 2 +- .../dell/compellent/local/mode/volumeusage.pm | 2 +- storage/dell/compellent/local/plugin.pm | 2 +- .../compellent/snmp/mode/components/cache.pm | 2 +- .../compellent/snmp/mode/components/ctrl.pm | 2 +- .../snmp/mode/components/ctrlfan.pm | 2 +- .../snmp/mode/components/ctrlpower.pm | 2 +- .../snmp/mode/components/ctrltemp.pm | 2 +- .../snmp/mode/components/ctrlvoltage.pm | 2 +- .../compellent/snmp/mode/components/disk.pm | 2 +- .../compellent/snmp/mode/components/encl.pm | 2 +- .../snmp/mode/components/enclfan.pm | 2 +- .../snmp/mode/components/encliomod.pm | 2 +- .../snmp/mode/components/enclpower.pm | 2 +- .../snmp/mode/components/encltemp.pm | 2 +- .../snmp/mode/components/resources.pm | 2 +- .../compellent/snmp/mode/components/sc.pm | 2 +- .../compellent/snmp/mode/components/server.pm | 2 +- .../compellent/snmp/mode/components/volume.pm | 2 +- storage/dell/compellent/snmp/mode/hardware.pm | 2 +- storage/dell/compellent/snmp/plugin.pm | 2 +- .../dell/equallogic/snmp/mode/arraystats.pm | 2 +- .../equallogic/snmp/mode/components/disk.pm | 2 +- .../equallogic/snmp/mode/components/fan.pm | 2 +- .../equallogic/snmp/mode/components/health.pm | 2 +- .../equallogic/snmp/mode/components/psu.pm | 2 +- .../equallogic/snmp/mode/components/raid.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- .../dell/equallogic/snmp/mode/diskusage.pm | 2 +- storage/dell/equallogic/snmp/mode/hardware.pm | 2 +- .../dell/equallogic/snmp/mode/poolusage.pm | 2 +- storage/dell/equallogic/snmp/plugin.pm | 2 +- .../dell/fluidfs/snmp/mode/components/ad.pm | 2 +- .../snmp/mode/components/extservers.pm | 2 +- .../fluidfs/snmp/mode/components/overall.pm | 2 +- .../snmp/mode/components/substorage.pm | 2 +- storage/dell/fluidfs/snmp/mode/hardware.pm | 2 +- storage/dell/fluidfs/snmp/mode/volumeusage.pm | 2 +- storage/dell/fluidfs/snmp/plugin.pm | 2 +- storage/dell/ml6000/snmp/plugin.pm | 2 +- storage/emc/DataDomain/lib/functions.pm | 2 +- .../emc/DataDomain/mode/components/battery.pm | 2 +- .../emc/DataDomain/mode/components/disk.pm | 2 +- storage/emc/DataDomain/mode/components/fan.pm | 2 +- storage/emc/DataDomain/mode/components/psu.pm | 2 +- .../DataDomain/mode/components/temperature.pm | 2 +- storage/emc/DataDomain/mode/filesystem.pm | 2 +- storage/emc/DataDomain/mode/hardware.pm | 2 +- storage/emc/DataDomain/mode/replication.pm | 2 +- storage/emc/DataDomain/plugin.pm | 2 +- .../local/mode/components/controlstation.pm | 2 +- .../local/mode/components/datamover.pm | 2 +- storage/emc/celerra/local/mode/getreason.pm | 2 +- storage/emc/celerra/local/plugin.pm | 2 +- storage/emc/clariion/plugin.pm | 2 +- storage/emc/isilon/snmp/mode/clusterusage.pm | 2 +- .../emc/isilon/snmp/mode/components/disk.pm | 2 +- .../emc/isilon/snmp/mode/components/fan.pm | 2 +- .../emc/isilon/snmp/mode/components/power.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- storage/emc/isilon/snmp/mode/hardware.pm | 2 +- storage/emc/isilon/snmp/plugin.pm | 2 +- .../ssh/mode/monitoredparameters.pm | 2 +- .../recoverypoint/ssh/mode/systemstatus.pm | 2 +- storage/emc/recoverypoint/ssh/plugin.pm | 2 +- .../dmx34/local/mode/components/config.pm | 2 +- .../dmx34/local/mode/components/director.pm | 2 +- .../dmx34/local/mode/components/disk.pm | 2 +- .../dmx34/local/mode/components/fru.pm | 2 +- .../dmx34/local/mode/components/memory.pm | 2 +- .../dmx34/local/mode/components/test.pm | 2 +- .../dmx34/local/mode/components/xcm.pm | 2 +- .../symmetrix/dmx34/local/mode/hardware.pm | 2 +- storage/emc/symmetrix/dmx34/local/plugin.pm | 2 +- .../vmax/local/mode/components/cabling.pm | 2 +- .../vmax/local/mode/components/director.pm | 2 +- .../vmax/local/mode/components/fabric.pm | 2 +- .../vmax/local/mode/components/module.pm | 2 +- .../vmax/local/mode/components/power.pm | 2 +- .../vmax/local/mode/components/sparedisk.pm | 2 +- .../vmax/local/mode/components/temperature.pm | 2 +- .../vmax/local/mode/components/voltage.pm | 2 +- .../emc/symmetrix/vmax/local/mode/hardware.pm | 2 +- storage/emc/symmetrix/vmax/local/plugin.pm | 2 +- storage/emc/vplex/restapi/custom/vplexapi.pm | 2 +- .../restapi/mode/clustercommunication.pm | 2 +- .../emc/vplex/restapi/mode/clusterdevices.pm | 2 +- storage/emc/vplex/restapi/mode/directors.pm | 2 +- .../vplex/restapi/mode/distributeddevices.pm | 2 +- storage/emc/vplex/restapi/mode/fans.pm | 2 +- storage/emc/vplex/restapi/mode/psus.pm | 2 +- .../emc/vplex/restapi/mode/storagevolumes.pm | 2 +- storage/emc/vplex/restapi/plugin.pm | 2 +- .../emc/xtremio/restapi/custom/xtremioapi.pm | 2 +- .../emc/xtremio/restapi/mode/clusterhealth.pm | 2 +- .../emc/xtremio/restapi/mode/ssdendurance.pm | 2 +- storage/emc/xtremio/restapi/mode/ssdiops.pm | 2 +- storage/emc/xtremio/restapi/mode/xenvscpu.pm | 2 +- .../emc/xtremio/restapi/mode/xenvsstate.pm | 2 +- storage/emc/xtremio/restapi/plugin.pm | 2 +- storage/exagrid/snmp/mode/serverusage.pm | 2 +- storage/exagrid/snmp/plugin.pm | 2 +- storage/fujitsu/eternus/dx/ssh/mode/cpu.pm | 2 +- .../eternus/dx/ssh/mode/physicaldisk.pm | 2 +- .../fujitsu/eternus/dx/ssh/mode/portstats.pm | 2 +- storage/fujitsu/eternus/dx/ssh/mode/psu.pm | 2 +- .../fujitsu/eternus/dx/ssh/mode/raidgroups.pm | 2 +- .../eternus/dx/ssh/mode/volumestats.pm | 2 +- storage/fujitsu/eternus/dx/ssh/plugin.pm | 2 +- storage/hitachi/hnas/snmp/plugin.pm | 2 +- .../snmp/mode/components/component.pm | 2 +- .../standard/snmp/mode/components/dkc.pm | 2 +- .../standard/snmp/mode/components/dku.pm | 2 +- .../hitachi/standard/snmp/mode/hardware.pm | 2 +- storage/hitachi/standard/snmp/plugin.pm | 2 +- storage/hp/3par/7000/mode/battery.pm | 2 +- storage/hp/3par/7000/mode/cim.pm | 2 +- storage/hp/3par/7000/mode/iscsi.pm | 2 +- storage/hp/3par/7000/mode/node.pm | 2 +- storage/hp/3par/7000/mode/physicaldisk.pm | 2 +- storage/hp/3par/7000/mode/psu.pm | 2 +- storage/hp/3par/7000/mode/storage.pm | 2 +- storage/hp/3par/7000/mode/temperature.pm | 2 +- storage/hp/3par/7000/mode/volume.pm | 2 +- storage/hp/3par/7000/mode/wsapi.pm | 2 +- storage/hp/3par/7000/plugin.pm | 2 +- storage/hp/eva/cli/custom/api.pm | 2 +- storage/hp/eva/cli/mode/components/battery.pm | 2 +- storage/hp/eva/cli/mode/components/disk.pm | 2 +- storage/hp/eva/cli/mode/components/diskgrp.pm | 2 +- storage/hp/eva/cli/mode/components/fan.pm | 2 +- .../hp/eva/cli/mode/components/iomodule.pm | 2 +- storage/hp/eva/cli/mode/components/psu.pm | 2 +- storage/hp/eva/cli/mode/components/system.pm | 2 +- .../hp/eva/cli/mode/components/temperature.pm | 2 +- storage/hp/eva/cli/mode/hardware.pm | 2 +- storage/hp/eva/cli/mode/storageusage.pm | 2 +- storage/hp/eva/cli/plugin.pm | 2 +- .../lefthand/snmp/mode/components/device.pm | 2 +- .../hp/lefthand/snmp/mode/components/fan.pm | 2 +- .../hp/lefthand/snmp/mode/components/psu.pm | 2 +- .../hp/lefthand/snmp/mode/components/rc.pm | 2 +- .../hp/lefthand/snmp/mode/components/rcc.pm | 2 +- .../snmp/mode/components/resources.pm | 2 +- .../hp/lefthand/snmp/mode/components/ro.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- .../lefthand/snmp/mode/components/voltage.pm | 2 +- storage/hp/lefthand/snmp/mode/hardware.pm | 2 +- storage/hp/lefthand/snmp/mode/volumeusage.pm | 2 +- storage/hp/lefthand/snmp/plugin.pm | 2 +- storage/hp/msa2000/snmp/plugin.pm | 2 +- storage/hp/msl/snmp/mode/hardware.pm | 2 +- storage/hp/msl/snmp/plugin.pm | 2 +- storage/hp/p2000/xmlapi/custom.pm | 2 +- .../hp/p2000/xmlapi/mode/components/disk.pm | 2 +- .../p2000/xmlapi/mode/components/enclosure.pm | 2 +- .../hp/p2000/xmlapi/mode/components/fru.pm | 2 +- .../p2000/xmlapi/mode/components/sensors.pm | 2 +- .../hp/p2000/xmlapi/mode/components/vdisk.pm | 2 +- storage/hp/p2000/xmlapi/mode/health.pm | 2 +- storage/hp/p2000/xmlapi/mode/listvolumes.pm | 2 +- storage/hp/p2000/xmlapi/mode/volumesstats.pm | 2 +- storage/hp/p2000/xmlapi/plugin.pm | 2 +- storage/hp/storeonce/restapi/custom/api.pm | 2 +- .../hp/storeonce/restapi/mode/clusterusage.pm | 2 +- storage/hp/storeonce/restapi/mode/fcsusage.pm | 2 +- storage/hp/storeonce/restapi/mode/nasusage.pm | 2 +- .../storeonce/restapi/mode/servicesetusage.pm | 2 +- storage/hp/storeonce/restapi/plugin.pm | 2 +- storage/hp/storeonce/ssh/custom/custom.pm | 2 +- .../storeonce/ssh/mode/components/hardware.pm | 2 +- .../ssh/mode/components/serviceset.pm | 2 +- storage/hp/storeonce/ssh/mode/hardware.pm | 2 +- storage/hp/storeonce/ssh/plugin.pm | 2 +- storage/ibm/DS3000/cli/plugin.pm | 2 +- storage/ibm/DS4000/cli/plugin.pm | 2 +- storage/ibm/DS5000/cli/plugin.pm | 2 +- .../ibm/storwize/ssh/mode/components/array.pm | 2 +- .../ibm/storwize/ssh/mode/components/drive.pm | 2 +- .../storwize/ssh/mode/components/enclosure.pm | 2 +- .../ssh/mode/components/enclosurebattery.pm | 2 +- .../ssh/mode/components/enclosurecanister.pm | 2 +- .../ssh/mode/components/enclosurepsu.pm | 2 +- .../ibm/storwize/ssh/mode/components/host.pm | 2 +- .../ibm/storwize/ssh/mode/components/mdisk.pm | 2 +- .../ibm/storwize/ssh/mode/components/node.pm | 2 +- .../storwize/ssh/mode/components/portfc.pm | 2 +- .../storwize/ssh/mode/components/portsas.pm | 2 +- .../storwize/ssh/mode/components/quorum.pm | 2 +- .../ssh/mode/components/systemstats.pm | 2 +- .../ibm/storwize/ssh/mode/components/vdisk.pm | 2 +- storage/ibm/storwize/ssh/mode/eventlog.pm | 2 +- storage/ibm/storwize/ssh/mode/hardware.pm | 2 +- storage/ibm/storwize/ssh/mode/poolusage.pm | 2 +- storage/ibm/storwize/ssh/plugin.pm | 2 +- storage/ibm/ts2900/snmp/mode/hardware.pm | 2 +- storage/ibm/ts2900/snmp/plugin.pm | 2 +- storage/ibm/ts3100/snmp/mode/globalstatus.pm | 2 +- storage/ibm/ts3100/snmp/plugin.pm | 2 +- storage/ibm/ts3200/snmp/mode/globalstatus.pm | 2 +- storage/ibm/ts3200/snmp/plugin.pm | 2 +- storage/ibm/ts3500/snmp/plugin.pm | 2 +- storage/kaminario/restapi/custom/api.pm | 2 +- storage/kaminario/restapi/mode/systemusage.pm | 2 +- storage/kaminario/restapi/mode/volumeusage.pm | 2 +- storage/kaminario/restapi/plugin.pm | 2 +- storage/lenovo/sseries/snmp/plugin.pm | 2 +- storage/netapp/snmp/mode/aggregatestate.pm | 2 +- storage/netapp/snmp/mode/cacheage.pm | 2 +- .../snmp/mode/components/communication.pm | 2 +- .../snmp/mode/components/electronics.pm | 2 +- storage/netapp/snmp/mode/components/fan.pm | 2 +- storage/netapp/snmp/mode/components/psu.pm | 2 +- storage/netapp/snmp/mode/components/raid.pm | 2 +- .../snmp/mode/components/temperature.pm | 2 +- .../netapp/snmp/mode/components/voltage.pm | 2 +- storage/netapp/snmp/mode/cpstatistics.pm | 2 +- storage/netapp/snmp/mode/cpuload.pm | 2 +- storage/netapp/snmp/mode/diskfailed.pm | 2 +- storage/netapp/snmp/mode/fan.pm | 2 +- storage/netapp/snmp/mode/filesys.pm | 2 +- storage/netapp/snmp/mode/globalstatus.pm | 2 +- storage/netapp/snmp/mode/listfilesys.pm | 2 +- storage/netapp/snmp/mode/ndmpsessions.pm | 2 +- storage/netapp/snmp/mode/nvram.pm | 2 +- storage/netapp/snmp/mode/partnerstatus.pm | 2 +- storage/netapp/snmp/mode/psu.pm | 2 +- storage/netapp/snmp/mode/qtreeusage.pm | 2 +- storage/netapp/snmp/mode/sharecalls.pm | 2 +- storage/netapp/snmp/mode/shelf.pm | 2 +- storage/netapp/snmp/mode/snapmirrorlag.pm | 2 +- storage/netapp/snmp/mode/snapshotage.pm | 2 +- storage/netapp/snmp/mode/temperature.pm | 2 +- storage/netapp/snmp/mode/volumeoptions.pm | 2 +- storage/netapp/snmp/plugin.pm | 2 +- storage/nimble/snmp/mode/globalstats.pm | 2 +- storage/nimble/snmp/mode/volumeusage.pm | 2 +- storage/nimble/snmp/plugin.pm | 2 +- .../oracle/zs/snmp/mode/components/module.pm | 2 +- storage/oracle/zs/snmp/mode/hardware.pm | 2 +- storage/oracle/zs/snmp/mode/listshares.pm | 2 +- storage/oracle/zs/snmp/mode/shareusage.pm | 2 +- storage/oracle/zs/snmp/plugin.pm | 2 +- .../neo/snmp/mode/components/drive.pm | 2 +- .../neo/snmp/mode/components/library.pm | 2 +- storage/overland/neo/snmp/mode/eventlog.pm | 2 +- storage/overland/neo/snmp/mode/hardware.pm | 2 +- storage/overland/neo/snmp/plugin.pm | 2 +- storage/panzura/snmp/mode/cpucloud.pm | 2 +- storage/panzura/snmp/mode/diskusagelocal.pm | 2 +- storage/panzura/snmp/mode/memory.pm | 2 +- storage/panzura/snmp/mode/ratios.pm | 2 +- storage/panzura/snmp/plugin.pm | 2 +- storage/purestorage/restapi/custom/api.pm | 2 +- storage/purestorage/restapi/mode/alarms.pm | 2 +- storage/purestorage/restapi/mode/hardware.pm | 2 +- .../purestorage/restapi/mode/listvolumes.pm | 2 +- .../purestorage/restapi/mode/volumeusage.pm | 2 +- storage/purestorage/restapi/plugin.pm | 2 +- storage/purestorage/snmp/mode/stats.pm | 2 +- storage/purestorage/snmp/plugin.pm | 2 +- storage/qnap/snmp/mode/components/disk.pm | 2 +- storage/qnap/snmp/mode/components/fan.pm | 2 +- .../qnap/snmp/mode/components/temperature.pm | 2 +- storage/qnap/snmp/mode/hardware.pm | 2 +- storage/qnap/snmp/mode/memory.pm | 2 +- storage/qnap/snmp/mode/volumeusage.pm | 2 +- storage/qnap/snmp/plugin.pm | 2 +- storage/qsan/nas/snmp/mode/components/disk.pm | 2 +- storage/qsan/nas/snmp/mode/components/fan.pm | 2 +- storage/qsan/nas/snmp/mode/components/psu.pm | 2 +- .../nas/snmp/mode/components/resources.pm | 2 +- .../nas/snmp/mode/components/temperature.pm | 2 +- .../qsan/nas/snmp/mode/components/voltage.pm | 2 +- storage/qsan/nas/snmp/mode/hardware.pm | 2 +- storage/qsan/nas/snmp/plugin.pm | 2 +- storage/quantum/scalar/snmp/plugin.pm | 2 +- .../storagetek/sl/snmp/mode/components/cap.pm | 2 +- .../sl/snmp/mode/components/controller.pm | 2 +- .../sl/snmp/mode/components/elevator.pm | 2 +- .../storagetek/sl/snmp/mode/components/fan.pm | 2 +- .../sl/snmp/mode/components/interface.pm | 2 +- .../storagetek/sl/snmp/mode/components/psu.pm | 2 +- .../sl/snmp/mode/components/resources.pm | 2 +- .../sl/snmp/mode/components/robot.pm | 2 +- .../sl/snmp/mode/components/temperature.pm | 2 +- .../sl/snmp/mode/components/turntable.pm | 2 +- storage/storagetek/sl/snmp/mode/hardware.pm | 2 +- storage/storagetek/sl/snmp/plugin.pm | 2 +- storage/synology/snmp/mode/components/disk.pm | 2 +- storage/synology/snmp/mode/components/fan.pm | 2 +- storage/synology/snmp/mode/components/psu.pm | 2 +- storage/synology/snmp/mode/components/raid.pm | 2 +- .../synology/snmp/mode/components/system.pm | 2 +- storage/synology/snmp/mode/hardware.pm | 2 +- storage/synology/snmp/mode/temperature.pm | 2 +- storage/synology/snmp/mode/ups.pm | 2 +- storage/synology/snmp/plugin.pm | 2 +- storage/violin/3000/snmp/plugin.pm | 2 +- 1902 files changed, 8431 insertions(+), 8431 deletions(-) diff --git a/apps/activedirectory/local/mode/dcdiag.pm b/apps/activedirectory/local/mode/dcdiag.pm index fabece521..1503b8719 100644 --- a/apps/activedirectory/local/mode/dcdiag.pm +++ b/apps/activedirectory/local/mode/dcdiag.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/activedirectory/local/mode/dfsrbacklog.pm b/apps/activedirectory/local/mode/dfsrbacklog.pm index f345a3560..1247de6ec 100644 --- a/apps/activedirectory/local/mode/dfsrbacklog.pm +++ b/apps/activedirectory/local/mode/dfsrbacklog.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/activedirectory/local/mode/netdom.pm b/apps/activedirectory/local/mode/netdom.pm index 6ae59e927..28fca4adb 100644 --- a/apps/activedirectory/local/mode/netdom.pm +++ b/apps/activedirectory/local/mode/netdom.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/activedirectory/local/plugin.pm b/apps/activedirectory/local/plugin.pm index c79e7c230..57be12caf 100644 --- a/apps/activedirectory/local/plugin.pm +++ b/apps/activedirectory/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/activedirectory/wsman/mode/dcdiag.pm b/apps/activedirectory/wsman/mode/dcdiag.pm index 83440f531..06d5d734a 100644 --- a/apps/activedirectory/wsman/mode/dcdiag.pm +++ b/apps/activedirectory/wsman/mode/dcdiag.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/activedirectory/wsman/plugin.pm b/apps/activedirectory/wsman/plugin.pm index 735e96bed..32a59244d 100644 --- a/apps/activedirectory/wsman/plugin.pm +++ b/apps/activedirectory/wsman/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/antivirus/clamav/local/mode/updatestatus.pm b/apps/antivirus/clamav/local/mode/updatestatus.pm index 0e66b4891..8659577cd 100644 --- a/apps/antivirus/clamav/local/mode/updatestatus.pm +++ b/apps/antivirus/clamav/local/mode/updatestatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/antivirus/clamav/local/plugin.pm b/apps/antivirus/clamav/local/plugin.pm index 5125468ce..875660461 100644 --- a/apps/antivirus/clamav/local/plugin.pm +++ b/apps/antivirus/clamav/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/apache/serverstatus/mode/cpuload.pm b/apps/apache/serverstatus/mode/cpuload.pm index ef75b7b56..a841f5edb 100644 --- a/apps/apache/serverstatus/mode/cpuload.pm +++ b/apps/apache/serverstatus/mode/cpuload.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/apache/serverstatus/mode/requests.pm b/apps/apache/serverstatus/mode/requests.pm index d2296524c..604b6846a 100644 --- a/apps/apache/serverstatus/mode/requests.pm +++ b/apps/apache/serverstatus/mode/requests.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/apache/serverstatus/mode/responsetime.pm b/apps/apache/serverstatus/mode/responsetime.pm index 666a35f09..97e42704a 100644 --- a/apps/apache/serverstatus/mode/responsetime.pm +++ b/apps/apache/serverstatus/mode/responsetime.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/apache/serverstatus/mode/slotstates.pm b/apps/apache/serverstatus/mode/slotstates.pm index c1fe0972b..cc7ef90d9 100644 --- a/apps/apache/serverstatus/mode/slotstates.pm +++ b/apps/apache/serverstatus/mode/slotstates.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/apache/serverstatus/mode/workers.pm b/apps/apache/serverstatus/mode/workers.pm index 91f652f33..0044eb3bd 100644 --- a/apps/apache/serverstatus/mode/workers.pm +++ b/apps/apache/serverstatus/mode/workers.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/apache/serverstatus/plugin.pm b/apps/apache/serverstatus/plugin.pm index 0ec8e88c6..65d48b3ae 100644 --- a/apps/apache/serverstatus/plugin.pm +++ b/apps/apache/serverstatus/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/apcupsd/local/mode/batterycharge.pm b/apps/apcupsd/local/mode/batterycharge.pm index ace5daf7c..64967274f 100644 --- a/apps/apcupsd/local/mode/batterycharge.pm +++ b/apps/apcupsd/local/mode/batterycharge.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/apcupsd/local/mode/batteryvoltage.pm b/apps/apcupsd/local/mode/batteryvoltage.pm index 6b106b464..fcde23fe7 100644 --- a/apps/apcupsd/local/mode/batteryvoltage.pm +++ b/apps/apcupsd/local/mode/batteryvoltage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/apcupsd/local/mode/libgetdata.pm b/apps/apcupsd/local/mode/libgetdata.pm index 7735dcd06..b8b8fecd3 100644 --- a/apps/apcupsd/local/mode/libgetdata.pm +++ b/apps/apcupsd/local/mode/libgetdata.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/apcupsd/local/mode/linefrequency.pm b/apps/apcupsd/local/mode/linefrequency.pm index 6a8bc37fc..54b1ed439 100644 --- a/apps/apcupsd/local/mode/linefrequency.pm +++ b/apps/apcupsd/local/mode/linefrequency.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/apcupsd/local/mode/linevoltage.pm b/apps/apcupsd/local/mode/linevoltage.pm index c6dff2371..1cda2b33d 100644 --- a/apps/apcupsd/local/mode/linevoltage.pm +++ b/apps/apcupsd/local/mode/linevoltage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/apcupsd/local/mode/loadpercentage.pm b/apps/apcupsd/local/mode/loadpercentage.pm index bcd4badae..5ba2914d0 100644 --- a/apps/apcupsd/local/mode/loadpercentage.pm +++ b/apps/apcupsd/local/mode/loadpercentage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/apcupsd/local/mode/outputvoltage.pm b/apps/apcupsd/local/mode/outputvoltage.pm index 6147afd7b..afa849269 100644 --- a/apps/apcupsd/local/mode/outputvoltage.pm +++ b/apps/apcupsd/local/mode/outputvoltage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/apcupsd/local/mode/temperature.pm b/apps/apcupsd/local/mode/temperature.pm index 379846648..14435fe90 100644 --- a/apps/apcupsd/local/mode/temperature.pm +++ b/apps/apcupsd/local/mode/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/apcupsd/local/mode/timeleft.pm b/apps/apcupsd/local/mode/timeleft.pm index 718ed9940..ddc0a3ad2 100644 --- a/apps/apcupsd/local/mode/timeleft.pm +++ b/apps/apcupsd/local/mode/timeleft.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/apcupsd/local/plugin.pm b/apps/apcupsd/local/plugin.pm index 66ad4c8d3..fe4b6adc1 100644 --- a/apps/apcupsd/local/plugin.pm +++ b/apps/apcupsd/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/backup/netbackup/local/mode/dedupstatus.pm b/apps/backup/netbackup/local/mode/dedupstatus.pm index c390efe4a..5843a6a6d 100644 --- a/apps/backup/netbackup/local/mode/dedupstatus.pm +++ b/apps/backup/netbackup/local/mode/dedupstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/backup/netbackup/local/mode/drivecleaning.pm b/apps/backup/netbackup/local/mode/drivecleaning.pm index 27d9fe6e6..e4fe20a03 100644 --- a/apps/backup/netbackup/local/mode/drivecleaning.pm +++ b/apps/backup/netbackup/local/mode/drivecleaning.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/backup/netbackup/local/mode/drivestatus.pm b/apps/backup/netbackup/local/mode/drivestatus.pm index f1b9741bf..2ebceb4df 100644 --- a/apps/backup/netbackup/local/mode/drivestatus.pm +++ b/apps/backup/netbackup/local/mode/drivestatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/backup/netbackup/local/mode/jobstatus.pm b/apps/backup/netbackup/local/mode/jobstatus.pm index 901f345cc..00004a43b 100644 --- a/apps/backup/netbackup/local/mode/jobstatus.pm +++ b/apps/backup/netbackup/local/mode/jobstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/backup/netbackup/local/mode/listpolicies.pm b/apps/backup/netbackup/local/mode/listpolicies.pm index 34a87420d..09c24199a 100644 --- a/apps/backup/netbackup/local/mode/listpolicies.pm +++ b/apps/backup/netbackup/local/mode/listpolicies.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/backup/netbackup/local/mode/tapeusage.pm b/apps/backup/netbackup/local/mode/tapeusage.pm index 9a1bb9fb0..569d2739d 100644 --- a/apps/backup/netbackup/local/mode/tapeusage.pm +++ b/apps/backup/netbackup/local/mode/tapeusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/backup/netbackup/local/plugin.pm b/apps/backup/netbackup/local/plugin.pm index 2bc5f4bd0..100b27690 100644 --- a/apps/backup/netbackup/local/plugin.pm +++ b/apps/backup/netbackup/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/backup/quadstor/local/mode/listvtl.pm b/apps/backup/quadstor/local/mode/listvtl.pm index 48b95cc23..26a920ad2 100644 --- a/apps/backup/quadstor/local/mode/listvtl.pm +++ b/apps/backup/quadstor/local/mode/listvtl.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/backup/quadstor/local/mode/vtldiskusage.pm b/apps/backup/quadstor/local/mode/vtldiskusage.pm index 752d44dcd..68eee08d1 100644 --- a/apps/backup/quadstor/local/mode/vtldiskusage.pm +++ b/apps/backup/quadstor/local/mode/vtldiskusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/backup/quadstor/local/mode/vtljobstatus.pm b/apps/backup/quadstor/local/mode/vtljobstatus.pm index abfbead27..623207e43 100644 --- a/apps/backup/quadstor/local/mode/vtljobstatus.pm +++ b/apps/backup/quadstor/local/mode/vtljobstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/backup/quadstor/local/mode/vtltapeusage.pm b/apps/backup/quadstor/local/mode/vtltapeusage.pm index 51792aaa6..66fbf27bf 100644 --- a/apps/backup/quadstor/local/mode/vtltapeusage.pm +++ b/apps/backup/quadstor/local/mode/vtltapeusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/backup/quadstor/local/plugin.pm b/apps/backup/quadstor/local/plugin.pm index b505c206a..64ab5d470 100644 --- a/apps/backup/quadstor/local/plugin.pm +++ b/apps/backup/quadstor/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/backup/tsm/local/custom/api.pm b/apps/backup/tsm/local/custom/api.pm index 56919a8ca..9d14579f0 100644 --- a/apps/backup/tsm/local/custom/api.pm +++ b/apps/backup/tsm/local/custom/api.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/backup/tsm/local/mode/actlog.pm b/apps/backup/tsm/local/mode/actlog.pm index c60f78528..b3cce1c6a 100644 --- a/apps/backup/tsm/local/mode/actlog.pm +++ b/apps/backup/tsm/local/mode/actlog.pm @@ -1,215 +1,215 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package apps::backup::tsm::local::mode::actlog; - -use base qw(centreon::plugins::templates::counter); - -use strict; -use warnings; -use centreon::plugins::misc; -use centreon::plugins::statefile; - -my $instance_mode; - -sub custom_status_threshold { - my ($self, %options) = @_; - my $status = 'ok'; - my $message; - - eval { - local $SIG{__WARN__} = sub { $message = $_[0]; }; - local $SIG{__DIE__} = sub { $message = $_[0]; }; - - if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && - eval "$instance_mode->{option_results}->{critical_status}") { - $status = 'critical'; - } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && - eval "$instance_mode->{option_results}->{warning_status}") { - $status = 'warning'; - } - }; - if (defined($message)) { - $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); - } - - return $status; -} - -sub custom_status_output { - my ($self, %options) = @_; - - my $msg = sprintf("alarm [severity: %s] [message: %s] %s", $self->{result_values}->{severity}, - $self->{result_values}->{message}, $self->{result_values}->{generation_time}); - return $msg; -} - -sub custom_status_calc { - my ($self, %options) = @_; - - $self->{result_values}->{message} = $options{new_datas}->{$self->{instance} . '_message'}; - $self->{result_values}->{severity} = $options{new_datas}->{$self->{instance} . '_severity'}; - $self->{result_values}->{since} = $options{new_datas}->{$self->{instance} . '_since'}; - $self->{result_values}->{generation_time} = $options{new_datas}->{$self->{instance} . '_generation_time'}; - return 0; -} - -sub set_counters { - my ($self, %options) = @_; - - $self->{maps_counters_type} = [ - { name => 'alarms', type => 2, message_multiple => '0 problem(s) detected', display_counter_problem => { label => 'alerts', min => 0 }, - group => [ { name => 'alarm', skipped_code => { -11 => 1 } } ] - } - ]; - - $self->{maps_counters}->{alarm} = [ - { label => 'status', threshold => 0, set => { - key_values => [ { name => 'message' }, { name => 'severity' }, { name => 'since' }, { name => 'generation_time' } ], - closure_custom_calc => $self->can('custom_status_calc'), - closure_custom_output => $self->can('custom_status_output'), - closure_custom_perfdata => sub { return 0; }, - closure_custom_threshold_check => $self->can('custom_status_threshold'), - } - }, - ]; -} - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options); - bless $self, $class; - - $self->{version} = '1.0'; - $options{options}->add_options(arguments => - { - "filter-time:s" => { name => 'filter_time', default => '1' }, - "warning-status:s" => { name => 'warning_status', default => '%{severity} =~ /warning/' }, - "critical-status:s" => { name => 'critical_status', default => '%{severity} =~ /error|severe/' }, - "memory" => { name => 'memory' }, - "timezone:s" => { name => 'timezone' }, - }); - - centreon::plugins::misc::mymodule_load(output => $self->{output}, module => 'DateTime', - error_msg => "Cannot load module 'DateTime'."); - $self->{statefile_cache} = centreon::plugins::statefile->new(%options); - return $self; -} - -sub check_options { - my ($self, %options) = @_; - $self->SUPER::check_options(%options); - - $instance_mode = $self; - $self->change_macros(); - if (defined($self->{option_results}->{memory})) { - $self->{statefile_cache}->check_options(%options); - } - - $self->{option_results}->{timezone} = 'GMT' if (!defined($self->{option_results}->{timezone}) || $self->{option_results}->{timezone} eq ''); -} - -sub change_macros { - my ($self, %options) = @_; - - foreach (('warning_status', 'critical_status')) { - if (defined($self->{option_results}->{$_})) { - $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; - } - } -} - -sub manage_selection { - my ($self, %options) = @_; - - my $response = $options{custom}->execute_command( - query => "SELECT date_time, severity, message FROM actlog WHERE date_time>current_timestamp-" . $self->{option_results}->{filter_time} . " hours" - ); - $self->{alarms}->{global} = { alarm => {} }; - my $last_time; - if (defined($self->{option_results}->{memory})) { - $self->{statefile_cache}->read(statefile => 'cache_tsm_' . $self->{mode} . '_' . $options{custom}->get_tsm_id()); - $last_time = $self->{statefile_cache}->get(name => 'last_time'); - } - - my %map_severity = (E => 'error', W => 'warning', I => 'information', S => 'severe', K => 'kernel'); - my ($i, $current_time) = (1, time()); - #2017-09-19 12:08:14.000000,I,"ANR1283I File count is incorrect fo..." - while ($response =~ /^(.*?),(.*?),(.*)$/mg) { - my ($date, $severity, $message) = ($1, $2, $3); - $date =~ /^(\d+)-(\d+)-(\d+)\s+(\d+)[:\/](\d+)[:\/](\d+)/; - - my $dt = DateTime->new(year => $1, month => $2, day => $3, hour => $4, minute => $5, second => $6, - time_zone => $self->{option_results}->{timezone}); - - next if (defined($self->{option_results}->{memory}) && defined($last_time) && $last_time > $dt->epoch); - - my $diff_time = $current_time - $dt->epoch; - - $message =~ s/^"(.*)"$/$1/; - $self->{alarms}->{global}->{alarm}->{$i} = { - message => $message, - severity => $map_severity{$severity}, - since => $diff_time, generation_time => centreon::plugins::misc::change_seconds(value => $diff_time) - }; - $i++; - } - - if (defined($self->{option_results}->{memory})) { - $self->{statefile_cache}->write(data => { last_time => $current_time }); - } -} - -1; - -__END__ - -=head1 MODE - -Check activity logs. - -=over 8 - -=item B<--filter-time> - -Get activity log more recent than X hour(s) (default: '1'). - -=item B<--warning-status> - -Set warning threshold for status (Default: '%{severity} =~ /warning/') -Can used special variables like: %{message}, %{severity}, %{since} - -=item B<--critical-status> - -Set critical threshold for status (Default: '%{severity} =~ /error|severe/'). -Can used special variables like: %{message}, %{severity}, %{since} - -=item B<--timezone> - -Timezone of time options. Default is 'GMT'. - -=item B<--memory> - -Only check new alarms. - -=back - -=cut - +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::backup::tsm::local::mode::actlog; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use centreon::plugins::misc; +use centreon::plugins::statefile; + +my $instance_mode; + +sub custom_status_threshold { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && + eval "$instance_mode->{option_results}->{critical_status}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && + eval "$instance_mode->{option_results}->{warning_status}") { + $status = 'warning'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_status_output { + my ($self, %options) = @_; + + my $msg = sprintf("alarm [severity: %s] [message: %s] %s", $self->{result_values}->{severity}, + $self->{result_values}->{message}, $self->{result_values}->{generation_time}); + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{message} = $options{new_datas}->{$self->{instance} . '_message'}; + $self->{result_values}->{severity} = $options{new_datas}->{$self->{instance} . '_severity'}; + $self->{result_values}->{since} = $options{new_datas}->{$self->{instance} . '_since'}; + $self->{result_values}->{generation_time} = $options{new_datas}->{$self->{instance} . '_generation_time'}; + return 0; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'alarms', type => 2, message_multiple => '0 problem(s) detected', display_counter_problem => { label => 'alerts', min => 0 }, + group => [ { name => 'alarm', skipped_code => { -11 => 1 } } ] + } + ]; + + $self->{maps_counters}->{alarm} = [ + { label => 'status', threshold => 0, set => { + key_values => [ { name => 'message' }, { name => 'severity' }, { name => 'since' }, { name => 'generation_time' } ], + closure_custom_calc => $self->can('custom_status_calc'), + closure_custom_output => $self->can('custom_status_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "filter-time:s" => { name => 'filter_time', default => '1' }, + "warning-status:s" => { name => 'warning_status', default => '%{severity} =~ /warning/' }, + "critical-status:s" => { name => 'critical_status', default => '%{severity} =~ /error|severe/' }, + "memory" => { name => 'memory' }, + "timezone:s" => { name => 'timezone' }, + }); + + centreon::plugins::misc::mymodule_load(output => $self->{output}, module => 'DateTime', + error_msg => "Cannot load module 'DateTime'."); + $self->{statefile_cache} = centreon::plugins::statefile->new(%options); + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; + $self->change_macros(); + if (defined($self->{option_results}->{memory})) { + $self->{statefile_cache}->check_options(%options); + } + + $self->{option_results}->{timezone} = 'GMT' if (!defined($self->{option_results}->{timezone}) || $self->{option_results}->{timezone} eq ''); +} + +sub change_macros { + my ($self, %options) = @_; + + foreach (('warning_status', 'critical_status')) { + if (defined($self->{option_results}->{$_})) { + $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; + } + } +} + +sub manage_selection { + my ($self, %options) = @_; + + my $response = $options{custom}->execute_command( + query => "SELECT date_time, severity, message FROM actlog WHERE date_time>current_timestamp-" . $self->{option_results}->{filter_time} . " hours" + ); + $self->{alarms}->{global} = { alarm => {} }; + my $last_time; + if (defined($self->{option_results}->{memory})) { + $self->{statefile_cache}->read(statefile => 'cache_tsm_' . $self->{mode} . '_' . $options{custom}->get_tsm_id()); + $last_time = $self->{statefile_cache}->get(name => 'last_time'); + } + + my %map_severity = (E => 'error', W => 'warning', I => 'information', S => 'severe', K => 'kernel'); + my ($i, $current_time) = (1, time()); + #2017-09-19 12:08:14.000000,I,"ANR1283I File count is incorrect fo..." + while ($response =~ /^(.*?),(.*?),(.*)$/mg) { + my ($date, $severity, $message) = ($1, $2, $3); + $date =~ /^(\d+)-(\d+)-(\d+)\s+(\d+)[:\/](\d+)[:\/](\d+)/; + + my $dt = DateTime->new(year => $1, month => $2, day => $3, hour => $4, minute => $5, second => $6, + time_zone => $self->{option_results}->{timezone}); + + next if (defined($self->{option_results}->{memory}) && defined($last_time) && $last_time > $dt->epoch); + + my $diff_time = $current_time - $dt->epoch; + + $message =~ s/^"(.*)"$/$1/; + $self->{alarms}->{global}->{alarm}->{$i} = { + message => $message, + severity => $map_severity{$severity}, + since => $diff_time, generation_time => centreon::plugins::misc::change_seconds(value => $diff_time) + }; + $i++; + } + + if (defined($self->{option_results}->{memory})) { + $self->{statefile_cache}->write(data => { last_time => $current_time }); + } +} + +1; + +__END__ + +=head1 MODE + +Check activity logs. + +=over 8 + +=item B<--filter-time> + +Get activity log more recent than X hour(s) (default: '1'). + +=item B<--warning-status> + +Set warning threshold for status (Default: '%{severity} =~ /warning/') +Can used special variables like: %{message}, %{severity}, %{since} + +=item B<--critical-status> + +Set critical threshold for status (Default: '%{severity} =~ /error|severe/'). +Can used special variables like: %{message}, %{severity}, %{since} + +=item B<--timezone> + +Timezone of time options. Default is 'GMT'. + +=item B<--memory> + +Only check new alarms. + +=back + +=cut + diff --git a/apps/backup/tsm/local/mode/drives.pm b/apps/backup/tsm/local/mode/drives.pm index a22415130..498c88381 100644 --- a/apps/backup/tsm/local/mode/drives.pm +++ b/apps/backup/tsm/local/mode/drives.pm @@ -1,165 +1,165 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package apps::backup::tsm::local::mode::drives; - -use base qw(centreon::plugins::templates::counter); - -use strict; -use warnings; - -sub set_counters { - my ($self, %options) = @_; - - $self->{maps_counters_type} = [ - { name => 'global', type => 0, cb_prefix_output => 'prefix_global_output' }, - ]; - - $self->{maps_counters}->{global} = [ - { label => 'online', set => { - key_values => [ { name => 'online' } ], - output_template => 'online : %s', - perfdatas => [ - { label => 'online', value => 'online_absolute', template => '%s', min => 0 }, - ], - } - }, - { label => 'offline', set => { - key_values => [ { name => 'offline' } ], - output_template => 'offline : %s', - perfdatas => [ - { label => 'offline', value => 'offline_absolute', template => '%s', min => 0 }, - ], - } - }, - { label => 'unavailable', set => { - key_values => [ { name => 'unavailable' } ], - output_template => 'unavailable : %s', - perfdatas => [ - { label => 'unavailable', value => 'unavailable_absolute', template => '%s', min => 0 }, - ], - } - }, - { label => 'empty', set => { - key_values => [ { name => 'empty' } ], - output_template => 'empty : %s', - perfdatas => [ - { label => 'empty', value => 'empty_absolute', template => '%s', min => 0 }, - ], - } - }, - { label => 'loaded', set => { - key_values => [ { name => 'loaded' } ], - output_template => 'loaded : %s', - perfdatas => [ - { label => 'loaded', value => 'loaded_absolute', template => '%s', min => 0 }, - ], - } - }, - { label => 'unloaded', set => { - key_values => [ { name => 'unloaded' } ], - output_template => 'unloaded : %s', - perfdatas => [ - { label => 'unloaded', value => 'unloaded_absolute', template => '%s', min => 0 }, - ], - } - }, - { label => 'reserved', set => { - key_values => [ { name => 'reserved' } ], - output_template => 'reserved : %s', - perfdatas => [ - { label => 'reserved', value => 'reserved_absolute', template => '%s', min => 0 }, - ], - } - }, - { label => 'unknown', set => { - key_values => [ { name => 'unknown' } ], - output_template => 'unknown : %s', - perfdatas => [ - { label => 'unknown', value => 'unknown_absolute', template => '%s', min => 0 }, - ], - } - }, - ]; -} - -sub prefix_global_output { - my ($self, %options) = @_; - - return "Total Drives "; -} - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options); - bless $self, $class; - - $self->{version} = '1.0'; - $options{options}->add_options(arguments => - { - }); - - return $self; -} - -sub manage_selection { - my ($self, %options) = @_; - - my $response = $options{custom}->execute_command( - query => "SELECT library_name, drive_name, online, drive_state FROM drives" - ); - $self->{global} = { - online => 0, offline => 0, - unavailable => 0, empty => 0, loaded => 0, unloaded => 0, reserved => 0, unknown => 0, - }; - - my %mapping_online = (yes => 'online', no => 'offline'); - while ($response =~ /^(.*?),(.*?),(yes|no),(unavailable|empty|loaded|unloaded|reserved|unknown)$/mgi) { - my ($library, $drive, $online, $state) = ($1, $2, lc($3), lc($4)); - - $self->{global}->{$mapping_online{$online}}++; - $self->{global}->{$state}++; - } -} - -1; - -__END__ - -=head1 MODE - -Check drives. - -=over 8 - -=item B<--warning-*> - -Set warning threshold. Can be : 'online', 'offline', 'unavailable', -'empty', 'loaded', 'unloaded', 'reserved', 'unknown'. - -=item B<--critical-*> - -Set critical threshold. Can be : Can be : 'online', 'offline', 'unavailable', -'empty', 'loaded', 'unloaded', 'reserved', 'unknown'. - -=back - -=cut - +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::backup::tsm::local::mode::drives; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0, cb_prefix_output => 'prefix_global_output' }, + ]; + + $self->{maps_counters}->{global} = [ + { label => 'online', set => { + key_values => [ { name => 'online' } ], + output_template => 'online : %s', + perfdatas => [ + { label => 'online', value => 'online_absolute', template => '%s', min => 0 }, + ], + } + }, + { label => 'offline', set => { + key_values => [ { name => 'offline' } ], + output_template => 'offline : %s', + perfdatas => [ + { label => 'offline', value => 'offline_absolute', template => '%s', min => 0 }, + ], + } + }, + { label => 'unavailable', set => { + key_values => [ { name => 'unavailable' } ], + output_template => 'unavailable : %s', + perfdatas => [ + { label => 'unavailable', value => 'unavailable_absolute', template => '%s', min => 0 }, + ], + } + }, + { label => 'empty', set => { + key_values => [ { name => 'empty' } ], + output_template => 'empty : %s', + perfdatas => [ + { label => 'empty', value => 'empty_absolute', template => '%s', min => 0 }, + ], + } + }, + { label => 'loaded', set => { + key_values => [ { name => 'loaded' } ], + output_template => 'loaded : %s', + perfdatas => [ + { label => 'loaded', value => 'loaded_absolute', template => '%s', min => 0 }, + ], + } + }, + { label => 'unloaded', set => { + key_values => [ { name => 'unloaded' } ], + output_template => 'unloaded : %s', + perfdatas => [ + { label => 'unloaded', value => 'unloaded_absolute', template => '%s', min => 0 }, + ], + } + }, + { label => 'reserved', set => { + key_values => [ { name => 'reserved' } ], + output_template => 'reserved : %s', + perfdatas => [ + { label => 'reserved', value => 'reserved_absolute', template => '%s', min => 0 }, + ], + } + }, + { label => 'unknown', set => { + key_values => [ { name => 'unknown' } ], + output_template => 'unknown : %s', + perfdatas => [ + { label => 'unknown', value => 'unknown_absolute', template => '%s', min => 0 }, + ], + } + }, + ]; +} + +sub prefix_global_output { + my ($self, %options) = @_; + + return "Total Drives "; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + }); + + return $self; +} + +sub manage_selection { + my ($self, %options) = @_; + + my $response = $options{custom}->execute_command( + query => "SELECT library_name, drive_name, online, drive_state FROM drives" + ); + $self->{global} = { + online => 0, offline => 0, + unavailable => 0, empty => 0, loaded => 0, unloaded => 0, reserved => 0, unknown => 0, + }; + + my %mapping_online = (yes => 'online', no => 'offline'); + while ($response =~ /^(.*?),(.*?),(yes|no),(unavailable|empty|loaded|unloaded|reserved|unknown)$/mgi) { + my ($library, $drive, $online, $state) = ($1, $2, lc($3), lc($4)); + + $self->{global}->{$mapping_online{$online}}++; + $self->{global}->{$state}++; + } +} + +1; + +__END__ + +=head1 MODE + +Check drives. + +=over 8 + +=item B<--warning-*> + +Set warning threshold. Can be : 'online', 'offline', 'unavailable', +'empty', 'loaded', 'unloaded', 'reserved', 'unknown'. + +=item B<--critical-*> + +Set critical threshold. Can be : Can be : 'online', 'offline', 'unavailable', +'empty', 'loaded', 'unloaded', 'reserved', 'unknown'. + +=back + +=cut + diff --git a/apps/backup/tsm/local/mode/nodes.pm b/apps/backup/tsm/local/mode/nodes.pm index 5f944ad18..963932da6 100644 --- a/apps/backup/tsm/local/mode/nodes.pm +++ b/apps/backup/tsm/local/mode/nodes.pm @@ -1,113 +1,113 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package apps::backup::tsm::local::mode::nodes; - -use base qw(centreon::plugins::templates::counter); - -use strict; -use warnings; - -sub set_counters { - my ($self, %options) = @_; - - $self->{maps_counters_type} = [ - { name => 'global', type => 0 }, - ]; - - $self->{maps_counters}->{global} = [ - { label => 'associated', set => { - key_values => [ { name => 'associated' } ], - output_template => 'Total Associated Nodes : %s', - perfdatas => [ - { label => 'associated', value => 'associated_absolute', template => '%s', min => 0 }, - ], - } - }, - { label => 'non-associated', set => { - key_values => [ { name => 'non_associated' } ], - output_template => 'Total Non Associated Nodes : %s', - perfdatas => [ - { label => 'non_associated', value => 'non_associated_absolute', template => '%s', min => 0 }, - ], - } - }, - { label => 'locked', set => { - key_values => [ { name => 'locked' } ], - output_template => 'Total Locked Nodes : %s', - perfdatas => [ - { label => 'locked', value => 'locked_absolute', template => '%s', min => 0 }, - ], - } - }, - ]; -} - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options); - bless $self, $class; - - $self->{version} = '1.0'; - $options{options}->add_options(arguments => - { - }); - - return $self; -} - -sub manage_selection { - my ($self, %options) = @_; - - my $response = $options{custom}->execute_command( - query => "SELECT node_name, 'non_associated' FROM nodes WHERE node_name NOT IN (SELECT node_name FROM associations) UNION SELECT node_name, 'associated' FROM nodes WHERE node_name IN (SELECT node_name FROM associations) UNION SELECT node_name, 'locked' FROM nodes WHERE locked='YES'" - ); - $self->{global} = { associated => 0, non_associated => 0, locked => 0 }; - - while ($response =~ /^(.*?),(non_associated|associated|locked)$/mg) { - my ($node_name, $type) = ($1, $2); - - $self->{global}->{$type}++; - $self->{output}->output_add(long_msg => "node '$node_name' is $type"); - } -} - -1; - -__END__ - -=head1 MODE - -Check node status. - -=over 8 - -=item B<--warning-*> - -Set warning threshold. Can be : 'associated', 'non-associated', 'locked'. - -=item B<--critical-*> - -Set critical threshold. Can be : Can be : 'associated', 'non-associated', 'locked'. - -=back - -=cut - +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::backup::tsm::local::mode::nodes; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0 }, + ]; + + $self->{maps_counters}->{global} = [ + { label => 'associated', set => { + key_values => [ { name => 'associated' } ], + output_template => 'Total Associated Nodes : %s', + perfdatas => [ + { label => 'associated', value => 'associated_absolute', template => '%s', min => 0 }, + ], + } + }, + { label => 'non-associated', set => { + key_values => [ { name => 'non_associated' } ], + output_template => 'Total Non Associated Nodes : %s', + perfdatas => [ + { label => 'non_associated', value => 'non_associated_absolute', template => '%s', min => 0 }, + ], + } + }, + { label => 'locked', set => { + key_values => [ { name => 'locked' } ], + output_template => 'Total Locked Nodes : %s', + perfdatas => [ + { label => 'locked', value => 'locked_absolute', template => '%s', min => 0 }, + ], + } + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + }); + + return $self; +} + +sub manage_selection { + my ($self, %options) = @_; + + my $response = $options{custom}->execute_command( + query => "SELECT node_name, 'non_associated' FROM nodes WHERE node_name NOT IN (SELECT node_name FROM associations) UNION SELECT node_name, 'associated' FROM nodes WHERE node_name IN (SELECT node_name FROM associations) UNION SELECT node_name, 'locked' FROM nodes WHERE locked='YES'" + ); + $self->{global} = { associated => 0, non_associated => 0, locked => 0 }; + + while ($response =~ /^(.*?),(non_associated|associated|locked)$/mg) { + my ($node_name, $type) = ($1, $2); + + $self->{global}->{$type}++; + $self->{output}->output_add(long_msg => "node '$node_name' is $type"); + } +} + +1; + +__END__ + +=head1 MODE + +Check node status. + +=over 8 + +=item B<--warning-*> + +Set warning threshold. Can be : 'associated', 'non-associated', 'locked'. + +=item B<--critical-*> + +Set critical threshold. Can be : Can be : 'associated', 'non-associated', 'locked'. + +=back + +=cut + diff --git a/apps/backup/tsm/local/mode/sessions.pm b/apps/backup/tsm/local/mode/sessions.pm index 945e62c4c..1d3bf3d57 100644 --- a/apps/backup/tsm/local/mode/sessions.pm +++ b/apps/backup/tsm/local/mode/sessions.pm @@ -1,247 +1,247 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package apps::backup::tsm::local::mode::sessions; - -use base qw(centreon::plugins::templates::counter); - -use strict; -use warnings; -use centreon::plugins::misc; - -my $instance_mode; - -sub custom_status_threshold { - my ($self, %options) = @_; - my $status = 'ok'; - my $message; - - eval { - local $SIG{__WARN__} = sub { $message = $_[0]; }; - local $SIG{__DIE__} = sub { $message = $_[0]; }; - - if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && - eval "$instance_mode->{option_results}->{critical_status}") { - $status = 'critical'; - } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && - eval "$instance_mode->{option_results}->{warning_status}") { - $status = 'warning'; - } - }; - if (defined($message)) { - $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); - } - - return $status; -} - -sub custom_status_output { - my ($self, %options) = @_; - - my $msg = sprintf("[client name: %s] [state: %s] [session type: %s] started since", - $self->{result_values}->{client_name}, $self->{result_values}->{state}, - $self->{result_values}->{session_type}, $self->{result_values}->{generation_time}); - return $msg; -} - -sub custom_status_calc { - my ($self, %options) = @_; - - $self->{result_values}->{session_id} = $options{new_datas}->{$self->{instance} . '_session_id'}; - $self->{result_values}->{client_name} = $options{new_datas}->{$self->{instance} . '_client_name'}; - $self->{result_values}->{session_type} = $options{new_datas}->{$self->{instance} . '_session_type'}; - $self->{result_values}->{state} = $options{new_datas}->{$self->{instance} . '_state'}; - $self->{result_values}->{since} = $options{new_datas}->{$self->{instance} . '_since'}; - $self->{result_values}->{generation_time} = $options{new_datas}->{$self->{instance} . '_generation_time'}; - return 0; -} - -sub set_counters { - my ($self, %options) = @_; - - $self->{maps_counters_type} = [ - { name => 'global', type => 0 }, - { name => 'sessions', type => 1, cb_prefix_output => 'prefix_sessions_output', message_multiple => 'All sessions are ok' }, - ]; - - $self->{maps_counters}->{global} = [ - { label => 'total', set => { - key_values => [ { name => 'total' } ], - output_template => 'Total Sessions : %s', - perfdatas => [ - { label => 'total', value => 'total_absolute', template => '%s', min => 0 }, - ], - } - }, - ]; - - $self->{maps_counters}->{sessions} = [ - { label => 'status', threshold => 0, set => { - key_values => [ { name => 'session_id' }, { name => 'client_name' }, { name => 'session_type' }, - { name => 'state' }, { name => 'since' }, { name => 'generation_time' } ], - closure_custom_calc => $self->can('custom_status_calc'), - closure_custom_output => $self->can('custom_status_output'), - closure_custom_perfdata => sub { return 0; }, - closure_custom_threshold_check => $self->can('custom_status_threshold'), - } - }, - ]; -} - -sub prefix_sessions_output { - my ($self, %options) = @_; - - return "Session '" . $options{instance_value}->{session_id} . "' "; -} - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options); - bless $self, $class; - - $self->{version} = '1.0'; - $options{options}->add_options(arguments => - { - "filter-clientname:s" => { name => 'filter_clientname' }, - "filter-sessiontype:s" => { name => 'filter_sessiontype' }, - "filter-state:s" => { name => 'filter_state' }, - "warning-status:s" => { name => 'warning_status', default => '' }, - "critical-status:s" => { name => 'critical_status', default => '' }, - "timezone:s" => { name => 'timezone' }, - }); - - centreon::plugins::misc::mymodule_load(output => $self->{output}, module => 'DateTime', - error_msg => "Cannot load module 'DateTime'."); - return $self; -} - -sub check_options { - my ($self, %options) = @_; - $self->SUPER::check_options(%options); - - $instance_mode = $self; - $self->change_macros(); - - $self->{option_results}->{timezone} = 'GMT' if (!defined($self->{option_results}->{timezone}) || $self->{option_results}->{timezone} eq ''); -} - -sub change_macros { - my ($self, %options) = @_; - - foreach (('warning_status', 'critical_status')) { - if (defined($self->{option_results}->{$_})) { - $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; - } - } -} - -sub manage_selection { - my ($self, %options) = @_; - - my $response = $options{custom}->execute_command( - query => "SELECT session_id, client_name, start_time, state, session_type FROM sessions" - ); - $self->{sessions} = {}; - $self->{global} = { total => 0 }; - - while ($response =~ /^(.*?),(.*?),(.*?),(.*?),(.*?)$/mg) { - my ($session_id, $client_name, $start_time, $state, $session_type) = ($1, $2, $3, $4, $5); - $start_time =~ /^(\d+)-(\d+)-(\d+)\s+(\d+)[:\/](\d+)[:\/](\d+)/; - - my $dt = DateTime->new(year => $1, month => $2, day => $3, hour => $4, minute => $5, second => $6, - time_zone => $self->{option_results}->{timezone}); - - if (defined($self->{option_results}->{filter_clientname}) && $self->{option_results}->{filter_clientname} ne '' && - $client_name !~ /$self->{option_results}->{filter_clientname}/) { - $self->{output}->output_add(long_msg => "skipping '" . $client_name . "': no matching client name filter.", debug => 1); - next; - } - if (defined($self->{option_results}->{filter_sessiontype}) && $self->{option_results}->{filter_sessiontype} ne '' && - $session_type !~ /$self->{option_results}->{filter_sessiontype}/) { - $self->{output}->output_add(long_msg => "skipping '" . $session_type . "': no matching session type filter.", debug => 1); - next; - } - if (defined($self->{option_results}->{filter_state}) && $self->{option_results}->{filter_state} ne '' && - $state !~ /$self->{option_results}->{filter_state}/) { - $self->{output}->output_add(long_msg => "skipping '" . $session_type . "': no matching state filter.", debug => 1); - next; - } - - my $diff_time = time() - $dt->epoch; - $self->{global}->{total}++; - - $self->{sessions}->{$session_id} = { - session_id => $session_id, - client_name => $client_name, - state => $state, - session_type => $session_type, - since => $diff_time, generation_time => centreon::plugins::misc::change_seconds(value => $diff_time) - }; - } -} - -1; - -__END__ - -=head1 MODE - -Check sessions. - -=over 8 - -=item B<--filter-clientname> - -Filter by client name. - -=item B<--filter-state> - -Filter by state. - -=item B<--filter-sessiontype> - -Filter by session type. - -=item B<--warning-status> - -Set warning threshold for status (Default: '') -Can used special variables like: %{client_name}, %{state}, %{session_type}, %{since} - -=item B<--critical-status> - -Set critical threshold for status (Default: ''). -Can used special variables like: %{client_name}, %{state}, %{session_type}, %{since} - -=item B<--warning-*> - -Set warning threshold. Can be : 'total'. - -=item B<--critical-*> - -Set critical threshold. Can be : 'total'. - -=item B<--timezone> - -Timezone of time options. Default is 'GMT'. - -=back - -=cut - +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::backup::tsm::local::mode::sessions; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use centreon::plugins::misc; + +my $instance_mode; + +sub custom_status_threshold { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && + eval "$instance_mode->{option_results}->{critical_status}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && + eval "$instance_mode->{option_results}->{warning_status}") { + $status = 'warning'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_status_output { + my ($self, %options) = @_; + + my $msg = sprintf("[client name: %s] [state: %s] [session type: %s] started since", + $self->{result_values}->{client_name}, $self->{result_values}->{state}, + $self->{result_values}->{session_type}, $self->{result_values}->{generation_time}); + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{session_id} = $options{new_datas}->{$self->{instance} . '_session_id'}; + $self->{result_values}->{client_name} = $options{new_datas}->{$self->{instance} . '_client_name'}; + $self->{result_values}->{session_type} = $options{new_datas}->{$self->{instance} . '_session_type'}; + $self->{result_values}->{state} = $options{new_datas}->{$self->{instance} . '_state'}; + $self->{result_values}->{since} = $options{new_datas}->{$self->{instance} . '_since'}; + $self->{result_values}->{generation_time} = $options{new_datas}->{$self->{instance} . '_generation_time'}; + return 0; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0 }, + { name => 'sessions', type => 1, cb_prefix_output => 'prefix_sessions_output', message_multiple => 'All sessions are ok' }, + ]; + + $self->{maps_counters}->{global} = [ + { label => 'total', set => { + key_values => [ { name => 'total' } ], + output_template => 'Total Sessions : %s', + perfdatas => [ + { label => 'total', value => 'total_absolute', template => '%s', min => 0 }, + ], + } + }, + ]; + + $self->{maps_counters}->{sessions} = [ + { label => 'status', threshold => 0, set => { + key_values => [ { name => 'session_id' }, { name => 'client_name' }, { name => 'session_type' }, + { name => 'state' }, { name => 'since' }, { name => 'generation_time' } ], + closure_custom_calc => $self->can('custom_status_calc'), + closure_custom_output => $self->can('custom_status_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + ]; +} + +sub prefix_sessions_output { + my ($self, %options) = @_; + + return "Session '" . $options{instance_value}->{session_id} . "' "; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "filter-clientname:s" => { name => 'filter_clientname' }, + "filter-sessiontype:s" => { name => 'filter_sessiontype' }, + "filter-state:s" => { name => 'filter_state' }, + "warning-status:s" => { name => 'warning_status', default => '' }, + "critical-status:s" => { name => 'critical_status', default => '' }, + "timezone:s" => { name => 'timezone' }, + }); + + centreon::plugins::misc::mymodule_load(output => $self->{output}, module => 'DateTime', + error_msg => "Cannot load module 'DateTime'."); + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; + $self->change_macros(); + + $self->{option_results}->{timezone} = 'GMT' if (!defined($self->{option_results}->{timezone}) || $self->{option_results}->{timezone} eq ''); +} + +sub change_macros { + my ($self, %options) = @_; + + foreach (('warning_status', 'critical_status')) { + if (defined($self->{option_results}->{$_})) { + $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; + } + } +} + +sub manage_selection { + my ($self, %options) = @_; + + my $response = $options{custom}->execute_command( + query => "SELECT session_id, client_name, start_time, state, session_type FROM sessions" + ); + $self->{sessions} = {}; + $self->{global} = { total => 0 }; + + while ($response =~ /^(.*?),(.*?),(.*?),(.*?),(.*?)$/mg) { + my ($session_id, $client_name, $start_time, $state, $session_type) = ($1, $2, $3, $4, $5); + $start_time =~ /^(\d+)-(\d+)-(\d+)\s+(\d+)[:\/](\d+)[:\/](\d+)/; + + my $dt = DateTime->new(year => $1, month => $2, day => $3, hour => $4, minute => $5, second => $6, + time_zone => $self->{option_results}->{timezone}); + + if (defined($self->{option_results}->{filter_clientname}) && $self->{option_results}->{filter_clientname} ne '' && + $client_name !~ /$self->{option_results}->{filter_clientname}/) { + $self->{output}->output_add(long_msg => "skipping '" . $client_name . "': no matching client name filter.", debug => 1); + next; + } + if (defined($self->{option_results}->{filter_sessiontype}) && $self->{option_results}->{filter_sessiontype} ne '' && + $session_type !~ /$self->{option_results}->{filter_sessiontype}/) { + $self->{output}->output_add(long_msg => "skipping '" . $session_type . "': no matching session type filter.", debug => 1); + next; + } + if (defined($self->{option_results}->{filter_state}) && $self->{option_results}->{filter_state} ne '' && + $state !~ /$self->{option_results}->{filter_state}/) { + $self->{output}->output_add(long_msg => "skipping '" . $session_type . "': no matching state filter.", debug => 1); + next; + } + + my $diff_time = time() - $dt->epoch; + $self->{global}->{total}++; + + $self->{sessions}->{$session_id} = { + session_id => $session_id, + client_name => $client_name, + state => $state, + session_type => $session_type, + since => $diff_time, generation_time => centreon::plugins::misc::change_seconds(value => $diff_time) + }; + } +} + +1; + +__END__ + +=head1 MODE + +Check sessions. + +=over 8 + +=item B<--filter-clientname> + +Filter by client name. + +=item B<--filter-state> + +Filter by state. + +=item B<--filter-sessiontype> + +Filter by session type. + +=item B<--warning-status> + +Set warning threshold for status (Default: '') +Can used special variables like: %{client_name}, %{state}, %{session_type}, %{since} + +=item B<--critical-status> + +Set critical threshold for status (Default: ''). +Can used special variables like: %{client_name}, %{state}, %{session_type}, %{since} + +=item B<--warning-*> + +Set warning threshold. Can be : 'total'. + +=item B<--critical-*> + +Set critical threshold. Can be : 'total'. + +=item B<--timezone> + +Timezone of time options. Default is 'GMT'. + +=back + +=cut + diff --git a/apps/backup/tsm/local/mode/volumes.pm b/apps/backup/tsm/local/mode/volumes.pm index c01a90bfd..ba2dc0a0a 100644 --- a/apps/backup/tsm/local/mode/volumes.pm +++ b/apps/backup/tsm/local/mode/volumes.pm @@ -1,193 +1,193 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package apps::backup::tsm::local::mode::volumes; - -use base qw(centreon::plugins::templates::counter); - -use strict; -use warnings; - -sub set_counters { - my ($self, %options) = @_; - - $self->{maps_counters_type} = [ - { name => 'global', type => 0 }, - { name => 'volumes', type => 1, cb_prefix_output => 'prefix_volumes_output', message_multiple => 'All volumes are ok' }, - ]; - - $self->{maps_counters}->{global} = [ - { label => 'total', set => { - key_values => [ { name => 'total' } ], - output_template => 'Volumes Total : %s', - perfdatas => [ - { label => 'total', value => 'total_absolute', template => '%s', min => 0 }, - ], - } - }, - { label => 'online', set => { - key_values => [ { name => 'online' } ], - output_template => 'Online : %s', - perfdatas => [ - { label => 'online', value => 'online_absolute', template => '%s', min => 0 }, - ], - } - }, - { label => 'offline', set => { - key_values => [ { name => 'offline' } ], - output_template => 'Offline : %s', - perfdatas => [ - { label => 'offline', value => 'offline_absolute', template => '%s', min => 0 }, - ], - } - }, - { label => 'empty', set => { - key_values => [ { name => 'empty' } ], - output_template => 'Empty : %s', - perfdatas => [ - { label => 'empty', value => 'empty_absolute', template => '%s', min => 0 }, - ], - } - }, - { label => 'pending', set => { - key_values => [ { name => 'pending' } ], - output_template => 'Pending : %s', - perfdatas => [ - { label => 'pending', value => 'pending_absolute', template => '%s', min => 0 }, - ], - } - }, - { label => 'filling', set => { - key_values => [ { name => 'filling' } ], - output_template => 'Filling : %s', - perfdatas => [ - { label => 'filling', value => 'filling_absolute', template => '%s', min => 0 }, - ], - } - }, - { label => 'full', set => { - key_values => [ { name => 'full' } ], - output_template => 'Full : %s', - perfdatas => [ - { label => 'full', value => 'full_absolute', template => '%s', min => 0 }, - ], - } - }, - ]; - - $self->{maps_counters}->{volumes} = [ - { label => 'used', set => { - key_values => [ { name => 'prct_utilized' }, { name => 'display' } ], - output_template => 'Usage : %s %%', - perfdatas => [ - { label => 'used', value => 'prct_utilized_absolute', template => '%s', min => 0, max => 100, - unit => '%', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - ]; -} - -sub prefix_volumes_output { - my ($self, %options) = @_; - - return "Volumes '" . $options{instance_value}->{display} . "' "; -} - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options); - bless $self, $class; - - $self->{version} = '1.0'; - $options{options}->add_options(arguments => - { - "filter-volume:s" => { name => 'filter_volume' }, - "filter-stgpool:s" => { name => 'filter_stgpool' }, - }); - - return $self; -} - -sub manage_selection { - my ($self, %options) = @_; - - my $response = $options{custom}->execute_command( - query => "SELECT volume_name, stgpool_name, status, pct_utilized FROM volumes" - ); - $self->{volumes} = {}; - $self->{global} = { total => 0, online => 0, offline => 0, empty => 0, pending => 0, filling => 0, full => 0 }; - - while ($response =~ /^(.*?),(.*?),(.*?),(.*?)$/mg) { - my ($volume_name, $stgpool, $status, $pct_utilized) = ($1, $2, $3, $4); - - if (defined($self->{option_results}->{filter_volume}) && $self->{option_results}->{filter_volume} ne '' && - $volume_name !~ /$self->{option_results}->{filter_volume}/) { - $self->{output}->output_add(long_msg => "skipping '" . $volume_name . "': no matching volume name filter.", debug => 1); - next; - } - if (defined($self->{option_results}->{filter_stgpool}) && $self->{option_results}->{filter_stgpool} ne '' && - $stgpool !~ /$self->{option_results}->{filter_stgpool}/) { - $self->{output}->output_add(long_msg => "skipping '" . $stgpool . "': no matching storage pool filter.", debug => 1); - next; - } - - $self->{global}->{total}++; - $self->{global}->{lc($status)}++; - - $self->{volumes}->{$volume_name} = { - display => $volume_name, - prct_utilized => $pct_utilized, - }; - } -} - -1; - -__END__ - -=head1 MODE - -Check volumes. - -=over 8 - -=item B<--filter-volume> - -Filter by volume name. - -=item B<--filter-stgpool> - -Filter by storage pool name. - -=item B<--warning-*> - -Set warning threshold. Can be : 'total', 'used', -'online',' offline', 'empty', 'pending', 'filling', full'. - -=item B<--critical-*> - -Set critical threshold. Can be : 'total', 'used', -'online', 'offline', empty', 'pending', 'filling', full'. - -=back - -=cut - +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::backup::tsm::local::mode::volumes; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0 }, + { name => 'volumes', type => 1, cb_prefix_output => 'prefix_volumes_output', message_multiple => 'All volumes are ok' }, + ]; + + $self->{maps_counters}->{global} = [ + { label => 'total', set => { + key_values => [ { name => 'total' } ], + output_template => 'Volumes Total : %s', + perfdatas => [ + { label => 'total', value => 'total_absolute', template => '%s', min => 0 }, + ], + } + }, + { label => 'online', set => { + key_values => [ { name => 'online' } ], + output_template => 'Online : %s', + perfdatas => [ + { label => 'online', value => 'online_absolute', template => '%s', min => 0 }, + ], + } + }, + { label => 'offline', set => { + key_values => [ { name => 'offline' } ], + output_template => 'Offline : %s', + perfdatas => [ + { label => 'offline', value => 'offline_absolute', template => '%s', min => 0 }, + ], + } + }, + { label => 'empty', set => { + key_values => [ { name => 'empty' } ], + output_template => 'Empty : %s', + perfdatas => [ + { label => 'empty', value => 'empty_absolute', template => '%s', min => 0 }, + ], + } + }, + { label => 'pending', set => { + key_values => [ { name => 'pending' } ], + output_template => 'Pending : %s', + perfdatas => [ + { label => 'pending', value => 'pending_absolute', template => '%s', min => 0 }, + ], + } + }, + { label => 'filling', set => { + key_values => [ { name => 'filling' } ], + output_template => 'Filling : %s', + perfdatas => [ + { label => 'filling', value => 'filling_absolute', template => '%s', min => 0 }, + ], + } + }, + { label => 'full', set => { + key_values => [ { name => 'full' } ], + output_template => 'Full : %s', + perfdatas => [ + { label => 'full', value => 'full_absolute', template => '%s', min => 0 }, + ], + } + }, + ]; + + $self->{maps_counters}->{volumes} = [ + { label => 'used', set => { + key_values => [ { name => 'prct_utilized' }, { name => 'display' } ], + output_template => 'Usage : %s %%', + perfdatas => [ + { label => 'used', value => 'prct_utilized_absolute', template => '%s', min => 0, max => 100, + unit => '%', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + ]; +} + +sub prefix_volumes_output { + my ($self, %options) = @_; + + return "Volumes '" . $options{instance_value}->{display} . "' "; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "filter-volume:s" => { name => 'filter_volume' }, + "filter-stgpool:s" => { name => 'filter_stgpool' }, + }); + + return $self; +} + +sub manage_selection { + my ($self, %options) = @_; + + my $response = $options{custom}->execute_command( + query => "SELECT volume_name, stgpool_name, status, pct_utilized FROM volumes" + ); + $self->{volumes} = {}; + $self->{global} = { total => 0, online => 0, offline => 0, empty => 0, pending => 0, filling => 0, full => 0 }; + + while ($response =~ /^(.*?),(.*?),(.*?),(.*?)$/mg) { + my ($volume_name, $stgpool, $status, $pct_utilized) = ($1, $2, $3, $4); + + if (defined($self->{option_results}->{filter_volume}) && $self->{option_results}->{filter_volume} ne '' && + $volume_name !~ /$self->{option_results}->{filter_volume}/) { + $self->{output}->output_add(long_msg => "skipping '" . $volume_name . "': no matching volume name filter.", debug => 1); + next; + } + if (defined($self->{option_results}->{filter_stgpool}) && $self->{option_results}->{filter_stgpool} ne '' && + $stgpool !~ /$self->{option_results}->{filter_stgpool}/) { + $self->{output}->output_add(long_msg => "skipping '" . $stgpool . "': no matching storage pool filter.", debug => 1); + next; + } + + $self->{global}->{total}++; + $self->{global}->{lc($status)}++; + + $self->{volumes}->{$volume_name} = { + display => $volume_name, + prct_utilized => $pct_utilized, + }; + } +} + +1; + +__END__ + +=head1 MODE + +Check volumes. + +=over 8 + +=item B<--filter-volume> + +Filter by volume name. + +=item B<--filter-stgpool> + +Filter by storage pool name. + +=item B<--warning-*> + +Set warning threshold. Can be : 'total', 'used', +'online',' offline', 'empty', 'pending', 'filling', full'. + +=item B<--critical-*> + +Set critical threshold. Can be : 'total', 'used', +'online', 'offline', empty', 'pending', 'filling', full'. + +=back + +=cut + diff --git a/apps/backup/tsm/local/plugin.pm b/apps/backup/tsm/local/plugin.pm index 5a4d001d5..9b1c0e3b7 100644 --- a/apps/backup/tsm/local/plugin.pm +++ b/apps/backup/tsm/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/backup/veeam/local/mode/jobstatus.pm b/apps/backup/veeam/local/mode/jobstatus.pm index 9c606aa30..0d00ec9ab 100644 --- a/apps/backup/veeam/local/mode/jobstatus.pm +++ b/apps/backup/veeam/local/mode/jobstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/backup/veeam/local/mode/listjobs.pm b/apps/backup/veeam/local/mode/listjobs.pm index 7cf5a2860..7fa225a0e 100644 --- a/apps/backup/veeam/local/mode/listjobs.pm +++ b/apps/backup/veeam/local/mode/listjobs.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/backup/veeam/local/plugin.pm b/apps/backup/veeam/local/plugin.pm index 2d59c721f..686bdc981 100644 --- a/apps/backup/veeam/local/plugin.pm +++ b/apps/backup/veeam/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/biztalk/sql/mode/rlocationdisabled.pm b/apps/biztalk/sql/mode/rlocationdisabled.pm index 38c4fc3ba..3658f541d 100644 --- a/apps/biztalk/sql/mode/rlocationdisabled.pm +++ b/apps/biztalk/sql/mode/rlocationdisabled.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/bluemind/mode/incoming.pm b/apps/bluemind/mode/incoming.pm index 36ad96b99..8212ec791 100644 --- a/apps/bluemind/mode/incoming.pm +++ b/apps/bluemind/mode/incoming.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/bluemind/plugin.pm b/apps/bluemind/plugin.pm index ce82f8331..b62a8807a 100644 --- a/apps/bluemind/plugin.pm +++ b/apps/bluemind/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/centreon/local/mode/brokerstats.pm b/apps/centreon/local/mode/brokerstats.pm index 10b1d9704..9ab13f7c8 100644 --- a/apps/centreon/local/mode/brokerstats.pm +++ b/apps/centreon/local/mode/brokerstats.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/centreon/local/mode/centreonpluginsversion.pm b/apps/centreon/local/mode/centreonpluginsversion.pm index ce2829ad9..9011500d0 100644 --- a/apps/centreon/local/mode/centreonpluginsversion.pm +++ b/apps/centreon/local/mode/centreonpluginsversion.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/centreon/local/mode/downtimetrap.pm b/apps/centreon/local/mode/downtimetrap.pm index 7e89c9ae3..175cec731 100644 --- a/apps/centreon/local/mode/downtimetrap.pm +++ b/apps/centreon/local/mode/downtimetrap.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/centreon/local/mode/metaservice.pm b/apps/centreon/local/mode/metaservice.pm index 153b00507..3fb33bc39 100644 --- a/apps/centreon/local/mode/metaservice.pm +++ b/apps/centreon/local/mode/metaservice.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/centreon/local/mode/retentionbroker.pm b/apps/centreon/local/mode/retentionbroker.pm index cbb69293d..ec3eca42d 100644 --- a/apps/centreon/local/mode/retentionbroker.pm +++ b/apps/centreon/local/mode/retentionbroker.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/centreon/local/plugin.pm b/apps/centreon/local/plugin.pm index 65f53fa91..3392b58f7 100644 --- a/apps/centreon/local/plugin.pm +++ b/apps/centreon/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/centreon/map/jmx/mode/eventqueue.pm b/apps/centreon/map/jmx/mode/eventqueue.pm index 3097c5fa7..4a7716610 100644 --- a/apps/centreon/map/jmx/mode/eventqueue.pm +++ b/apps/centreon/map/jmx/mode/eventqueue.pm @@ -1,4 +1,4 @@ -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/centreon/map/jmx/mode/eventstatistics.pm b/apps/centreon/map/jmx/mode/eventstatistics.pm index e57d4fd3f..e875ec2d1 100644 --- a/apps/centreon/map/jmx/mode/eventstatistics.pm +++ b/apps/centreon/map/jmx/mode/eventstatistics.pm @@ -1,4 +1,4 @@ -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/centreon/map/jmx/mode/gates.pm b/apps/centreon/map/jmx/mode/gates.pm index 9291f8491..d62b76805 100644 --- a/apps/centreon/map/jmx/mode/gates.pm +++ b/apps/centreon/map/jmx/mode/gates.pm @@ -1,4 +1,4 @@ -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/centreon/map/jmx/mode/sessions.pm b/apps/centreon/map/jmx/mode/sessions.pm index 609a82b09..045033ede 100644 --- a/apps/centreon/map/jmx/mode/sessions.pm +++ b/apps/centreon/map/jmx/mode/sessions.pm @@ -1,4 +1,4 @@ -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/centreon/map/jmx/plugin.pm b/apps/centreon/map/jmx/plugin.pm index fd44545c7..bcf4d5061 100644 --- a/apps/centreon/map/jmx/plugin.pm +++ b/apps/centreon/map/jmx/plugin.pm @@ -1,4 +1,4 @@ -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/centreon/sql/mode/countnotifications.pm b/apps/centreon/sql/mode/countnotifications.pm index 2e36baef0..ede281d5d 100644 --- a/apps/centreon/sql/mode/countnotifications.pm +++ b/apps/centreon/sql/mode/countnotifications.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/centreon/sql/mode/countproblems.pm b/apps/centreon/sql/mode/countproblems.pm index 601427bb2..4afe41207 100644 --- a/apps/centreon/sql/mode/countproblems.pm +++ b/apps/centreon/sql/mode/countproblems.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/centreon/sql/mode/countservices.pm b/apps/centreon/sql/mode/countservices.pm index 0c5a16bb5..a3e3fe177 100644 --- a/apps/centreon/sql/mode/countservices.pm +++ b/apps/centreon/sql/mode/countservices.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/centreon/sql/mode/dsmqueue.pm b/apps/centreon/sql/mode/dsmqueue.pm index a1a582b36..bbd45e8fb 100644 --- a/apps/centreon/sql/mode/dsmqueue.pm +++ b/apps/centreon/sql/mode/dsmqueue.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/centreon/sql/mode/multiservices.pm b/apps/centreon/sql/mode/multiservices.pm index 185154088..6028bee56 100644 --- a/apps/centreon/sql/mode/multiservices.pm +++ b/apps/centreon/sql/mode/multiservices.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/centreon/sql/mode/partitioning.pm b/apps/centreon/sql/mode/partitioning.pm index 27ff60e29..5230d3624 100644 --- a/apps/centreon/sql/mode/partitioning.pm +++ b/apps/centreon/sql/mode/partitioning.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/centreon/sql/mode/pollerdelay.pm b/apps/centreon/sql/mode/pollerdelay.pm index f8ef0e3b1..1606a0c2d 100644 --- a/apps/centreon/sql/mode/pollerdelay.pm +++ b/apps/centreon/sql/mode/pollerdelay.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/centreon/sql/mode/virtualservice.pm b/apps/centreon/sql/mode/virtualservice.pm index 765caf67e..271d40bef 100644 --- a/apps/centreon/sql/mode/virtualservice.pm +++ b/apps/centreon/sql/mode/virtualservice.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/checkmyws/mode/status.pm b/apps/checkmyws/mode/status.pm index f7e8d5bfa..aec30b494 100644 --- a/apps/checkmyws/mode/status.pm +++ b/apps/checkmyws/mode/status.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/checkmyws/plugin.pm b/apps/checkmyws/plugin.pm index c96d0ecef..ab532ff01 100644 --- a/apps/checkmyws/plugin.pm +++ b/apps/checkmyws/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/citrix/local/mode/folder.pm b/apps/citrix/local/mode/folder.pm index 1f54c86aa..ad8bad97c 100644 --- a/apps/citrix/local/mode/folder.pm +++ b/apps/citrix/local/mode/folder.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/citrix/local/mode/license.pm b/apps/citrix/local/mode/license.pm index b85dc9690..7e7404dfd 100644 --- a/apps/citrix/local/mode/license.pm +++ b/apps/citrix/local/mode/license.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/citrix/local/mode/session.pm b/apps/citrix/local/mode/session.pm index 0c7d62361..16e10dc9e 100644 --- a/apps/citrix/local/mode/session.pm +++ b/apps/citrix/local/mode/session.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/citrix/local/mode/zone.pm b/apps/citrix/local/mode/zone.pm index c6c31e80f..2b64f7469 100644 --- a/apps/citrix/local/mode/zone.pm +++ b/apps/citrix/local/mode/zone.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/citrix/local/plugin.pm b/apps/citrix/local/plugin.pm index c1e7d069a..c7c72a6a1 100644 --- a/apps/citrix/local/plugin.pm +++ b/apps/citrix/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/cluster/mscs/local/mode/listnodes.pm b/apps/cluster/mscs/local/mode/listnodes.pm index 8b82b0489..e6ceb7241 100644 --- a/apps/cluster/mscs/local/mode/listnodes.pm +++ b/apps/cluster/mscs/local/mode/listnodes.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/cluster/mscs/local/mode/listresources.pm b/apps/cluster/mscs/local/mode/listresources.pm index fdfd31430..dd0d86369 100644 --- a/apps/cluster/mscs/local/mode/listresources.pm +++ b/apps/cluster/mscs/local/mode/listresources.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/cluster/mscs/local/mode/networkstatus.pm b/apps/cluster/mscs/local/mode/networkstatus.pm index 954289c37..7594dcebe 100644 --- a/apps/cluster/mscs/local/mode/networkstatus.pm +++ b/apps/cluster/mscs/local/mode/networkstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/cluster/mscs/local/mode/nodestatus.pm b/apps/cluster/mscs/local/mode/nodestatus.pm index 33af2e14f..8c1c944c0 100644 --- a/apps/cluster/mscs/local/mode/nodestatus.pm +++ b/apps/cluster/mscs/local/mode/nodestatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/cluster/mscs/local/mode/resourcegroupstatus.pm b/apps/cluster/mscs/local/mode/resourcegroupstatus.pm index 01828db69..35f473eca 100644 --- a/apps/cluster/mscs/local/mode/resourcegroupstatus.pm +++ b/apps/cluster/mscs/local/mode/resourcegroupstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/cluster/mscs/local/mode/resourcestatus.pm b/apps/cluster/mscs/local/mode/resourcestatus.pm index c154ef76e..6786539f1 100644 --- a/apps/cluster/mscs/local/mode/resourcestatus.pm +++ b/apps/cluster/mscs/local/mode/resourcestatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/cluster/mscs/local/plugin.pm b/apps/cluster/mscs/local/plugin.pm index 693826a68..3279e843c 100644 --- a/apps/cluster/mscs/local/plugin.pm +++ b/apps/cluster/mscs/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/elasticsearch/restapi/custom/api.pm b/apps/elasticsearch/restapi/custom/api.pm index d5d130d9b..c2eabb1ef 100644 --- a/apps/elasticsearch/restapi/custom/api.pm +++ b/apps/elasticsearch/restapi/custom/api.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/elasticsearch/restapi/mode/cluster.pm b/apps/elasticsearch/restapi/mode/cluster.pm index 541cd924e..7edc1b74c 100644 --- a/apps/elasticsearch/restapi/mode/cluster.pm +++ b/apps/elasticsearch/restapi/mode/cluster.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/elasticsearch/restapi/mode/indices.pm b/apps/elasticsearch/restapi/mode/indices.pm index cdc6be4f6..a1086628a 100644 --- a/apps/elasticsearch/restapi/mode/indices.pm +++ b/apps/elasticsearch/restapi/mode/indices.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/elasticsearch/restapi/mode/nodes.pm b/apps/elasticsearch/restapi/mode/nodes.pm index bc71a28c1..ad0446b5d 100644 --- a/apps/elasticsearch/restapi/mode/nodes.pm +++ b/apps/elasticsearch/restapi/mode/nodes.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/elasticsearch/restapi/plugin.pm b/apps/elasticsearch/restapi/plugin.pm index 24598f393..c3eaeb93b 100644 --- a/apps/elasticsearch/restapi/plugin.pm +++ b/apps/elasticsearch/restapi/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/exchange/2010/local/mode/activesyncmailbox.pm b/apps/exchange/2010/local/mode/activesyncmailbox.pm index 94f68ff03..bd4a3d424 100644 --- a/apps/exchange/2010/local/mode/activesyncmailbox.pm +++ b/apps/exchange/2010/local/mode/activesyncmailbox.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/exchange/2010/local/mode/databases.pm b/apps/exchange/2010/local/mode/databases.pm index c54219432..ee08868a4 100644 --- a/apps/exchange/2010/local/mode/databases.pm +++ b/apps/exchange/2010/local/mode/databases.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/exchange/2010/local/mode/imapmailbox.pm b/apps/exchange/2010/local/mode/imapmailbox.pm index 72742274f..9bbfc7f33 100644 --- a/apps/exchange/2010/local/mode/imapmailbox.pm +++ b/apps/exchange/2010/local/mode/imapmailbox.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/exchange/2010/local/mode/listdatabases.pm b/apps/exchange/2010/local/mode/listdatabases.pm index 83b6c42ff..c3ed7aa8c 100644 --- a/apps/exchange/2010/local/mode/listdatabases.pm +++ b/apps/exchange/2010/local/mode/listdatabases.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/exchange/2010/local/mode/mapimailbox.pm b/apps/exchange/2010/local/mode/mapimailbox.pm index 59ddedfff..a4c33742a 100644 --- a/apps/exchange/2010/local/mode/mapimailbox.pm +++ b/apps/exchange/2010/local/mode/mapimailbox.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/exchange/2010/local/mode/outlookwebservices.pm b/apps/exchange/2010/local/mode/outlookwebservices.pm index a623adacd..ddd45522f 100644 --- a/apps/exchange/2010/local/mode/outlookwebservices.pm +++ b/apps/exchange/2010/local/mode/outlookwebservices.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/exchange/2010/local/mode/owamailbox.pm b/apps/exchange/2010/local/mode/owamailbox.pm index 133ea14ff..4366a9695 100644 --- a/apps/exchange/2010/local/mode/owamailbox.pm +++ b/apps/exchange/2010/local/mode/owamailbox.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/exchange/2010/local/mode/queues.pm b/apps/exchange/2010/local/mode/queues.pm index 2745d1908..cdbc50ec4 100644 --- a/apps/exchange/2010/local/mode/queues.pm +++ b/apps/exchange/2010/local/mode/queues.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/exchange/2010/local/mode/replicationhealth.pm b/apps/exchange/2010/local/mode/replicationhealth.pm index 68a867e5f..20b6dfc70 100644 --- a/apps/exchange/2010/local/mode/replicationhealth.pm +++ b/apps/exchange/2010/local/mode/replicationhealth.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/exchange/2010/local/mode/services.pm b/apps/exchange/2010/local/mode/services.pm index 96b0aa3cc..ddfd17d46 100644 --- a/apps/exchange/2010/local/mode/services.pm +++ b/apps/exchange/2010/local/mode/services.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/exchange/2010/local/plugin.pm b/apps/exchange/2010/local/plugin.pm index 6b92a506f..77770e3ff 100644 --- a/apps/exchange/2010/local/plugin.pm +++ b/apps/exchange/2010/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/github/mode/commits.pm b/apps/github/mode/commits.pm index 43f54ee3c..b51924e90 100644 --- a/apps/github/mode/commits.pm +++ b/apps/github/mode/commits.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/github/mode/issues.pm b/apps/github/mode/issues.pm index 858d7708f..9e177dd21 100644 --- a/apps/github/mode/issues.pm +++ b/apps/github/mode/issues.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/github/mode/pullrequests.pm b/apps/github/mode/pullrequests.pm index 4603b965c..5abbae41f 100644 --- a/apps/github/mode/pullrequests.pm +++ b/apps/github/mode/pullrequests.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/github/mode/stats.pm b/apps/github/mode/stats.pm index bb8f81731..c3f1640b6 100644 --- a/apps/github/mode/stats.pm +++ b/apps/github/mode/stats.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/github/mode/status.pm b/apps/github/mode/status.pm index cb7e151ac..17f420302 100644 --- a/apps/github/mode/status.pm +++ b/apps/github/mode/status.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/github/plugin.pm b/apps/github/plugin.pm index 49f9d33cd..85e77ef86 100644 --- a/apps/github/plugin.pm +++ b/apps/github/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/haproxy/snmp/mode/backendusage.pm b/apps/haproxy/snmp/mode/backendusage.pm index 56e941b34..fc10d45d7 100644 --- a/apps/haproxy/snmp/mode/backendusage.pm +++ b/apps/haproxy/snmp/mode/backendusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/haproxy/snmp/mode/frontendusage.pm b/apps/haproxy/snmp/mode/frontendusage.pm index 5e40acd57..8e4da2c56 100644 --- a/apps/haproxy/snmp/mode/frontendusage.pm +++ b/apps/haproxy/snmp/mode/frontendusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/haproxy/snmp/plugin.pm b/apps/haproxy/snmp/plugin.pm index 53237ade7..ef846ee05 100644 --- a/apps/haproxy/snmp/plugin.pm +++ b/apps/haproxy/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/hddtemp/local/mode/temperature.pm b/apps/hddtemp/local/mode/temperature.pm index 4c9f42594..7257f29f1 100644 --- a/apps/hddtemp/local/mode/temperature.pm +++ b/apps/hddtemp/local/mode/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/hddtemp/local/plugin.pm b/apps/hddtemp/local/plugin.pm index b5251bc4f..86f5056d7 100644 --- a/apps/hddtemp/local/plugin.pm +++ b/apps/hddtemp/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/hddtemp/remote/mode/listdrives.pm b/apps/hddtemp/remote/mode/listdrives.pm index a63e678fb..87f509d12 100644 --- a/apps/hddtemp/remote/mode/listdrives.pm +++ b/apps/hddtemp/remote/mode/listdrives.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/hddtemp/remote/mode/temperature.pm b/apps/hddtemp/remote/mode/temperature.pm index be1e3200b..0db486450 100644 --- a/apps/hddtemp/remote/mode/temperature.pm +++ b/apps/hddtemp/remote/mode/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/hddtemp/remote/plugin.pm b/apps/hddtemp/remote/plugin.pm index ba45ce917..6b8783457 100644 --- a/apps/hddtemp/remote/plugin.pm +++ b/apps/hddtemp/remote/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/hyperv/2012/local/mode/listnodevms.pm b/apps/hyperv/2012/local/mode/listnodevms.pm index 9b81362df..7f3f7815b 100644 --- a/apps/hyperv/2012/local/mode/listnodevms.pm +++ b/apps/hyperv/2012/local/mode/listnodevms.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/hyperv/2012/local/mode/nodeintegrationservice.pm b/apps/hyperv/2012/local/mode/nodeintegrationservice.pm index 3d5554d18..16a66333f 100644 --- a/apps/hyperv/2012/local/mode/nodeintegrationservice.pm +++ b/apps/hyperv/2012/local/mode/nodeintegrationservice.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/hyperv/2012/local/mode/nodereplication.pm b/apps/hyperv/2012/local/mode/nodereplication.pm index 53ebe6f9f..7762739ae 100644 --- a/apps/hyperv/2012/local/mode/nodereplication.pm +++ b/apps/hyperv/2012/local/mode/nodereplication.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/hyperv/2012/local/mode/nodesnapshot.pm b/apps/hyperv/2012/local/mode/nodesnapshot.pm index 4b77656d8..b4c5aef4d 100644 --- a/apps/hyperv/2012/local/mode/nodesnapshot.pm +++ b/apps/hyperv/2012/local/mode/nodesnapshot.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/hyperv/2012/local/mode/nodevmstatus.pm b/apps/hyperv/2012/local/mode/nodevmstatus.pm index b21251b8d..4bc95d45d 100644 --- a/apps/hyperv/2012/local/mode/nodevmstatus.pm +++ b/apps/hyperv/2012/local/mode/nodevmstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/hyperv/2012/local/mode/scvmmintegrationservice.pm b/apps/hyperv/2012/local/mode/scvmmintegrationservice.pm index 2a3842597..97d475890 100644 --- a/apps/hyperv/2012/local/mode/scvmmintegrationservice.pm +++ b/apps/hyperv/2012/local/mode/scvmmintegrationservice.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/hyperv/2012/local/mode/scvmmsnapshot.pm b/apps/hyperv/2012/local/mode/scvmmsnapshot.pm index 5d8bdbda9..d6c634499 100644 --- a/apps/hyperv/2012/local/mode/scvmmsnapshot.pm +++ b/apps/hyperv/2012/local/mode/scvmmsnapshot.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/hyperv/2012/local/mode/scvmmvmstatus.pm b/apps/hyperv/2012/local/mode/scvmmvmstatus.pm index 4161a6fcb..f0f08921d 100644 --- a/apps/hyperv/2012/local/mode/scvmmvmstatus.pm +++ b/apps/hyperv/2012/local/mode/scvmmvmstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/hyperv/2012/local/plugin.pm b/apps/hyperv/2012/local/plugin.pm index f6091e374..6d6deba43 100644 --- a/apps/hyperv/2012/local/plugin.pm +++ b/apps/hyperv/2012/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/iis/local/mode/applicationpoolstate.pm b/apps/iis/local/mode/applicationpoolstate.pm index 29b87a286..7bbd3cb36 100644 --- a/apps/iis/local/mode/applicationpoolstate.pm +++ b/apps/iis/local/mode/applicationpoolstate.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/iis/local/mode/listapplicationpools.pm b/apps/iis/local/mode/listapplicationpools.pm index 52922e447..6db56fac9 100644 --- a/apps/iis/local/mode/listapplicationpools.pm +++ b/apps/iis/local/mode/listapplicationpools.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/iis/local/mode/listsites.pm b/apps/iis/local/mode/listsites.pm index 7efee60a7..783affea4 100644 --- a/apps/iis/local/mode/listsites.pm +++ b/apps/iis/local/mode/listsites.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/iis/local/mode/webservicestatistics.pm b/apps/iis/local/mode/webservicestatistics.pm index 915f60f06..607769a35 100644 --- a/apps/iis/local/mode/webservicestatistics.pm +++ b/apps/iis/local/mode/webservicestatistics.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/iis/local/plugin.pm b/apps/iis/local/plugin.pm index 83306b240..5c878dc26 100644 --- a/apps/iis/local/plugin.pm +++ b/apps/iis/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/iis/wsman/mode/applicationpoolstate.pm b/apps/iis/wsman/mode/applicationpoolstate.pm index ae157f751..f82186156 100644 --- a/apps/iis/wsman/mode/applicationpoolstate.pm +++ b/apps/iis/wsman/mode/applicationpoolstate.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/iis/wsman/mode/listapplicationpools.pm b/apps/iis/wsman/mode/listapplicationpools.pm index 07faeb216..83d4977e7 100644 --- a/apps/iis/wsman/mode/listapplicationpools.pm +++ b/apps/iis/wsman/mode/listapplicationpools.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/iis/wsman/plugin.pm b/apps/iis/wsman/plugin.pm index fc474bd5f..01ea36018 100644 --- a/apps/iis/wsman/plugin.pm +++ b/apps/iis/wsman/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/inin/ig/snmp/mode/spanusage.pm b/apps/inin/ig/snmp/mode/spanusage.pm index ede862960..7e324e33e 100644 --- a/apps/inin/ig/snmp/mode/spanusage.pm +++ b/apps/inin/ig/snmp/mode/spanusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/inin/ig/snmp/mode/stats.pm b/apps/inin/ig/snmp/mode/stats.pm index ca8b7767a..1bd83ca52 100644 --- a/apps/inin/ig/snmp/mode/stats.pm +++ b/apps/inin/ig/snmp/mode/stats.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/inin/ig/snmp/plugin.pm b/apps/inin/ig/snmp/plugin.pm index 6574486e3..52df43143 100644 --- a/apps/inin/ig/snmp/plugin.pm +++ b/apps/inin/ig/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/inin/mediaserver/snmp/mode/audioengineusage.pm b/apps/inin/mediaserver/snmp/mode/audioengineusage.pm index 23a47056d..735bf679f 100644 --- a/apps/inin/mediaserver/snmp/mode/audioengineusage.pm +++ b/apps/inin/mediaserver/snmp/mode/audioengineusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/inin/mediaserver/snmp/mode/cmdsrvusage.pm b/apps/inin/mediaserver/snmp/mode/cmdsrvusage.pm index f1491ff7c..d374a756e 100644 --- a/apps/inin/mediaserver/snmp/mode/cmdsrvusage.pm +++ b/apps/inin/mediaserver/snmp/mode/cmdsrvusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/inin/mediaserver/snmp/mode/component.pm b/apps/inin/mediaserver/snmp/mode/component.pm index a1c7d6438..21dc65e0d 100644 --- a/apps/inin/mediaserver/snmp/mode/component.pm +++ b/apps/inin/mediaserver/snmp/mode/component.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/inin/mediaserver/snmp/mode/diskusage.pm b/apps/inin/mediaserver/snmp/mode/diskusage.pm index 7fdd0929a..f26e55d44 100644 --- a/apps/inin/mediaserver/snmp/mode/diskusage.pm +++ b/apps/inin/mediaserver/snmp/mode/diskusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/inin/mediaserver/snmp/mode/memoryusage.pm b/apps/inin/mediaserver/snmp/mode/memoryusage.pm index fcee9f83a..75f5b3ba6 100644 --- a/apps/inin/mediaserver/snmp/mode/memoryusage.pm +++ b/apps/inin/mediaserver/snmp/mode/memoryusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/inin/mediaserver/snmp/plugin.pm b/apps/inin/mediaserver/snmp/plugin.pm index 6617e9a3f..feb4bb822 100644 --- a/apps/inin/mediaserver/snmp/plugin.pm +++ b/apps/inin/mediaserver/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/java/awa/jmx/mode/agent.pm b/apps/java/awa/jmx/mode/agent.pm index 0c83a08c4..e36264c4b 100644 --- a/apps/java/awa/jmx/mode/agent.pm +++ b/apps/java/awa/jmx/mode/agent.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/java/awa/jmx/mode/listagents.pm b/apps/java/awa/jmx/mode/listagents.pm index 82447c84b..0133463f1 100644 --- a/apps/java/awa/jmx/mode/listagents.pm +++ b/apps/java/awa/jmx/mode/listagents.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/java/awa/jmx/mode/listqueues.pm b/apps/java/awa/jmx/mode/listqueues.pm index efc9fd979..b115129f6 100644 --- a/apps/java/awa/jmx/mode/listqueues.pm +++ b/apps/java/awa/jmx/mode/listqueues.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/java/awa/jmx/mode/listservers.pm b/apps/java/awa/jmx/mode/listservers.pm index 91bbecd59..7e25b77e0 100644 --- a/apps/java/awa/jmx/mode/listservers.pm +++ b/apps/java/awa/jmx/mode/listservers.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/java/awa/jmx/mode/queue.pm b/apps/java/awa/jmx/mode/queue.pm index ed2ea3b2c..fc5063122 100644 --- a/apps/java/awa/jmx/mode/queue.pm +++ b/apps/java/awa/jmx/mode/queue.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/java/awa/jmx/mode/server.pm b/apps/java/awa/jmx/mode/server.pm index 65f82c92d..20216c5d2 100644 --- a/apps/java/awa/jmx/mode/server.pm +++ b/apps/java/awa/jmx/mode/server.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/java/awa/jmx/plugin.pm b/apps/java/awa/jmx/plugin.pm index 48e36c0a2..8ca408b11 100644 --- a/apps/java/awa/jmx/plugin.pm +++ b/apps/java/awa/jmx/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/java/hibernate/jmx/mode/stats.pm b/apps/java/hibernate/jmx/mode/stats.pm index 52a67d7b3..994e31810 100644 --- a/apps/java/hibernate/jmx/mode/stats.pm +++ b/apps/java/hibernate/jmx/mode/stats.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/java/hibernate/jmx/plugin.pm b/apps/java/hibernate/jmx/plugin.pm index 40b9d96b0..1a707a99c 100644 --- a/apps/java/hibernate/jmx/plugin.pm +++ b/apps/java/hibernate/jmx/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/java/jboss/jmx/mode/datasourceusage.pm b/apps/java/jboss/jmx/mode/datasourceusage.pm index 7888a1869..92e7e18f1 100644 --- a/apps/java/jboss/jmx/mode/datasourceusage.pm +++ b/apps/java/jboss/jmx/mode/datasourceusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/java/jboss/jmx/mode/listdatasources.pm b/apps/java/jboss/jmx/mode/listdatasources.pm index 74c828e0b..f0f3162d9 100644 --- a/apps/java/jboss/jmx/mode/listdatasources.pm +++ b/apps/java/jboss/jmx/mode/listdatasources.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/java/jboss/jmx/plugin.pm b/apps/java/jboss/jmx/plugin.pm index d37cc2ef3..e55cd28e2 100644 --- a/apps/java/jboss/jmx/plugin.pm +++ b/apps/java/jboss/jmx/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/java/peoplesoft/jmx/mode/queuelength.pm b/apps/java/peoplesoft/jmx/mode/queuelength.pm index 199bf68b3..1f37377ca 100644 --- a/apps/java/peoplesoft/jmx/mode/queuelength.pm +++ b/apps/java/peoplesoft/jmx/mode/queuelength.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/java/peoplesoft/jmx/mode/sessions.pm b/apps/java/peoplesoft/jmx/mode/sessions.pm index 1cb83d790..ef897aac7 100644 --- a/apps/java/peoplesoft/jmx/mode/sessions.pm +++ b/apps/java/peoplesoft/jmx/mode/sessions.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/java/peoplesoft/jmx/plugin.pm b/apps/java/peoplesoft/jmx/plugin.pm index e502bf546..d1cad7feb 100644 --- a/apps/java/peoplesoft/jmx/plugin.pm +++ b/apps/java/peoplesoft/jmx/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/java/solr/jmx/mode/cacheusage.pm b/apps/java/solr/jmx/mode/cacheusage.pm index acbb09e12..e69fb3c2e 100644 --- a/apps/java/solr/jmx/mode/cacheusage.pm +++ b/apps/java/solr/jmx/mode/cacheusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/java/solr/jmx/mode/requesthandlerusage.pm b/apps/java/solr/jmx/mode/requesthandlerusage.pm index 9f6814e7f..7017b372c 100644 --- a/apps/java/solr/jmx/mode/requesthandlerusage.pm +++ b/apps/java/solr/jmx/mode/requesthandlerusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/java/solr/jmx/plugin.pm b/apps/java/solr/jmx/plugin.pm index 180a49960..ca911dd1d 100644 --- a/apps/java/solr/jmx/plugin.pm +++ b/apps/java/solr/jmx/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/java/weblogic/jmx/mode/workmanager.pm b/apps/java/weblogic/jmx/mode/workmanager.pm index e7724d062..ffb1d2ade 100644 --- a/apps/java/weblogic/jmx/mode/workmanager.pm +++ b/apps/java/weblogic/jmx/mode/workmanager.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/java/weblogic/jmx/plugin.pm b/apps/java/weblogic/jmx/plugin.pm index 422aa1749..6d37d5b85 100644 --- a/apps/java/weblogic/jmx/plugin.pm +++ b/apps/java/weblogic/jmx/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/java/zookeeper/jmx/mode/stats.pm b/apps/java/zookeeper/jmx/mode/stats.pm index 6b98b318e..20bd445bb 100644 --- a/apps/java/zookeeper/jmx/mode/stats.pm +++ b/apps/java/zookeeper/jmx/mode/stats.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/java/zookeeper/jmx/plugin.pm b/apps/java/zookeeper/jmx/plugin.pm index e62cbd6a1..b3918d422 100644 --- a/apps/java/zookeeper/jmx/plugin.pm +++ b/apps/java/zookeeper/jmx/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/jenkins/mode/jobstate.pm b/apps/jenkins/mode/jobstate.pm index 43ddda6a3..01a5e3851 100644 --- a/apps/jenkins/mode/jobstate.pm +++ b/apps/jenkins/mode/jobstate.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/jenkins/plugin.pm b/apps/jenkins/plugin.pm index abe59e760..8654a3d5f 100644 --- a/apps/jenkins/plugin.pm +++ b/apps/jenkins/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/jive/sql/mode/etljobstatus.pm b/apps/jive/sql/mode/etljobstatus.pm index 1f9072254..6d91a19d2 100644 --- a/apps/jive/sql/mode/etljobstatus.pm +++ b/apps/jive/sql/mode/etljobstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/jmeter/mode/scenario.pm b/apps/jmeter/mode/scenario.pm index 43994eb8c..87f05afdc 100644 --- a/apps/jmeter/mode/scenario.pm +++ b/apps/jmeter/mode/scenario.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/jmeter/plugin.pm b/apps/jmeter/plugin.pm index e92cf065b..b82026a9d 100644 --- a/apps/jmeter/plugin.pm +++ b/apps/jmeter/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/kayako/api/mode/listdepartment.pm b/apps/kayako/api/mode/listdepartment.pm index dec1943b1..de61ea444 100644 --- a/apps/kayako/api/mode/listdepartment.pm +++ b/apps/kayako/api/mode/listdepartment.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/kayako/api/mode/listpriority.pm b/apps/kayako/api/mode/listpriority.pm index 2908065a2..fb66f1ea0 100644 --- a/apps/kayako/api/mode/listpriority.pm +++ b/apps/kayako/api/mode/listpriority.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/kayako/api/mode/liststaff.pm b/apps/kayako/api/mode/liststaff.pm index 64e516efe..60b1bdf17 100644 --- a/apps/kayako/api/mode/liststaff.pm +++ b/apps/kayako/api/mode/liststaff.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/kayako/api/mode/liststatus.pm b/apps/kayako/api/mode/liststatus.pm index 634ed2402..838d43c64 100644 --- a/apps/kayako/api/mode/liststatus.pm +++ b/apps/kayako/api/mode/liststatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/kayako/api/mode/ticketcount.pm b/apps/kayako/api/mode/ticketcount.pm index 16a3f71e0..4ddbf6790 100644 --- a/apps/kayako/api/mode/ticketcount.pm +++ b/apps/kayako/api/mode/ticketcount.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/kayako/api/plugin.pm b/apps/kayako/api/plugin.pm index 42303efbc..d89849ddb 100644 --- a/apps/kayako/api/plugin.pm +++ b/apps/kayako/api/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/kayako/sql/mode/listdepartment.pm b/apps/kayako/sql/mode/listdepartment.pm index fe4bcdb8f..9d8fedf34 100644 --- a/apps/kayako/sql/mode/listdepartment.pm +++ b/apps/kayako/sql/mode/listdepartment.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/kayako/sql/mode/listpriority.pm b/apps/kayako/sql/mode/listpriority.pm index f67bd0a21..9c8368fce 100644 --- a/apps/kayako/sql/mode/listpriority.pm +++ b/apps/kayako/sql/mode/listpriority.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/kayako/sql/mode/liststaff.pm b/apps/kayako/sql/mode/liststaff.pm index 6749e3949..a0ad55eef 100644 --- a/apps/kayako/sql/mode/liststaff.pm +++ b/apps/kayako/sql/mode/liststaff.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/kayako/sql/mode/liststatus.pm b/apps/kayako/sql/mode/liststatus.pm index 28e2eb7e9..735ee625f 100644 --- a/apps/kayako/sql/mode/liststatus.pm +++ b/apps/kayako/sql/mode/liststatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/kayako/sql/mode/ticketcount.pm b/apps/kayako/sql/mode/ticketcount.pm index 9965a9398..a4c24cdda 100644 --- a/apps/kayako/sql/mode/ticketcount.pm +++ b/apps/kayako/sql/mode/ticketcount.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/kingdee/eas/custom/api.pm b/apps/kingdee/eas/custom/api.pm index 08b2c238a..b3171f00d 100644 --- a/apps/kingdee/eas/custom/api.pm +++ b/apps/kingdee/eas/custom/api.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/kingdee/eas/mode/activeusers.pm b/apps/kingdee/eas/mode/activeusers.pm index 6968190b7..a490be70e 100644 --- a/apps/kingdee/eas/mode/activeusers.pm +++ b/apps/kingdee/eas/mode/activeusers.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/kingdee/eas/mode/classloading.pm b/apps/kingdee/eas/mode/classloading.pm index 046964fdd..1471b54e5 100644 --- a/apps/kingdee/eas/mode/classloading.pm +++ b/apps/kingdee/eas/mode/classloading.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/kingdee/eas/mode/datasource.pm b/apps/kingdee/eas/mode/datasource.pm index 4d8ba561a..6f4aa5f27 100644 --- a/apps/kingdee/eas/mode/datasource.pm +++ b/apps/kingdee/eas/mode/datasource.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/kingdee/eas/mode/easlicense.pm b/apps/kingdee/eas/mode/easlicense.pm index 0dd1d0153..8587d549f 100644 --- a/apps/kingdee/eas/mode/easlicense.pm +++ b/apps/kingdee/eas/mode/easlicense.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/kingdee/eas/mode/httphandler.pm b/apps/kingdee/eas/mode/httphandler.pm index 7983689cb..3efe01f02 100644 --- a/apps/kingdee/eas/mode/httphandler.pm +++ b/apps/kingdee/eas/mode/httphandler.pm @@ -1,186 +1,186 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Author : CHEN JUN , aladdin.china@gmail.com - -package apps::kingdee::eas::mode::httphandler; - -use base qw(centreon::plugins::mode); - -use strict; -use warnings; - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new( package => __PACKAGE__, %options ); - bless $self, $class; - - $self->{version} = '1.0'; - $options{options}->add_options( - arguments => { - "urlpath:s" => { name => 'url_path', default => "/easportal/tools/nagios/checkhttphandler.jsp" }, - "warning:s" => { name => 'warning' }, - "critical:s" => { name => 'critical' }, - } - ); - - return $self; -} - -sub check_options { - my ($self, %options) = @_; - $self->SUPER::init(%options); - - if (($self->{perfdata}->threshold_validate(label => 'warning', value => $self->{option_results}->{warning})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong warning threshold '" . $self->{option_results}->{warning} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'critical', value => $self->{option_results}->{critical})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong critical threshold '" . $self->{option_results}->{critical} . "'."); - $self->{output}->option_exit(); - } - -} - -sub run { - my ($self, %options) = @_; - - my $webcontent = $options{custom}->request(path => $self->{option_results}->{url_path}); - - if ($webcontent !~ /MaxThreads=\d+/i) { - $self->{output}->output_add( - severity => 'UNKNOWN', - short_msg => "Cannot find httphandler status in response: '" . $webcontent . "'" - ); - $self->{output}->option_exit(); - } - - my ($maxthreads, $minsparethreads, $maxsparethreads, $maxqueuesize, $idletimeout, $processedcount) = (0, 0, 0, 0, 0, 0); - my ($currentthreadcount, $availablethreadcount, $busythreadcount, $maxavailablethreadcount, $maxbusythreadcount) = (0, 0, 0, 0, 0); - my ($maxprocessedtime, $createcount, $destroycount) = (0, 0, 0); - - $maxthreads = $1 if $webcontent =~ /MaxThreads=(\d+)/mi ; - $minsparethreads = $1 if $webcontent =~ /MinSpareThreads=(\d+)/mi ; - $maxsparethreads = $1 if $webcontent =~ /MaxSpareThreads=(\d+)/mi ; - $maxqueuesize = $1 if $webcontent =~ /MaxQueueSize=(\d+)/mi ; - $idletimeout = $1 if $webcontent =~ /IdleTimeout=(\d+)/mi ; - $processedcount = $1 if $webcontent =~ /ProcessedCount=(\d+)/mi ; - $currentthreadcount = $1 if $webcontent =~ /CurrentThreadCount=(\d+)/mi ; - $availablethreadcount = $1 if $webcontent =~ /AvailableThreadCount=(\d+)/mi ; - $busythreadcount = $1 if $webcontent =~ /BusyThreadCount=(\d+)/mi ; - $maxavailablethreadcount = $1 if $webcontent =~ /MaxAvailableThreadCount=(\d+)/mi ; - $maxbusythreadcount = $1 if $webcontent =~ /MaxBusyThreadCount=(\d+)/mi ; - $maxprocessedtime = $1 if $webcontent =~ /MaxProcessedTime=(\d+)/mi ; - $createcount = $1 if $webcontent =~ /CreateCount=(\d+)/mi ; - $destroycount = $1 if $webcontent =~ /DestroyCount=(\d+)/mi ; - - $self->{output}->output_add(severity => "ok", short_msg => sprintf("MaxThreads: %d", $maxthreads)); - $self->{output}->output_add(severity => "ok", short_msg => sprintf("MinSpareThreads: %d", $minsparethreads)); - $self->{output}->output_add(severity => "ok", short_msg => sprintf("MaxSpareThreads: %d", $maxsparethreads)); - $self->{output}->output_add(severity => "ok", short_msg => sprintf("MaxQueueSize: %d", $maxqueuesize)); - $self->{output}->output_add(severity => "ok", short_msg => sprintf("IdleTimeout: %ds", $idletimeout)); - $self->{output}->output_add(severity => "ok", short_msg => sprintf("ProcessedCount: %d", $processedcount)); - $self->{output}->output_add(severity => "ok", short_msg => sprintf("CurrentThreadCount: %d", $currentthreadcount)); - $self->{output}->output_add(severity => "ok", short_msg => sprintf("AvailableThreadCount: %d", $availablethreadcount)); - - my $exit = $self->{perfdata}->threshold_check(value => $busythreadcount, threshold => [ { label => 'critical', exit_litteral => 'critical' }, { label => 'warning', exit_litteral => 'warning' } ]); - $self->{output}->output_add(severity => $exit, short_msg => sprintf("BusyThreadCount: %d", $busythreadcount)); - - $self->{output}->output_add(severity => "ok", short_msg => sprintf("MaxAvailableThreadCount: %d", $maxavailablethreadcount)); - $self->{output}->output_add(severity => "ok", short_msg => sprintf("MaxBusyThreadCount: %d", $maxbusythreadcount)); - $self->{output}->output_add(severity => "ok", short_msg => sprintf("MaxProcessedTime: %dms", $maxprocessedtime)); - $self->{output}->output_add(severity => "ok", short_msg => sprintf("CreateCount: %d", $createcount)); - $self->{output}->output_add(severity => "ok", short_msg => sprintf("DestroyCount: %d", $destroycount)); - - $self->{output}->perfdata_add(label => "MaxThreads", unit => '', - value => sprintf("%d", $maxthreads), - ); - $self->{output}->perfdata_add(label => "MinSpareThreads", unit => '', - value => sprintf("%d", $minsparethreads), - ); - $self->{output}->perfdata_add(label => "MaxSpareThreads", unit => '', - value => sprintf("%d", $maxsparethreads), - ); - $self->{output}->perfdata_add(label => "MaxQueueSize", unit => '', - value => sprintf("%d", $maxqueuesize), - ); - $self->{output}->perfdata_add(label => "IdleTimeout", unit => 's', - value => sprintf("%d", $idletimeout), - ); - $self->{output}->perfdata_add(label => "c[ProcessedCount]", unit => '', - value => sprintf("%d", $processedcount), - ); - $self->{output}->perfdata_add(label => "CurrentThreadCount", unit => '', - value => sprintf("%d", $currentthreadcount), - ); - $self->{output}->perfdata_add(label => "AvailableThreadCount", unit => '', - value => sprintf("%d", $availablethreadcount), - ); - - $self->{output}->perfdata_add(label => "BusyThreadCount", unit => '', - value => sprintf("%d", $busythreadcount), - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'), - ); - - $self->{output}->perfdata_add(label => "MaxAvailableThreadCount", unit => '', - value => sprintf("%d", $maxavailablethreadcount), - ); - $self->{output}->perfdata_add(label => "MaxBusyThreadCount", unit => '', - value => sprintf("%d", $maxbusythreadcount), - ); - $self->{output}->perfdata_add(label => "MaxProcessedTime", unit => 'ms', - value => sprintf("%d", $maxprocessedtime), - ); - $self->{output}->perfdata_add(label => "c[CreateCount]", unit => '', - value => sprintf("%d", $createcount), - ); - $self->{output}->perfdata_add(label => "c[DestroyCount]", unit => '', - value => sprintf("%d", $destroycount), - ); - - $self->{output}->display(); - $self->{output}->exit(); -} - -1; - -__END__ - -=head1 MODE - -Check EAS instance httphandler(Apusic) threads pool status. - -=over 8 - -=item B<--urlpath> - -Set path to get status page. (Default: '/easportal/tools/nagios/checkhttphandler.jsp') - -=item B<--warning> - -Warning Threshold for busy thread count. - -=item B<--critical> - -Critical Threshold for busy thread count. - -=back - -=cut +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Author : CHEN JUN , aladdin.china@gmail.com + +package apps::kingdee::eas::mode::httphandler; + +use base qw(centreon::plugins::mode); + +use strict; +use warnings; + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new( package => __PACKAGE__, %options ); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options( + arguments => { + "urlpath:s" => { name => 'url_path', default => "/easportal/tools/nagios/checkhttphandler.jsp" }, + "warning:s" => { name => 'warning' }, + "critical:s" => { name => 'critical' }, + } + ); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::init(%options); + + if (($self->{perfdata}->threshold_validate(label => 'warning', value => $self->{option_results}->{warning})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong warning threshold '" . $self->{option_results}->{warning} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'critical', value => $self->{option_results}->{critical})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong critical threshold '" . $self->{option_results}->{critical} . "'."); + $self->{output}->option_exit(); + } + +} + +sub run { + my ($self, %options) = @_; + + my $webcontent = $options{custom}->request(path => $self->{option_results}->{url_path}); + + if ($webcontent !~ /MaxThreads=\d+/i) { + $self->{output}->output_add( + severity => 'UNKNOWN', + short_msg => "Cannot find httphandler status in response: '" . $webcontent . "'" + ); + $self->{output}->option_exit(); + } + + my ($maxthreads, $minsparethreads, $maxsparethreads, $maxqueuesize, $idletimeout, $processedcount) = (0, 0, 0, 0, 0, 0); + my ($currentthreadcount, $availablethreadcount, $busythreadcount, $maxavailablethreadcount, $maxbusythreadcount) = (0, 0, 0, 0, 0); + my ($maxprocessedtime, $createcount, $destroycount) = (0, 0, 0); + + $maxthreads = $1 if $webcontent =~ /MaxThreads=(\d+)/mi ; + $minsparethreads = $1 if $webcontent =~ /MinSpareThreads=(\d+)/mi ; + $maxsparethreads = $1 if $webcontent =~ /MaxSpareThreads=(\d+)/mi ; + $maxqueuesize = $1 if $webcontent =~ /MaxQueueSize=(\d+)/mi ; + $idletimeout = $1 if $webcontent =~ /IdleTimeout=(\d+)/mi ; + $processedcount = $1 if $webcontent =~ /ProcessedCount=(\d+)/mi ; + $currentthreadcount = $1 if $webcontent =~ /CurrentThreadCount=(\d+)/mi ; + $availablethreadcount = $1 if $webcontent =~ /AvailableThreadCount=(\d+)/mi ; + $busythreadcount = $1 if $webcontent =~ /BusyThreadCount=(\d+)/mi ; + $maxavailablethreadcount = $1 if $webcontent =~ /MaxAvailableThreadCount=(\d+)/mi ; + $maxbusythreadcount = $1 if $webcontent =~ /MaxBusyThreadCount=(\d+)/mi ; + $maxprocessedtime = $1 if $webcontent =~ /MaxProcessedTime=(\d+)/mi ; + $createcount = $1 if $webcontent =~ /CreateCount=(\d+)/mi ; + $destroycount = $1 if $webcontent =~ /DestroyCount=(\d+)/mi ; + + $self->{output}->output_add(severity => "ok", short_msg => sprintf("MaxThreads: %d", $maxthreads)); + $self->{output}->output_add(severity => "ok", short_msg => sprintf("MinSpareThreads: %d", $minsparethreads)); + $self->{output}->output_add(severity => "ok", short_msg => sprintf("MaxSpareThreads: %d", $maxsparethreads)); + $self->{output}->output_add(severity => "ok", short_msg => sprintf("MaxQueueSize: %d", $maxqueuesize)); + $self->{output}->output_add(severity => "ok", short_msg => sprintf("IdleTimeout: %ds", $idletimeout)); + $self->{output}->output_add(severity => "ok", short_msg => sprintf("ProcessedCount: %d", $processedcount)); + $self->{output}->output_add(severity => "ok", short_msg => sprintf("CurrentThreadCount: %d", $currentthreadcount)); + $self->{output}->output_add(severity => "ok", short_msg => sprintf("AvailableThreadCount: %d", $availablethreadcount)); + + my $exit = $self->{perfdata}->threshold_check(value => $busythreadcount, threshold => [ { label => 'critical', exit_litteral => 'critical' }, { label => 'warning', exit_litteral => 'warning' } ]); + $self->{output}->output_add(severity => $exit, short_msg => sprintf("BusyThreadCount: %d", $busythreadcount)); + + $self->{output}->output_add(severity => "ok", short_msg => sprintf("MaxAvailableThreadCount: %d", $maxavailablethreadcount)); + $self->{output}->output_add(severity => "ok", short_msg => sprintf("MaxBusyThreadCount: %d", $maxbusythreadcount)); + $self->{output}->output_add(severity => "ok", short_msg => sprintf("MaxProcessedTime: %dms", $maxprocessedtime)); + $self->{output}->output_add(severity => "ok", short_msg => sprintf("CreateCount: %d", $createcount)); + $self->{output}->output_add(severity => "ok", short_msg => sprintf("DestroyCount: %d", $destroycount)); + + $self->{output}->perfdata_add(label => "MaxThreads", unit => '', + value => sprintf("%d", $maxthreads), + ); + $self->{output}->perfdata_add(label => "MinSpareThreads", unit => '', + value => sprintf("%d", $minsparethreads), + ); + $self->{output}->perfdata_add(label => "MaxSpareThreads", unit => '', + value => sprintf("%d", $maxsparethreads), + ); + $self->{output}->perfdata_add(label => "MaxQueueSize", unit => '', + value => sprintf("%d", $maxqueuesize), + ); + $self->{output}->perfdata_add(label => "IdleTimeout", unit => 's', + value => sprintf("%d", $idletimeout), + ); + $self->{output}->perfdata_add(label => "c[ProcessedCount]", unit => '', + value => sprintf("%d", $processedcount), + ); + $self->{output}->perfdata_add(label => "CurrentThreadCount", unit => '', + value => sprintf("%d", $currentthreadcount), + ); + $self->{output}->perfdata_add(label => "AvailableThreadCount", unit => '', + value => sprintf("%d", $availablethreadcount), + ); + + $self->{output}->perfdata_add(label => "BusyThreadCount", unit => '', + value => sprintf("%d", $busythreadcount), + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'), + ); + + $self->{output}->perfdata_add(label => "MaxAvailableThreadCount", unit => '', + value => sprintf("%d", $maxavailablethreadcount), + ); + $self->{output}->perfdata_add(label => "MaxBusyThreadCount", unit => '', + value => sprintf("%d", $maxbusythreadcount), + ); + $self->{output}->perfdata_add(label => "MaxProcessedTime", unit => 'ms', + value => sprintf("%d", $maxprocessedtime), + ); + $self->{output}->perfdata_add(label => "c[CreateCount]", unit => '', + value => sprintf("%d", $createcount), + ); + $self->{output}->perfdata_add(label => "c[DestroyCount]", unit => '', + value => sprintf("%d", $destroycount), + ); + + $self->{output}->display(); + $self->{output}->exit(); +} + +1; + +__END__ + +=head1 MODE + +Check EAS instance httphandler(Apusic) threads pool status. + +=over 8 + +=item B<--urlpath> + +Set path to get status page. (Default: '/easportal/tools/nagios/checkhttphandler.jsp') + +=item B<--warning> + +Warning Threshold for busy thread count. + +=item B<--critical> + +Critical Threshold for busy thread count. + +=back + +=cut diff --git a/apps/kingdee/eas/mode/ibmjvmgc.pm b/apps/kingdee/eas/mode/ibmjvmgc.pm index c62b8d1db..ea051007b 100644 --- a/apps/kingdee/eas/mode/ibmjvmgc.pm +++ b/apps/kingdee/eas/mode/ibmjvmgc.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/kingdee/eas/mode/javaruntime.pm b/apps/kingdee/eas/mode/javaruntime.pm index 932e11386..b7862efef 100644 --- a/apps/kingdee/eas/mode/javaruntime.pm +++ b/apps/kingdee/eas/mode/javaruntime.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/kingdee/eas/mode/memory.pm b/apps/kingdee/eas/mode/memory.pm index e08f12123..5a0553161 100644 --- a/apps/kingdee/eas/mode/memory.pm +++ b/apps/kingdee/eas/mode/memory.pm @@ -1,322 +1,322 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Author : CHEN JUN , aladdin.china@gmail.com - -package apps::kingdee::eas::mode::memory; - -use base qw(centreon::plugins::mode); - -use strict; -use warnings; - -sub new { - my ( $class, %options ) = @_; - my $self = $class->SUPER::new( package => __PACKAGE__, %options ); - bless $self, $class; - - $self->{version} = '1.0'; - $options{options}->add_options( - arguments => { - "urlpath:s" => { name => 'url_path', default => "/easportal/tools/nagios/checkmemory.jsp" }, - "warning-heap:s" => { name => 'warning-heap' , default => ",,,"}, - "warning-nonheap:s" => { name => 'warning-nonheap' , default => ",,,"}, - "critical-heap:s" => { name => 'critical-heap' , default => ",,,"}, - "critical-nonheap:s" => { name => 'critical-nonheap' , default => ",,,"}, - } - ); - - return $self; -} - -sub check_options { - my ( $self, %options ) = @_; - $self->SUPER::init(%options); - - ($self->{warn_init_heap}, $self->{warn_max_heap}, $self->{warn_used_heap}, $self->{warn_committed_heap}) - = split /,/, $self->{option_results}->{"warning-heap"}; - ($self->{warn_init_nonheap}, $self->{warn_max_nonheap}, $self->{warn_used_nonheap}, $self->{warn_committed_nonheap}) - = split /,/, $self->{option_results}->{"warning-nonheap"}; - ($self->{crit_init_heap}, $self->{crit_max_heap}, $self->{crit_used_heap}, $self->{crit_committed_heap}) - = split /,/, $self->{option_results}->{"critical-heap"}; - ($self->{crit_init_nonheap}, $self->{crit_max_nonheap}, $self->{crit_used_nonheap}, $self->{crit_committed_nonheap}) - = split /,/, $self->{option_results}->{"critical-nonheap"}; - - # warning-heap - if (($self->{perfdata}->threshold_validate(label => 'warn_init_heap', value => $self->{warn_init_heap})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong warning-heap init threshold '" . $self->{warn_init_heap} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'warn_max_heap', value => $self->{warn_max_heap})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong warning-heap max threshold '" . $self->{warn_max_heap} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'warn_used_heap', value => $self->{warn_used_heap})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong warning-heap used threshold '" . $self->{warn_used_heap} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'warn_committed_heap', value => $self->{warn_committed_heap})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong warning-heap committed threshold '" . $self->{warn_committed_heap} . "'."); - $self->{output}->option_exit(); - } - - # waring-nonheap - if (($self->{perfdata}->threshold_validate(label => 'warn_init_nonheap', value => $self->{warn_init_nonheap})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong warning-nonheap init threshold '" . $self->{warn_init_nonheap} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'warn_max_nonheap', value => $self->{warn_max_nonheap})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong warning-nonheap max threshold '" . $self->{warn_max_nonheap} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'warn_used_nonheap', value => $self->{warn_used_nonheap})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong warning-nonheap used threshold '" . $self->{warn_used_nonheap} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'warn_committed_nonheap', value => $self->{warn_committed_nonheap})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong warning-nonheap committed threshold '" . $self->{warn_committed_nonheap} . "'."); - $self->{output}->option_exit(); - } - - # critical-heap - if (($self->{perfdata}->threshold_validate(label => 'crit_init_heap', value => $self->{crit_init_heap})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong critical-heap init threshold '" . $self->{crit_init_heap} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'crit_max_heap', value => $self->{crit_max_heap})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong critical-heap max threshold '" . $self->{crit_max_heap} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'crit_used_heap', value => $self->{crit_used_heap})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong critical-heap used threshold '" . $self->{crit_used_heap} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'crit_committed_heap', value => $self->{crit_committed_heap})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong critical-heap committed threshold '" . $self->{crit_committed_heap} . "'."); - $self->{output}->option_exit(); - } - - # critical-nonheap - if (($self->{perfdata}->threshold_validate(label => 'crit_init_nonheap', value => $self->{crit_init_nonheap})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong critical-nonheap init threshold '" . $self->{crit_init_nonheap} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'crit_max_nonheap', value => $self->{crit_max_nonheap})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong critical-nonheap max threshold '" . $self->{crit_max_nonheap} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'crit_used_nonheap', value => $self->{crit_used_nonheap})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong critical-nonheap used threshold '" . $self->{crit_used_nonheap} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'crit_committed_nonheap', value => $self->{crit_committed_nonheap})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong critical-nonheap committed threshold '" . $self->{crit_committed_nonheap} . "'."); - $self->{output}->option_exit(); - } -} - -sub run { - my ( $self, %options ) = @_; - - my $webcontent = $options{custom}->request(path => $self->{option_results}->{url_path}); - - if ($webcontent !~ /(^Type=HeapMemoryUsage|^Type=NonHeapMemoryUsage)/mi) { - $self->{output}->output_add( - severity => 'UNKNOWN', - short_msg => "Cannot find heap or nonheap memory usage status." - ); - $self->{output}->option_exit(); - } - - my ( $init_heap, $max_heap, $used_heap, $committed_heap ) = ( 0, 0, 0, 0 ); - my ( $init_nonheap, $max_nonheap, $used_nonheap, $committed_nonheap ) = ( 0, 0, 0, 0 ); - if ( $webcontent =~ /^Type=HeapMemoryUsage\sinit=(\d+)\smax=(\d+)\sused=(\d+)\scommitted=(\d+)/mi ){ - ( $init_heap, $max_heap, $used_heap, $committed_heap ) = ( $1, $2, $3, $4 ); - $self->{output}->output_add( - severity => 'ok', - short_msg => sprintf( - "Heap Memory: init %d , max %d ,used %d ,commited %d", - $init_heap, $max_heap, $used_heap, $committed_heap - ) - ); - } - if ( $webcontent =~ /^Type=NonHeapMemoryUsage\sinit=(\d+)\smax=(-{0,1}\d+)\sused=(\d+)\scommitted=(\d+)/mi ){ - ( $init_nonheap, $max_nonheap, $used_nonheap, $committed_nonheap ) = ( $1, $2, $3, $4 ); - $self->{output}->output_add( - severity => 'ok', - short_msg => sprintf( - "NonHeap Memory: init %d , max %d ,used %d ,commited %d", - $init_nonheap, $max_nonheap, - $used_nonheap, $committed_nonheap - ) - ); - } - - my $exit = $self->{perfdata}->threshold_check(value => $init_heap, - threshold => [ { label => 'crit_init_heap', 'exit_litteral' => 'critical' }, - { label => 'warn_init_heap', 'exit_litteral' => 'warning' } ]); - if ($exit ne "ok"){ - $self->{output}->output_add( - severity => $exit, - short_msg => sprintf("Init Heap: %d", $init_heap) - ); - } - $exit = $self->{perfdata}->threshold_check(value => $max_heap, - threshold => [ { label => 'crit_max_heap', 'exit_litteral' => 'critical' }, - { label => 'warn_max_heap', 'exit_litteral' => 'warning' } ]); - if ($exit ne "ok"){ - $self->{output}->output_add( - severity => $exit, - short_msg => sprintf("Max Heap: %d", $max_heap) - ); - } - $exit = $self->{perfdata}->threshold_check(value => $used_heap, - threshold => [ { label => 'crit_used_heap', 'exit_litteral' => 'critical' }, - { label => 'warn_used_heap', 'exit_litteral' => 'warning' } ]); - if ($exit ne "ok"){ - $self->{output}->output_add( - severity => $exit, - short_msg => sprintf("Used Heap: %d", $used_heap) - ); - } - $exit = $self->{perfdata}->threshold_check(value => $committed_heap, - threshold => [ { label => 'crit_committed_heap', 'exit_litteral' => 'critical' }, - { label => 'warn_committed_heap', 'exit_litteral' => 'warning' } ]); - if ($exit ne "ok"){ - $self->{output}->output_add( - severity => $exit, - short_msg => sprintf("Committed Heap: %d", $committed_heap) - ); - } - - $exit = $self->{perfdata}->threshold_check(value => $init_nonheap, - threshold => [ { label => 'crit_init_nonheap', 'exit_litteral' => 'critical' }, - { label => 'warn_init_nonheap', 'exit_litteral' => 'warning' } ]); - if ($exit ne "ok"){ - $self->{output}->output_add( - severity => $exit, - short_msg => sprintf("Init NonHeap: %d", $init_nonheap) - ); - } - $exit = $self->{perfdata}->threshold_check(value => $max_nonheap, - threshold => [ { label => 'crit_max_nonheap', 'exit_litteral' => 'critical' }, - { label => 'warn_max_nonheap', 'exit_litteral' => 'warning' } ]); - if ($exit ne "ok"){ - $self->{output}->output_add( - severity => $exit, - short_msg => sprintf("Max NonHeap: %d", $max_nonheap) - ); - } - $exit = $self->{perfdata}->threshold_check(value => $used_nonheap, - threshold => [ { label => 'crit_used_nonheap', 'exit_litteral' => 'critical' }, - { label => 'warn_used_nonheap', 'exit_litteral' => 'warning' } ]); - if ($exit ne "ok"){ - $self->{output}->output_add( - severity => $exit, - short_msg => sprintf("Used NonHeap: %d", $used_nonheap) - ); - } - $exit = $self->{perfdata}->threshold_check(value => $committed_nonheap, - threshold => [ { label => 'crit_committed_nonheap', 'exit_litteral' => 'critical' }, - { label => 'warn_committed_nonheap', 'exit_litteral' => 'warning' } ]); - if ($exit ne "ok"){ - $self->{output}->output_add( - severity => $exit, - short_msg => sprintf("Committed NonHeap: %d", $committed_nonheap) - ); - } - - $self->{output}->perfdata_add( - label => "init_heap", - value => $init_heap, - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_init_heap'), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_init_heap'), - ); - $self->{output}->perfdata_add( - label => "max_heap", - value => $max_heap, - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_max_heap'), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_max_heap'), - ); - $self->{output}->perfdata_add( - label => "used_heap", - value => $used_heap, - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_used_heap'), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_used_heap'), - ); - $self->{output}->perfdata_add( - label => "committed_heap", - value => $committed_heap, - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_committed_heap'), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_committed_heap'), - ); - $self->{output}->perfdata_add( - label => "init_nonheap", - value => $init_nonheap, - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_init_nonheap'), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_init_nonheap'), - ); - $self->{output}->perfdata_add( - label => "max_nonheap", - value => $max_nonheap, - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_max_nonheap'), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_max_nonheap'), - ); - $self->{output}->perfdata_add( - label => "used_nonheap", - value => $used_nonheap, - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_used_nonheap'), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_used_nonheap'), - ); - $self->{output}->perfdata_add( - label => "committed_nonheap", - value => $committed_nonheap, - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_committed_nonheap'), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_committed_nonheap'), - ); - - $self->{output}->display(); - $self->{output}->exit(); -} - -1; - -__END__ - -=head1 MODE - -Check EAS instance heap & nonheap memory usage. - -=over 8 - -=item B<--urlpath> - -Set path to get status page. (Default: '/easportal/tools/nagios/checkmemory.jsp') - -=item B<--warning-*> - -Warning Threshold (init,max,used,committed), '*' Can be: 'heap', 'nonheap'. - -=item B<--critical-*> - -Critical Threshold (init,max,used,committed), '*' Can be: 'heap', 'nonheap'. - -=back - -=cut +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Author : CHEN JUN , aladdin.china@gmail.com + +package apps::kingdee::eas::mode::memory; + +use base qw(centreon::plugins::mode); + +use strict; +use warnings; + +sub new { + my ( $class, %options ) = @_; + my $self = $class->SUPER::new( package => __PACKAGE__, %options ); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options( + arguments => { + "urlpath:s" => { name => 'url_path', default => "/easportal/tools/nagios/checkmemory.jsp" }, + "warning-heap:s" => { name => 'warning-heap' , default => ",,,"}, + "warning-nonheap:s" => { name => 'warning-nonheap' , default => ",,,"}, + "critical-heap:s" => { name => 'critical-heap' , default => ",,,"}, + "critical-nonheap:s" => { name => 'critical-nonheap' , default => ",,,"}, + } + ); + + return $self; +} + +sub check_options { + my ( $self, %options ) = @_; + $self->SUPER::init(%options); + + ($self->{warn_init_heap}, $self->{warn_max_heap}, $self->{warn_used_heap}, $self->{warn_committed_heap}) + = split /,/, $self->{option_results}->{"warning-heap"}; + ($self->{warn_init_nonheap}, $self->{warn_max_nonheap}, $self->{warn_used_nonheap}, $self->{warn_committed_nonheap}) + = split /,/, $self->{option_results}->{"warning-nonheap"}; + ($self->{crit_init_heap}, $self->{crit_max_heap}, $self->{crit_used_heap}, $self->{crit_committed_heap}) + = split /,/, $self->{option_results}->{"critical-heap"}; + ($self->{crit_init_nonheap}, $self->{crit_max_nonheap}, $self->{crit_used_nonheap}, $self->{crit_committed_nonheap}) + = split /,/, $self->{option_results}->{"critical-nonheap"}; + + # warning-heap + if (($self->{perfdata}->threshold_validate(label => 'warn_init_heap', value => $self->{warn_init_heap})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong warning-heap init threshold '" . $self->{warn_init_heap} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'warn_max_heap', value => $self->{warn_max_heap})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong warning-heap max threshold '" . $self->{warn_max_heap} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'warn_used_heap', value => $self->{warn_used_heap})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong warning-heap used threshold '" . $self->{warn_used_heap} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'warn_committed_heap', value => $self->{warn_committed_heap})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong warning-heap committed threshold '" . $self->{warn_committed_heap} . "'."); + $self->{output}->option_exit(); + } + + # waring-nonheap + if (($self->{perfdata}->threshold_validate(label => 'warn_init_nonheap', value => $self->{warn_init_nonheap})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong warning-nonheap init threshold '" . $self->{warn_init_nonheap} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'warn_max_nonheap', value => $self->{warn_max_nonheap})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong warning-nonheap max threshold '" . $self->{warn_max_nonheap} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'warn_used_nonheap', value => $self->{warn_used_nonheap})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong warning-nonheap used threshold '" . $self->{warn_used_nonheap} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'warn_committed_nonheap', value => $self->{warn_committed_nonheap})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong warning-nonheap committed threshold '" . $self->{warn_committed_nonheap} . "'."); + $self->{output}->option_exit(); + } + + # critical-heap + if (($self->{perfdata}->threshold_validate(label => 'crit_init_heap', value => $self->{crit_init_heap})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong critical-heap init threshold '" . $self->{crit_init_heap} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'crit_max_heap', value => $self->{crit_max_heap})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong critical-heap max threshold '" . $self->{crit_max_heap} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'crit_used_heap', value => $self->{crit_used_heap})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong critical-heap used threshold '" . $self->{crit_used_heap} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'crit_committed_heap', value => $self->{crit_committed_heap})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong critical-heap committed threshold '" . $self->{crit_committed_heap} . "'."); + $self->{output}->option_exit(); + } + + # critical-nonheap + if (($self->{perfdata}->threshold_validate(label => 'crit_init_nonheap', value => $self->{crit_init_nonheap})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong critical-nonheap init threshold '" . $self->{crit_init_nonheap} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'crit_max_nonheap', value => $self->{crit_max_nonheap})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong critical-nonheap max threshold '" . $self->{crit_max_nonheap} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'crit_used_nonheap', value => $self->{crit_used_nonheap})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong critical-nonheap used threshold '" . $self->{crit_used_nonheap} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'crit_committed_nonheap', value => $self->{crit_committed_nonheap})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong critical-nonheap committed threshold '" . $self->{crit_committed_nonheap} . "'."); + $self->{output}->option_exit(); + } +} + +sub run { + my ( $self, %options ) = @_; + + my $webcontent = $options{custom}->request(path => $self->{option_results}->{url_path}); + + if ($webcontent !~ /(^Type=HeapMemoryUsage|^Type=NonHeapMemoryUsage)/mi) { + $self->{output}->output_add( + severity => 'UNKNOWN', + short_msg => "Cannot find heap or nonheap memory usage status." + ); + $self->{output}->option_exit(); + } + + my ( $init_heap, $max_heap, $used_heap, $committed_heap ) = ( 0, 0, 0, 0 ); + my ( $init_nonheap, $max_nonheap, $used_nonheap, $committed_nonheap ) = ( 0, 0, 0, 0 ); + if ( $webcontent =~ /^Type=HeapMemoryUsage\sinit=(\d+)\smax=(\d+)\sused=(\d+)\scommitted=(\d+)/mi ){ + ( $init_heap, $max_heap, $used_heap, $committed_heap ) = ( $1, $2, $3, $4 ); + $self->{output}->output_add( + severity => 'ok', + short_msg => sprintf( + "Heap Memory: init %d , max %d ,used %d ,commited %d", + $init_heap, $max_heap, $used_heap, $committed_heap + ) + ); + } + if ( $webcontent =~ /^Type=NonHeapMemoryUsage\sinit=(\d+)\smax=(-{0,1}\d+)\sused=(\d+)\scommitted=(\d+)/mi ){ + ( $init_nonheap, $max_nonheap, $used_nonheap, $committed_nonheap ) = ( $1, $2, $3, $4 ); + $self->{output}->output_add( + severity => 'ok', + short_msg => sprintf( + "NonHeap Memory: init %d , max %d ,used %d ,commited %d", + $init_nonheap, $max_nonheap, + $used_nonheap, $committed_nonheap + ) + ); + } + + my $exit = $self->{perfdata}->threshold_check(value => $init_heap, + threshold => [ { label => 'crit_init_heap', 'exit_litteral' => 'critical' }, + { label => 'warn_init_heap', 'exit_litteral' => 'warning' } ]); + if ($exit ne "ok"){ + $self->{output}->output_add( + severity => $exit, + short_msg => sprintf("Init Heap: %d", $init_heap) + ); + } + $exit = $self->{perfdata}->threshold_check(value => $max_heap, + threshold => [ { label => 'crit_max_heap', 'exit_litteral' => 'critical' }, + { label => 'warn_max_heap', 'exit_litteral' => 'warning' } ]); + if ($exit ne "ok"){ + $self->{output}->output_add( + severity => $exit, + short_msg => sprintf("Max Heap: %d", $max_heap) + ); + } + $exit = $self->{perfdata}->threshold_check(value => $used_heap, + threshold => [ { label => 'crit_used_heap', 'exit_litteral' => 'critical' }, + { label => 'warn_used_heap', 'exit_litteral' => 'warning' } ]); + if ($exit ne "ok"){ + $self->{output}->output_add( + severity => $exit, + short_msg => sprintf("Used Heap: %d", $used_heap) + ); + } + $exit = $self->{perfdata}->threshold_check(value => $committed_heap, + threshold => [ { label => 'crit_committed_heap', 'exit_litteral' => 'critical' }, + { label => 'warn_committed_heap', 'exit_litteral' => 'warning' } ]); + if ($exit ne "ok"){ + $self->{output}->output_add( + severity => $exit, + short_msg => sprintf("Committed Heap: %d", $committed_heap) + ); + } + + $exit = $self->{perfdata}->threshold_check(value => $init_nonheap, + threshold => [ { label => 'crit_init_nonheap', 'exit_litteral' => 'critical' }, + { label => 'warn_init_nonheap', 'exit_litteral' => 'warning' } ]); + if ($exit ne "ok"){ + $self->{output}->output_add( + severity => $exit, + short_msg => sprintf("Init NonHeap: %d", $init_nonheap) + ); + } + $exit = $self->{perfdata}->threshold_check(value => $max_nonheap, + threshold => [ { label => 'crit_max_nonheap', 'exit_litteral' => 'critical' }, + { label => 'warn_max_nonheap', 'exit_litteral' => 'warning' } ]); + if ($exit ne "ok"){ + $self->{output}->output_add( + severity => $exit, + short_msg => sprintf("Max NonHeap: %d", $max_nonheap) + ); + } + $exit = $self->{perfdata}->threshold_check(value => $used_nonheap, + threshold => [ { label => 'crit_used_nonheap', 'exit_litteral' => 'critical' }, + { label => 'warn_used_nonheap', 'exit_litteral' => 'warning' } ]); + if ($exit ne "ok"){ + $self->{output}->output_add( + severity => $exit, + short_msg => sprintf("Used NonHeap: %d", $used_nonheap) + ); + } + $exit = $self->{perfdata}->threshold_check(value => $committed_nonheap, + threshold => [ { label => 'crit_committed_nonheap', 'exit_litteral' => 'critical' }, + { label => 'warn_committed_nonheap', 'exit_litteral' => 'warning' } ]); + if ($exit ne "ok"){ + $self->{output}->output_add( + severity => $exit, + short_msg => sprintf("Committed NonHeap: %d", $committed_nonheap) + ); + } + + $self->{output}->perfdata_add( + label => "init_heap", + value => $init_heap, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_init_heap'), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_init_heap'), + ); + $self->{output}->perfdata_add( + label => "max_heap", + value => $max_heap, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_max_heap'), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_max_heap'), + ); + $self->{output}->perfdata_add( + label => "used_heap", + value => $used_heap, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_used_heap'), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_used_heap'), + ); + $self->{output}->perfdata_add( + label => "committed_heap", + value => $committed_heap, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_committed_heap'), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_committed_heap'), + ); + $self->{output}->perfdata_add( + label => "init_nonheap", + value => $init_nonheap, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_init_nonheap'), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_init_nonheap'), + ); + $self->{output}->perfdata_add( + label => "max_nonheap", + value => $max_nonheap, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_max_nonheap'), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_max_nonheap'), + ); + $self->{output}->perfdata_add( + label => "used_nonheap", + value => $used_nonheap, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_used_nonheap'), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_used_nonheap'), + ); + $self->{output}->perfdata_add( + label => "committed_nonheap", + value => $committed_nonheap, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_committed_nonheap'), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_committed_nonheap'), + ); + + $self->{output}->display(); + $self->{output}->exit(); +} + +1; + +__END__ + +=head1 MODE + +Check EAS instance heap & nonheap memory usage. + +=over 8 + +=item B<--urlpath> + +Set path to get status page. (Default: '/easportal/tools/nagios/checkmemory.jsp') + +=item B<--warning-*> + +Warning Threshold (init,max,used,committed), '*' Can be: 'heap', 'nonheap'. + +=item B<--critical-*> + +Critical Threshold (init,max,used,committed), '*' Can be: 'heap', 'nonheap'. + +=back + +=cut diff --git a/apps/kingdee/eas/mode/muxhandler.pm b/apps/kingdee/eas/mode/muxhandler.pm index 680820a9e..04bc24bd4 100644 --- a/apps/kingdee/eas/mode/muxhandler.pm +++ b/apps/kingdee/eas/mode/muxhandler.pm @@ -1,185 +1,185 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Author : CHEN JUN , aladdin.china@gmail.com - -package apps::kingdee::eas::mode::muxhandler; - -use base qw(centreon::plugins::mode); - -use strict; -use warnings; - -sub new { - my ( $class, %options ) = @_; - my $self = $class->SUPER::new( package => __PACKAGE__, %options ); - bless $self, $class; - - $self->{version} = '1.0'; - $options{options}->add_options( - arguments => { - "urlpath:s" => { name => 'url_path', default => "/easportal/tools/nagios/checkmuxhandler.jsp" }, - "warning:s" => { name => 'warning' }, - "critical:s" => { name => 'critical' }, - } - ); - - return $self; -} - -sub check_options { - my ( $self, %options ) = @_; - $self->SUPER::init(%options); - - if (($self->{perfdata}->threshold_validate(label => 'warning', value => $self->{option_results}->{warning})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong warning threshold '" . $self->{option_results}->{warning} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'critical', value => $self->{option_results}->{critical})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong critical threshold '" . $self->{option_results}->{critical} . "'."); - $self->{output}->option_exit(); - } -} - -sub run { - my ( $self, %options ) = @_; - - my $webcontent = $options{custom}->request(path => $self->{option_results}->{url_path}); - - if ($webcontent !~ /MaxThreads=\d+/i) { - $self->{output}->output_add( - severity => 'UNKNOWN', - short_msg => "Cannot find httphandler status in response: '" . $webcontent . "'" - ); - $self->{output}->option_exit(); - } - - my ($maxthreads, $minsparethreads, $maxsparethreads, $maxqueuesize, $idletimeout, $processedcount) = (0, 0, 0, 0, 0, 0); - my ($currentthreadcount, $availablethreadcount, $busythreadcount, $maxavailablethreadcount, $maxbusythreadcount) = (0, 0, 0, 0, 0); - my ($maxprocessedtime, $createcount, $destroycount) = (0, 0, 0); - - $maxthreads = $1 if $webcontent =~ /MaxThreads=(\d+)/mi ; - $minsparethreads = $1 if $webcontent =~ /MinSpareThreads=(\d+)/mi ; - $maxsparethreads = $1 if $webcontent =~ /MaxSpareThreads=(\d+)/mi ; - $maxqueuesize = $1 if $webcontent =~ /MaxQueueSize=(\d+)/mi ; - $idletimeout = $1 if $webcontent =~ /IdleTimeout=(\d+)/mi ; - $processedcount = $1 if $webcontent =~ /ProcessedCount=(\d+)/mi ; - $currentthreadcount = $1 if $webcontent =~ /CurrentThreadCount=(\d+)/mi ; - $availablethreadcount = $1 if $webcontent =~ /AvailableThreadCount=(\d+)/mi ; - $busythreadcount = $1 if $webcontent =~ /BusyThreadCount=(\d+)/mi ; - $maxavailablethreadcount = $1 if $webcontent =~ /MaxAvailableThreadCount=(\d+)/mi ; - $maxbusythreadcount = $1 if $webcontent =~ /MaxBusyThreadCount=(\d+)/mi ; - $maxprocessedtime = $1 if $webcontent =~ /MaxProcessedTime=(\d+)/mi ; - $createcount = $1 if $webcontent =~ /CreateCount=(\d+)/mi ; - $destroycount = $1 if $webcontent =~ /DestroyCount=(\d+)/mi ; - - $self->{output}->output_add(severity => "ok", short_msg => sprintf("MaxThreads: %d", $maxthreads)); - $self->{output}->output_add(severity => "ok", short_msg => sprintf("MinSpareThreads: %d", $minsparethreads)); - $self->{output}->output_add(severity => "ok", short_msg => sprintf("MaxSpareThreads: %d", $maxsparethreads)); - $self->{output}->output_add(severity => "ok", short_msg => sprintf("MaxQueueSize: %d", $maxqueuesize)); - $self->{output}->output_add(severity => "ok", short_msg => sprintf("IdleTimeout: %ds", $idletimeout)); - $self->{output}->output_add(severity => "ok", short_msg => sprintf("ProcessedCount: %d", $processedcount)); - $self->{output}->output_add(severity => "ok", short_msg => sprintf("CurrentThreadCount: %d", $currentthreadcount)); - $self->{output}->output_add(severity => "ok", short_msg => sprintf("AvailableThreadCount: %d", $availablethreadcount)); - - my $exit = $self->{perfdata}->threshold_check(value => $busythreadcount, threshold => [ { label => 'critical', exit_litteral => 'critical' }, { label => 'warning', exit_litteral => 'warning' } ]); - $self->{output}->output_add(severity => $exit, short_msg => sprintf("BusyThreadCount: %d", $busythreadcount)); - - $self->{output}->output_add(severity => "ok", short_msg => sprintf("MaxAvailableThreadCount: %d", $maxavailablethreadcount)); - $self->{output}->output_add(severity => "ok", short_msg => sprintf("MaxBusyThreadCount: %d", $maxbusythreadcount)); - $self->{output}->output_add(severity => "ok", short_msg => sprintf("MaxProcessedTime: %dms", $maxprocessedtime)); - $self->{output}->output_add(severity => "ok", short_msg => sprintf("CreateCount: %d", $createcount)); - $self->{output}->output_add(severity => "ok", short_msg => sprintf("DestroyCount: %d", $destroycount)); - - $self->{output}->perfdata_add(label => "MaxThreads", unit => '', - value => sprintf("%d", $maxthreads), - ); - $self->{output}->perfdata_add(label => "MinSpareThreads", unit => '', - value => sprintf("%d", $minsparethreads), - ); - $self->{output}->perfdata_add(label => "MaxSpareThreads", unit => '', - value => sprintf("%d", $maxsparethreads), - ); - $self->{output}->perfdata_add(label => "MaxQueueSize", unit => '', - value => sprintf("%d", $maxqueuesize), - ); - $self->{output}->perfdata_add(label => "IdleTimeout", unit => 's', - value => sprintf("%d", $idletimeout), - ); - $self->{output}->perfdata_add(label => "c[ProcessedCount]", unit => '', - value => sprintf("%d", $processedcount), - ); - $self->{output}->perfdata_add(label => "CurrentThreadCount", unit => '', - value => sprintf("%d", $currentthreadcount), - ); - $self->{output}->perfdata_add(label => "AvailableThreadCount", unit => '', - value => sprintf("%d", $availablethreadcount), - ); - - $self->{output}->perfdata_add(label => "BusyThreadCount", unit => '', - value => sprintf("%d", $busythreadcount), - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'), - ); - - $self->{output}->perfdata_add(label => "MaxAvailableThreadCount", unit => '', - value => sprintf("%d", $maxavailablethreadcount), - ); - $self->{output}->perfdata_add(label => "MaxBusyThreadCount", unit => '', - value => sprintf("%d", $maxbusythreadcount), - ); - $self->{output}->perfdata_add(label => "MaxProcessedTime", unit => 'ms', - value => sprintf("%d", $maxprocessedtime), - ); - $self->{output}->perfdata_add(label => "c[CreateCount]", unit => '', - value => sprintf("%d", $createcount), - ); - $self->{output}->perfdata_add(label => "c[DestroyCount]", unit => '', - value => sprintf("%d", $destroycount), - ); - - $self->{output}->display(); - $self->{output}->exit(); -} - -1; - -__END__ - -=head1 MODE - -Check EAS instance muxhandler(Apusic) threads pool status. - -=over 8 - -=item B<--urlpath> - -Set path to get status page. (Default: '/easportal/tools/nagios/checkmuxhandler.jsp') - -=item B<--warning> - -Warning Threshold for busy thread count. - -=item B<--critical> - -Critical Threshold for busy thread count. - -=back - -=cut +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Author : CHEN JUN , aladdin.china@gmail.com + +package apps::kingdee::eas::mode::muxhandler; + +use base qw(centreon::plugins::mode); + +use strict; +use warnings; + +sub new { + my ( $class, %options ) = @_; + my $self = $class->SUPER::new( package => __PACKAGE__, %options ); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options( + arguments => { + "urlpath:s" => { name => 'url_path', default => "/easportal/tools/nagios/checkmuxhandler.jsp" }, + "warning:s" => { name => 'warning' }, + "critical:s" => { name => 'critical' }, + } + ); + + return $self; +} + +sub check_options { + my ( $self, %options ) = @_; + $self->SUPER::init(%options); + + if (($self->{perfdata}->threshold_validate(label => 'warning', value => $self->{option_results}->{warning})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong warning threshold '" . $self->{option_results}->{warning} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'critical', value => $self->{option_results}->{critical})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong critical threshold '" . $self->{option_results}->{critical} . "'."); + $self->{output}->option_exit(); + } +} + +sub run { + my ( $self, %options ) = @_; + + my $webcontent = $options{custom}->request(path => $self->{option_results}->{url_path}); + + if ($webcontent !~ /MaxThreads=\d+/i) { + $self->{output}->output_add( + severity => 'UNKNOWN', + short_msg => "Cannot find httphandler status in response: '" . $webcontent . "'" + ); + $self->{output}->option_exit(); + } + + my ($maxthreads, $minsparethreads, $maxsparethreads, $maxqueuesize, $idletimeout, $processedcount) = (0, 0, 0, 0, 0, 0); + my ($currentthreadcount, $availablethreadcount, $busythreadcount, $maxavailablethreadcount, $maxbusythreadcount) = (0, 0, 0, 0, 0); + my ($maxprocessedtime, $createcount, $destroycount) = (0, 0, 0); + + $maxthreads = $1 if $webcontent =~ /MaxThreads=(\d+)/mi ; + $minsparethreads = $1 if $webcontent =~ /MinSpareThreads=(\d+)/mi ; + $maxsparethreads = $1 if $webcontent =~ /MaxSpareThreads=(\d+)/mi ; + $maxqueuesize = $1 if $webcontent =~ /MaxQueueSize=(\d+)/mi ; + $idletimeout = $1 if $webcontent =~ /IdleTimeout=(\d+)/mi ; + $processedcount = $1 if $webcontent =~ /ProcessedCount=(\d+)/mi ; + $currentthreadcount = $1 if $webcontent =~ /CurrentThreadCount=(\d+)/mi ; + $availablethreadcount = $1 if $webcontent =~ /AvailableThreadCount=(\d+)/mi ; + $busythreadcount = $1 if $webcontent =~ /BusyThreadCount=(\d+)/mi ; + $maxavailablethreadcount = $1 if $webcontent =~ /MaxAvailableThreadCount=(\d+)/mi ; + $maxbusythreadcount = $1 if $webcontent =~ /MaxBusyThreadCount=(\d+)/mi ; + $maxprocessedtime = $1 if $webcontent =~ /MaxProcessedTime=(\d+)/mi ; + $createcount = $1 if $webcontent =~ /CreateCount=(\d+)/mi ; + $destroycount = $1 if $webcontent =~ /DestroyCount=(\d+)/mi ; + + $self->{output}->output_add(severity => "ok", short_msg => sprintf("MaxThreads: %d", $maxthreads)); + $self->{output}->output_add(severity => "ok", short_msg => sprintf("MinSpareThreads: %d", $minsparethreads)); + $self->{output}->output_add(severity => "ok", short_msg => sprintf("MaxSpareThreads: %d", $maxsparethreads)); + $self->{output}->output_add(severity => "ok", short_msg => sprintf("MaxQueueSize: %d", $maxqueuesize)); + $self->{output}->output_add(severity => "ok", short_msg => sprintf("IdleTimeout: %ds", $idletimeout)); + $self->{output}->output_add(severity => "ok", short_msg => sprintf("ProcessedCount: %d", $processedcount)); + $self->{output}->output_add(severity => "ok", short_msg => sprintf("CurrentThreadCount: %d", $currentthreadcount)); + $self->{output}->output_add(severity => "ok", short_msg => sprintf("AvailableThreadCount: %d", $availablethreadcount)); + + my $exit = $self->{perfdata}->threshold_check(value => $busythreadcount, threshold => [ { label => 'critical', exit_litteral => 'critical' }, { label => 'warning', exit_litteral => 'warning' } ]); + $self->{output}->output_add(severity => $exit, short_msg => sprintf("BusyThreadCount: %d", $busythreadcount)); + + $self->{output}->output_add(severity => "ok", short_msg => sprintf("MaxAvailableThreadCount: %d", $maxavailablethreadcount)); + $self->{output}->output_add(severity => "ok", short_msg => sprintf("MaxBusyThreadCount: %d", $maxbusythreadcount)); + $self->{output}->output_add(severity => "ok", short_msg => sprintf("MaxProcessedTime: %dms", $maxprocessedtime)); + $self->{output}->output_add(severity => "ok", short_msg => sprintf("CreateCount: %d", $createcount)); + $self->{output}->output_add(severity => "ok", short_msg => sprintf("DestroyCount: %d", $destroycount)); + + $self->{output}->perfdata_add(label => "MaxThreads", unit => '', + value => sprintf("%d", $maxthreads), + ); + $self->{output}->perfdata_add(label => "MinSpareThreads", unit => '', + value => sprintf("%d", $minsparethreads), + ); + $self->{output}->perfdata_add(label => "MaxSpareThreads", unit => '', + value => sprintf("%d", $maxsparethreads), + ); + $self->{output}->perfdata_add(label => "MaxQueueSize", unit => '', + value => sprintf("%d", $maxqueuesize), + ); + $self->{output}->perfdata_add(label => "IdleTimeout", unit => 's', + value => sprintf("%d", $idletimeout), + ); + $self->{output}->perfdata_add(label => "c[ProcessedCount]", unit => '', + value => sprintf("%d", $processedcount), + ); + $self->{output}->perfdata_add(label => "CurrentThreadCount", unit => '', + value => sprintf("%d", $currentthreadcount), + ); + $self->{output}->perfdata_add(label => "AvailableThreadCount", unit => '', + value => sprintf("%d", $availablethreadcount), + ); + + $self->{output}->perfdata_add(label => "BusyThreadCount", unit => '', + value => sprintf("%d", $busythreadcount), + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'), + ); + + $self->{output}->perfdata_add(label => "MaxAvailableThreadCount", unit => '', + value => sprintf("%d", $maxavailablethreadcount), + ); + $self->{output}->perfdata_add(label => "MaxBusyThreadCount", unit => '', + value => sprintf("%d", $maxbusythreadcount), + ); + $self->{output}->perfdata_add(label => "MaxProcessedTime", unit => 'ms', + value => sprintf("%d", $maxprocessedtime), + ); + $self->{output}->perfdata_add(label => "c[CreateCount]", unit => '', + value => sprintf("%d", $createcount), + ); + $self->{output}->perfdata_add(label => "c[DestroyCount]", unit => '', + value => sprintf("%d", $destroycount), + ); + + $self->{output}->display(); + $self->{output}->exit(); +} + +1; + +__END__ + +=head1 MODE + +Check EAS instance muxhandler(Apusic) threads pool status. + +=over 8 + +=item B<--urlpath> + +Set path to get status page. (Default: '/easportal/tools/nagios/checkmuxhandler.jsp') + +=item B<--warning> + +Warning Threshold for busy thread count. + +=item B<--critical> + +Critical Threshold for busy thread count. + +=back + +=cut diff --git a/apps/kingdee/eas/mode/oraclejvmgc.pm b/apps/kingdee/eas/mode/oraclejvmgc.pm index 7a9f1f871..2237bc9d0 100644 --- a/apps/kingdee/eas/mode/oraclejvmgc.pm +++ b/apps/kingdee/eas/mode/oraclejvmgc.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/kingdee/eas/mode/oracleksqltemptable.pm b/apps/kingdee/eas/mode/oracleksqltemptable.pm index ed97ca5b0..25ed03eee 100644 --- a/apps/kingdee/eas/mode/oracleksqltemptable.pm +++ b/apps/kingdee/eas/mode/oracleksqltemptable.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/kingdee/eas/mode/oraclerecyclebin.pm b/apps/kingdee/eas/mode/oraclerecyclebin.pm index 1cbb63078..6d0f77aa4 100644 --- a/apps/kingdee/eas/mode/oraclerecyclebin.pm +++ b/apps/kingdee/eas/mode/oraclerecyclebin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/kingdee/eas/mode/oracleredolog.pm b/apps/kingdee/eas/mode/oracleredolog.pm index 21d50d0fa..cf3bc562f 100644 --- a/apps/kingdee/eas/mode/oracleredolog.pm +++ b/apps/kingdee/eas/mode/oracleredolog.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure application monitoring for diff --git a/apps/kingdee/eas/mode/oraclesession.pm b/apps/kingdee/eas/mode/oraclesession.pm index fbf7bac23..30fbee098 100644 --- a/apps/kingdee/eas/mode/oraclesession.pm +++ b/apps/kingdee/eas/mode/oraclesession.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure application monitoring for diff --git a/apps/kingdee/eas/mode/oracletable.pm b/apps/kingdee/eas/mode/oracletable.pm index ad0053158..07eb9ad2e 100644 --- a/apps/kingdee/eas/mode/oracletable.pm +++ b/apps/kingdee/eas/mode/oracletable.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure application monitoring for diff --git a/apps/kingdee/eas/mode/oracleversion.pm b/apps/kingdee/eas/mode/oracleversion.pm index a4ce4a70e..f431bf13d 100644 --- a/apps/kingdee/eas/mode/oracleversion.pm +++ b/apps/kingdee/eas/mode/oracleversion.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure application monitoring for diff --git a/apps/kingdee/eas/mode/ormrpc.pm b/apps/kingdee/eas/mode/ormrpc.pm index d483a7260..823d55e84 100644 --- a/apps/kingdee/eas/mode/ormrpc.pm +++ b/apps/kingdee/eas/mode/ormrpc.pm @@ -1,269 +1,269 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# -# Author : CHEN JUN , aladdin.china@gmail.com - -package apps::kingdee::eas::mode::ormrpc; - -use base qw(centreon::plugins::mode); - -use strict; -use warnings; - -sub new { - my ( $class, %options ) = @_; - my $self = $class->SUPER::new( package => __PACKAGE__, %options ); - bless $self, $class; - - $self->{version} = '1.0'; - $options{options}->add_options( - arguments => { - "urlpath:s" => { name => 'url_path', default => "/easportal/tools/nagios/checkrpc.jsp" }, - "warning:s" => { name => 'warning' , default => ",,,,,,"}, - "critical:s" => { name => 'critical' , default => ",,,,,,"}, - } - ); - - return $self; -} - -sub check_options { - my ( $self, %options ) = @_; - $self->SUPER::init(%options); - - ($self->{warn_activethreadcount}, $self->{warn_stubcount}, $self->{warn_proxycount}, $self->{warn_clientsessioncount} ,$self->{warn_serversessioncount} ,$self->{warn_invokecountpermin} ,$self->{warn_servicecountpermin}) - = split /,/, $self->{option_results}->{"warning"}; - ($self->{crit_activethreadcount}, $self->{crit_stubcount}, $self->{crit_proxycount}, $self->{crit_clientsessioncount} ,$self->{crit_serversessioncount} ,$self->{crit_invokecountpermin} ,$self->{crit_servicecountpermin}) - = split /,/, $self->{option_results}->{"critical"}; - - # warning - if (($self->{perfdata}->threshold_validate(label => 'warn_activethreadcount', value => $self->{warn_activethreadcount})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong warning activethreadcount threshold '" . $self->{warn_activethreadcount} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'warn_stubcount', value => $self->{warn_stubcount})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong warning stubcount threshold '" . $self->{warn_stubcount} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'warn_proxycount', value => $self->{warn_proxycount})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong warning proxycount threshold '" . $self->{warn_proxycount} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'warn_clientsessioncount', value => $self->{warn_clientsessioncount})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong warning clientsessioncount threshold '" . $self->{warn_clientsessioncount} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'warn_serversessioncount', value => $self->{warn_serversessioncount})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong warning serversessioncount threshold '" . $self->{warn_serversessioncount} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'warn_invokecountpermin', value => $self->{warn_invokecountpermin})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong warning invokecountpermin threshold '" . $self->{warn_invokecountpermin} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'warn_servicecountpermin', value => $self->{warn_servicecountpermin})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong warning servicecountpermin threshold '" . $self->{warn_servicecountpermin} . "'."); - $self->{output}->option_exit(); - } - - # critical - if (($self->{perfdata}->threshold_validate(label => 'crit_activethreadcount', value => $self->{crit_activethreadcount})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong critical activethreadcount threshold '" . $self->{crit_activethreadcount} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'crit_stubcount', value => $self->{crit_stubcount})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong critical stubcount threshold '" . $self->{crit_stubcount} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'crit_proxycount', value => $self->{crit_proxycount})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong critical proxycount threshold '" . $self->{crit_proxycount} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'crit_clientsessioncount', value => $self->{crit_clientsessioncount})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong critical clientsessioncount threshold '" . $self->{crit_clientsessioncount} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'crit_serversessioncount', value => $self->{crit_serversessioncount})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong critical serversessioncount threshold '" . $self->{crit_serversessioncount} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'crit_invokecountpermin', value => $self->{crit_invokecountpermin})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong critical invokecountpermin threshold '" . $self->{crit_invokecountpermin} . "'."); - $self->{output}->option_exit(); - } - if (($self->{perfdata}->threshold_validate(label => 'crit_servicecountpermin', value => $self->{crit_servicecountpermin})) == 0) { - $self->{output}->add_option_msg(short_msg => "Wrong critical servicecountpermin threshold '" . $self->{crit_servicecountpermin} . "'."); - $self->{output}->option_exit(); - } -} - -sub run { - my ( $self, %options ) = @_; - - my $webcontent = $options{custom}->request(path => $self->{option_results}->{url_path}); - if ($webcontent !~ /ActiveThreadCount=\d+/i) { - $self->{output}->output_add( - severity => 'UNKNOWN', - short_msg => "Cannot find ormrpc status in response: \'" . $webcontent . "\'" - ); - $self->{output}->option_exit(); - } - - my ($activethreadcount, $stubcount, $proxycount, $clientsessioncount, $serversessioncount, $invokecountpermin, $servicecountpermin, $invokecount, $servicecount) = (0, 0, 0, 0, 0, 0, 0, 0, 0); - - $activethreadcount = $1 if $webcontent =~ /ActiveThreadCount=(\d+)/mi ; - $stubcount = $1 if $webcontent =~ /StubCount=(\d+)/mi ; - $proxycount = $1 if $webcontent =~ /ProxyCount=(\d+)/mi ; - $clientsessioncount = $1 if $webcontent =~ /ClientSessionCount=(\d+)/mi ; - $serversessioncount = $1 if $webcontent =~ /ServerSessionCount=(\d+)/mi ; - $invokecountpermin = $1 if $webcontent =~ /ClientInvokeCountPerMinute=(\d+)/mi ; - $servicecountpermin = $1 if $webcontent =~ /ProcessedServiceCountPerMinute=(\d+)/mi ; - $invokecount = $1 if $webcontent =~ /ClientInvokeCount=(\d+)/mi ; - $servicecount = $1 if $webcontent =~ /ProcessedServiceCount=(\d+)/mi ; - - my $exit = $self->{perfdata}->threshold_check(value => $activethreadcount, - threshold => [ { label => 'crit_activethreadcount', 'exit_litteral' => 'critical' }, - { label => 'warn_activethreadcount', 'exit_litteral' => 'warning' } ]); - $self->{output}->output_add( - severity => $exit, - short_msg => sprintf("ActiveTrheadCount: %d", $activethreadcount) - ); - $exit = $self->{perfdata}->threshold_check(value => $stubcount, - threshold => [ { label => 'crit_stubcount', 'exit_litteral' => 'critical' }, - { label => 'warn_stubcount', 'exit_litteral' => 'warning' } ]); - $self->{output}->output_add( - severity => $exit, - short_msg => sprintf("StubCount: %d", $stubcount) - ); - $exit = $self->{perfdata}->threshold_check(value => $proxycount, - threshold => [ { label => 'crit_proxycount', 'exit_litteral' => 'critical' }, - { label => 'warn_proxycount', 'exit_litteral' => 'warning' } ]); - $self->{output}->output_add( - severity => $exit, - short_msg => sprintf("ProxyCount: %d", $proxycount) - ); - $exit = $self->{perfdata}->threshold_check(value => $clientsessioncount, - threshold => [ { label => 'crit_clientsessioncount', 'exit_litteral' => 'critical' }, - { label => 'warn_clientsessioncount', 'exit_litteral' => 'warning' } ]); - $self->{output}->output_add( - severity => $exit, - short_msg => sprintf("ClientSessionCount: %d", $clientsessioncount) - ); - $exit = $self->{perfdata}->threshold_check(value => $serversessioncount, - threshold => [ { label => 'crit_serversessioncount', 'exit_litteral' => 'critical' }, - { label => 'warn_serversessioncount', 'exit_litteral' => 'warning' } ]); - $self->{output}->output_add( - severity => $exit, - short_msg => sprintf("ServerSessionCount: %d", $serversessioncount) - ); - $exit = $self->{perfdata}->threshold_check(value => $invokecountpermin, - threshold => [ { label => 'crit_invokecountpermin', 'exit_litteral' => 'critical' }, - { label => 'warn_invokecountpermin', 'exit_litteral' => 'warning' } ]); - $self->{output}->output_add( - severity => $exit, - short_msg => sprintf("InvokeCountPerMinute: %d", $invokecountpermin) - ); - $exit = $self->{perfdata}->threshold_check(value => $servicecountpermin, - threshold => [ { label => 'crit_servicecountpermin', 'exit_litteral' => 'critical' }, - { label => 'warn_servicecountpermin', 'exit_litteral' => 'warning' } ]); - $self->{output}->output_add( - severity => $exit, - short_msg => sprintf("ServiceCountPerMinute: %d", $servicecountpermin) - ); - - $self->{output}->perfdata_add( - label => "ActiveTrheadCount", - value => $activethreadcount, - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_activethreadcount'), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_activethreadcount'), - ); - $self->{output}->perfdata_add( - label => "StubCount", - value => $stubcount, - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_stubcount'), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_stubcount'), - ); - $self->{output}->perfdata_add( - label => "ProxyCount", - value => $proxycount, - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_proxycount'), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_proxycount'), - ); - $self->{output}->perfdata_add( - label => "ClientSessionCount", - value => $clientsessioncount, - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_clientsessioncount'), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_clientsessioncount'), - ); - $self->{output}->perfdata_add( - label => "ServerSessionCount", - value => $serversessioncount, - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_serversessioncount'), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_serversessioncount'), - ); - $self->{output}->perfdata_add( - label => "InvokeCount /min", - value => $invokecountpermin, - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_invokecountpermin'), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_invokecountpermin'), - ); - $self->{output}->perfdata_add( - label => "ServiceCount /min", - value => $servicecountpermin, - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_servicecountpermin'), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_servicecountpermin'), - ); - $self->{output}->perfdata_add( - label => "c[InvokeCount]", - value => $invokecount, - ); - $self->{output}->perfdata_add( - label => "c[ServiceCount]", - value => $servicecount, - ); - - $self->{output}->display(); - $self->{output}->exit(); -} - -1; - -__END__ - -=head1 MODE - -Check EAS instance orm rpc status. - -=over 8 - -=item B<--urlpath> - -Set path to get status page. (Default: '/easportal/tools/nagios/checkrpc.jsp') - -=item B<--warning> - -Warning Threshold (activethreadcount,stubcount,proxycount,clientsessioncount,serversessioncount,invokecountpermin,servicecountpermin). - -=item B<--critical> - -Critical Threshold (activethreadcount,stubcount,proxycount,clientsessioncount,serversessioncount,invokecountpermin,servicecountpermin). - -=back - -=cut +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# Author : CHEN JUN , aladdin.china@gmail.com + +package apps::kingdee::eas::mode::ormrpc; + +use base qw(centreon::plugins::mode); + +use strict; +use warnings; + +sub new { + my ( $class, %options ) = @_; + my $self = $class->SUPER::new( package => __PACKAGE__, %options ); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options( + arguments => { + "urlpath:s" => { name => 'url_path', default => "/easportal/tools/nagios/checkrpc.jsp" }, + "warning:s" => { name => 'warning' , default => ",,,,,,"}, + "critical:s" => { name => 'critical' , default => ",,,,,,"}, + } + ); + + return $self; +} + +sub check_options { + my ( $self, %options ) = @_; + $self->SUPER::init(%options); + + ($self->{warn_activethreadcount}, $self->{warn_stubcount}, $self->{warn_proxycount}, $self->{warn_clientsessioncount} ,$self->{warn_serversessioncount} ,$self->{warn_invokecountpermin} ,$self->{warn_servicecountpermin}) + = split /,/, $self->{option_results}->{"warning"}; + ($self->{crit_activethreadcount}, $self->{crit_stubcount}, $self->{crit_proxycount}, $self->{crit_clientsessioncount} ,$self->{crit_serversessioncount} ,$self->{crit_invokecountpermin} ,$self->{crit_servicecountpermin}) + = split /,/, $self->{option_results}->{"critical"}; + + # warning + if (($self->{perfdata}->threshold_validate(label => 'warn_activethreadcount', value => $self->{warn_activethreadcount})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong warning activethreadcount threshold '" . $self->{warn_activethreadcount} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'warn_stubcount', value => $self->{warn_stubcount})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong warning stubcount threshold '" . $self->{warn_stubcount} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'warn_proxycount', value => $self->{warn_proxycount})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong warning proxycount threshold '" . $self->{warn_proxycount} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'warn_clientsessioncount', value => $self->{warn_clientsessioncount})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong warning clientsessioncount threshold '" . $self->{warn_clientsessioncount} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'warn_serversessioncount', value => $self->{warn_serversessioncount})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong warning serversessioncount threshold '" . $self->{warn_serversessioncount} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'warn_invokecountpermin', value => $self->{warn_invokecountpermin})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong warning invokecountpermin threshold '" . $self->{warn_invokecountpermin} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'warn_servicecountpermin', value => $self->{warn_servicecountpermin})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong warning servicecountpermin threshold '" . $self->{warn_servicecountpermin} . "'."); + $self->{output}->option_exit(); + } + + # critical + if (($self->{perfdata}->threshold_validate(label => 'crit_activethreadcount', value => $self->{crit_activethreadcount})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong critical activethreadcount threshold '" . $self->{crit_activethreadcount} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'crit_stubcount', value => $self->{crit_stubcount})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong critical stubcount threshold '" . $self->{crit_stubcount} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'crit_proxycount', value => $self->{crit_proxycount})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong critical proxycount threshold '" . $self->{crit_proxycount} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'crit_clientsessioncount', value => $self->{crit_clientsessioncount})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong critical clientsessioncount threshold '" . $self->{crit_clientsessioncount} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'crit_serversessioncount', value => $self->{crit_serversessioncount})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong critical serversessioncount threshold '" . $self->{crit_serversessioncount} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'crit_invokecountpermin', value => $self->{crit_invokecountpermin})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong critical invokecountpermin threshold '" . $self->{crit_invokecountpermin} . "'."); + $self->{output}->option_exit(); + } + if (($self->{perfdata}->threshold_validate(label => 'crit_servicecountpermin', value => $self->{crit_servicecountpermin})) == 0) { + $self->{output}->add_option_msg(short_msg => "Wrong critical servicecountpermin threshold '" . $self->{crit_servicecountpermin} . "'."); + $self->{output}->option_exit(); + } +} + +sub run { + my ( $self, %options ) = @_; + + my $webcontent = $options{custom}->request(path => $self->{option_results}->{url_path}); + if ($webcontent !~ /ActiveThreadCount=\d+/i) { + $self->{output}->output_add( + severity => 'UNKNOWN', + short_msg => "Cannot find ormrpc status in response: \'" . $webcontent . "\'" + ); + $self->{output}->option_exit(); + } + + my ($activethreadcount, $stubcount, $proxycount, $clientsessioncount, $serversessioncount, $invokecountpermin, $servicecountpermin, $invokecount, $servicecount) = (0, 0, 0, 0, 0, 0, 0, 0, 0); + + $activethreadcount = $1 if $webcontent =~ /ActiveThreadCount=(\d+)/mi ; + $stubcount = $1 if $webcontent =~ /StubCount=(\d+)/mi ; + $proxycount = $1 if $webcontent =~ /ProxyCount=(\d+)/mi ; + $clientsessioncount = $1 if $webcontent =~ /ClientSessionCount=(\d+)/mi ; + $serversessioncount = $1 if $webcontent =~ /ServerSessionCount=(\d+)/mi ; + $invokecountpermin = $1 if $webcontent =~ /ClientInvokeCountPerMinute=(\d+)/mi ; + $servicecountpermin = $1 if $webcontent =~ /ProcessedServiceCountPerMinute=(\d+)/mi ; + $invokecount = $1 if $webcontent =~ /ClientInvokeCount=(\d+)/mi ; + $servicecount = $1 if $webcontent =~ /ProcessedServiceCount=(\d+)/mi ; + + my $exit = $self->{perfdata}->threshold_check(value => $activethreadcount, + threshold => [ { label => 'crit_activethreadcount', 'exit_litteral' => 'critical' }, + { label => 'warn_activethreadcount', 'exit_litteral' => 'warning' } ]); + $self->{output}->output_add( + severity => $exit, + short_msg => sprintf("ActiveTrheadCount: %d", $activethreadcount) + ); + $exit = $self->{perfdata}->threshold_check(value => $stubcount, + threshold => [ { label => 'crit_stubcount', 'exit_litteral' => 'critical' }, + { label => 'warn_stubcount', 'exit_litteral' => 'warning' } ]); + $self->{output}->output_add( + severity => $exit, + short_msg => sprintf("StubCount: %d", $stubcount) + ); + $exit = $self->{perfdata}->threshold_check(value => $proxycount, + threshold => [ { label => 'crit_proxycount', 'exit_litteral' => 'critical' }, + { label => 'warn_proxycount', 'exit_litteral' => 'warning' } ]); + $self->{output}->output_add( + severity => $exit, + short_msg => sprintf("ProxyCount: %d", $proxycount) + ); + $exit = $self->{perfdata}->threshold_check(value => $clientsessioncount, + threshold => [ { label => 'crit_clientsessioncount', 'exit_litteral' => 'critical' }, + { label => 'warn_clientsessioncount', 'exit_litteral' => 'warning' } ]); + $self->{output}->output_add( + severity => $exit, + short_msg => sprintf("ClientSessionCount: %d", $clientsessioncount) + ); + $exit = $self->{perfdata}->threshold_check(value => $serversessioncount, + threshold => [ { label => 'crit_serversessioncount', 'exit_litteral' => 'critical' }, + { label => 'warn_serversessioncount', 'exit_litteral' => 'warning' } ]); + $self->{output}->output_add( + severity => $exit, + short_msg => sprintf("ServerSessionCount: %d", $serversessioncount) + ); + $exit = $self->{perfdata}->threshold_check(value => $invokecountpermin, + threshold => [ { label => 'crit_invokecountpermin', 'exit_litteral' => 'critical' }, + { label => 'warn_invokecountpermin', 'exit_litteral' => 'warning' } ]); + $self->{output}->output_add( + severity => $exit, + short_msg => sprintf("InvokeCountPerMinute: %d", $invokecountpermin) + ); + $exit = $self->{perfdata}->threshold_check(value => $servicecountpermin, + threshold => [ { label => 'crit_servicecountpermin', 'exit_litteral' => 'critical' }, + { label => 'warn_servicecountpermin', 'exit_litteral' => 'warning' } ]); + $self->{output}->output_add( + severity => $exit, + short_msg => sprintf("ServiceCountPerMinute: %d", $servicecountpermin) + ); + + $self->{output}->perfdata_add( + label => "ActiveTrheadCount", + value => $activethreadcount, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_activethreadcount'), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_activethreadcount'), + ); + $self->{output}->perfdata_add( + label => "StubCount", + value => $stubcount, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_stubcount'), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_stubcount'), + ); + $self->{output}->perfdata_add( + label => "ProxyCount", + value => $proxycount, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_proxycount'), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_proxycount'), + ); + $self->{output}->perfdata_add( + label => "ClientSessionCount", + value => $clientsessioncount, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_clientsessioncount'), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_clientsessioncount'), + ); + $self->{output}->perfdata_add( + label => "ServerSessionCount", + value => $serversessioncount, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_serversessioncount'), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_serversessioncount'), + ); + $self->{output}->perfdata_add( + label => "InvokeCount /min", + value => $invokecountpermin, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_invokecountpermin'), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_invokecountpermin'), + ); + $self->{output}->perfdata_add( + label => "ServiceCount /min", + value => $servicecountpermin, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warn_servicecountpermin'), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'crit_servicecountpermin'), + ); + $self->{output}->perfdata_add( + label => "c[InvokeCount]", + value => $invokecount, + ); + $self->{output}->perfdata_add( + label => "c[ServiceCount]", + value => $servicecount, + ); + + $self->{output}->display(); + $self->{output}->exit(); +} + +1; + +__END__ + +=head1 MODE + +Check EAS instance orm rpc status. + +=over 8 + +=item B<--urlpath> + +Set path to get status page. (Default: '/easportal/tools/nagios/checkrpc.jsp') + +=item B<--warning> + +Warning Threshold (activethreadcount,stubcount,proxycount,clientsessioncount,serversessioncount,invokecountpermin,servicecountpermin). + +=item B<--critical> + +Critical Threshold (activethreadcount,stubcount,proxycount,clientsessioncount,serversessioncount,invokecountpermin,servicecountpermin). + +=back + +=cut diff --git a/apps/kingdee/eas/mode/transaction.pm b/apps/kingdee/eas/mode/transaction.pm index 5c542c813..530c07ba7 100644 --- a/apps/kingdee/eas/mode/transaction.pm +++ b/apps/kingdee/eas/mode/transaction.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/kingdee/eas/plugin.pm b/apps/kingdee/eas/plugin.pm index ce1fe69c4..c9ce847d3 100644 --- a/apps/kingdee/eas/plugin.pm +++ b/apps/kingdee/eas/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/lmsensors/mode/fan.pm b/apps/lmsensors/mode/fan.pm index af9870563..f9fbc6d59 100644 --- a/apps/lmsensors/mode/fan.pm +++ b/apps/lmsensors/mode/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/lmsensors/mode/misc.pm b/apps/lmsensors/mode/misc.pm index 34531d188..9653b254d 100644 --- a/apps/lmsensors/mode/misc.pm +++ b/apps/lmsensors/mode/misc.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/lmsensors/mode/temperature.pm b/apps/lmsensors/mode/temperature.pm index 7ccf3936e..d6a5bd030 100644 --- a/apps/lmsensors/mode/temperature.pm +++ b/apps/lmsensors/mode/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/lmsensors/mode/voltage.pm b/apps/lmsensors/mode/voltage.pm index b400a97db..047df58e5 100644 --- a/apps/lmsensors/mode/voltage.pm +++ b/apps/lmsensors/mode/voltage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/lmsensors/plugin.pm b/apps/lmsensors/plugin.pm index f7c1d150a..9af4e50db 100644 --- a/apps/lmsensors/plugin.pm +++ b/apps/lmsensors/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/lotus/snmp/mode/mailstate.pm b/apps/lotus/snmp/mode/mailstate.pm index 0cd5d7477..b67dc18e6 100644 --- a/apps/lotus/snmp/mode/mailstate.pm +++ b/apps/lotus/snmp/mode/mailstate.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/lotus/snmp/mode/mailtime.pm b/apps/lotus/snmp/mode/mailtime.pm index 087fc5ee5..6161b62ba 100644 --- a/apps/lotus/snmp/mode/mailtime.pm +++ b/apps/lotus/snmp/mode/mailtime.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/lotus/snmp/mode/serveravailability.pm b/apps/lotus/snmp/mode/serveravailability.pm index 1d32cdf53..d7665691a 100644 --- a/apps/lotus/snmp/mode/serveravailability.pm +++ b/apps/lotus/snmp/mode/serveravailability.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/lotus/snmp/mode/servertransactions.pm b/apps/lotus/snmp/mode/servertransactions.pm index 9ffbc78de..04dc00abd 100644 --- a/apps/lotus/snmp/mode/servertransactions.pm +++ b/apps/lotus/snmp/mode/servertransactions.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/lotus/snmp/mode/usersessions.pm b/apps/lotus/snmp/mode/usersessions.pm index f1880e4ba..904bb38cc 100644 --- a/apps/lotus/snmp/mode/usersessions.pm +++ b/apps/lotus/snmp/mode/usersessions.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/lotus/snmp/plugin.pm b/apps/lotus/snmp/plugin.pm index 6ff232c85..215cca846 100644 --- a/apps/lotus/snmp/plugin.pm +++ b/apps/lotus/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/lync/2013/mssql/mode/appsharingqoe.pm b/apps/lync/2013/mssql/mode/appsharingqoe.pm index 16b2c79f4..c1f588c50 100644 --- a/apps/lync/2013/mssql/mode/appsharingqoe.pm +++ b/apps/lync/2013/mssql/mode/appsharingqoe.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/lync/2013/mssql/mode/audioqoe.pm b/apps/lync/2013/mssql/mode/audioqoe.pm index fcef33e3f..b4437bf08 100644 --- a/apps/lync/2013/mssql/mode/audioqoe.pm +++ b/apps/lync/2013/mssql/mode/audioqoe.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/lync/2013/mssql/mode/lyncusers.pm b/apps/lync/2013/mssql/mode/lyncusers.pm index d90ed220b..f935abe25 100644 --- a/apps/lync/2013/mssql/mode/lyncusers.pm +++ b/apps/lync/2013/mssql/mode/lyncusers.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/lync/2013/mssql/mode/poorcalls.pm b/apps/lync/2013/mssql/mode/poorcalls.pm index aca8a260d..9d140432b 100644 --- a/apps/lync/2013/mssql/mode/poorcalls.pm +++ b/apps/lync/2013/mssql/mode/poorcalls.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/lync/2013/mssql/mode/sessionstypes.pm b/apps/lync/2013/mssql/mode/sessionstypes.pm index 2544f9302..d0c98f501 100644 --- a/apps/lync/2013/mssql/mode/sessionstypes.pm +++ b/apps/lync/2013/mssql/mode/sessionstypes.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/nginx/serverstatus/mode/connections.pm b/apps/nginx/serverstatus/mode/connections.pm index f856a10ea..43d968afe 100644 --- a/apps/nginx/serverstatus/mode/connections.pm +++ b/apps/nginx/serverstatus/mode/connections.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/nginx/serverstatus/mode/requests.pm b/apps/nginx/serverstatus/mode/requests.pm index 6c9760562..df902e7cb 100644 --- a/apps/nginx/serverstatus/mode/requests.pm +++ b/apps/nginx/serverstatus/mode/requests.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/nginx/serverstatus/mode/responsetime.pm b/apps/nginx/serverstatus/mode/responsetime.pm index 20294918a..88c410a50 100644 --- a/apps/nginx/serverstatus/mode/responsetime.pm +++ b/apps/nginx/serverstatus/mode/responsetime.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/nginx/serverstatus/plugin.pm b/apps/nginx/serverstatus/plugin.pm index 03983adb6..89e45031b 100644 --- a/apps/nginx/serverstatus/plugin.pm +++ b/apps/nginx/serverstatus/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/nsclient/restapi/mode/query.pm b/apps/nsclient/restapi/mode/query.pm index 97388e281..9fd5c9265 100644 --- a/apps/nsclient/restapi/mode/query.pm +++ b/apps/nsclient/restapi/mode/query.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/nsclient/restapi/plugin.pm b/apps/nsclient/restapi/plugin.pm index 90a770dcc..081c5fa74 100644 --- a/apps/nsclient/restapi/plugin.pm +++ b/apps/nsclient/restapi/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/pacemaker/local/mode/clustat.pm b/apps/pacemaker/local/mode/clustat.pm index 2b092c11d..a3c7158f6 100644 --- a/apps/pacemaker/local/mode/clustat.pm +++ b/apps/pacemaker/local/mode/clustat.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/pacemaker/local/mode/constraints.pm b/apps/pacemaker/local/mode/constraints.pm index 30faa88da..4839bca72 100644 --- a/apps/pacemaker/local/mode/constraints.pm +++ b/apps/pacemaker/local/mode/constraints.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/pacemaker/local/mode/crm.pm b/apps/pacemaker/local/mode/crm.pm index 853e24467..5de5e6fcd 100644 --- a/apps/pacemaker/local/mode/crm.pm +++ b/apps/pacemaker/local/mode/crm.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/pacemaker/local/plugin.pm b/apps/pacemaker/local/plugin.pm index 96f165665..29d515527 100644 --- a/apps/pacemaker/local/plugin.pm +++ b/apps/pacemaker/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/pfsense/snmp/mode/listpfinterfaces.pm b/apps/pfsense/snmp/mode/listpfinterfaces.pm index 3fb844c93..34241aacf 100644 --- a/apps/pfsense/snmp/mode/listpfinterfaces.pm +++ b/apps/pfsense/snmp/mode/listpfinterfaces.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/pfsense/snmp/mode/packetstats.pm b/apps/pfsense/snmp/mode/packetstats.pm index 9fa2b1415..636792e3f 100644 --- a/apps/pfsense/snmp/mode/packetstats.pm +++ b/apps/pfsense/snmp/mode/packetstats.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/pfsense/snmp/mode/pfinterfaces.pm b/apps/pfsense/snmp/mode/pfinterfaces.pm index 28212720f..531f35778 100644 --- a/apps/pfsense/snmp/mode/pfinterfaces.pm +++ b/apps/pfsense/snmp/mode/pfinterfaces.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/pfsense/snmp/mode/runtime.pm b/apps/pfsense/snmp/mode/runtime.pm index 2a765f737..0af9d5fdf 100644 --- a/apps/pfsense/snmp/mode/runtime.pm +++ b/apps/pfsense/snmp/mode/runtime.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/pfsense/snmp/plugin.pm b/apps/pfsense/snmp/plugin.pm index 4781bc702..c734f1e8b 100644 --- a/apps/pfsense/snmp/plugin.pm +++ b/apps/pfsense/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/php/apc/web/mode/filecache.pm b/apps/php/apc/web/mode/filecache.pm index 28053726c..7aa6702bf 100644 --- a/apps/php/apc/web/mode/filecache.pm +++ b/apps/php/apc/web/mode/filecache.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/php/apc/web/mode/memory.pm b/apps/php/apc/web/mode/memory.pm index 326763ac3..8e12d31a5 100644 --- a/apps/php/apc/web/mode/memory.pm +++ b/apps/php/apc/web/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/php/apc/web/plugin.pm b/apps/php/apc/web/plugin.pm index 09d80473e..0ab4553d1 100644 --- a/apps/php/apc/web/plugin.pm +++ b/apps/php/apc/web/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/php/fpm/web/mode/usage.pm b/apps/php/fpm/web/mode/usage.pm index b263e0eed..ec27a49ad 100644 --- a/apps/php/fpm/web/mode/usage.pm +++ b/apps/php/fpm/web/mode/usage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/php/fpm/web/plugin.pm b/apps/php/fpm/web/plugin.pm index a1751aed3..aa289a76e 100644 --- a/apps/php/fpm/web/plugin.pm +++ b/apps/php/fpm/web/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/bgp/4/mode/bgppeerstate.pm b/apps/protocols/bgp/4/mode/bgppeerstate.pm index 9ec1a9bf5..34969648b 100644 --- a/apps/protocols/bgp/4/mode/bgppeerstate.pm +++ b/apps/protocols/bgp/4/mode/bgppeerstate.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/bgp/4/plugin.pm b/apps/protocols/bgp/4/plugin.pm index a90202627..d454e681a 100644 --- a/apps/protocols/bgp/4/plugin.pm +++ b/apps/protocols/bgp/4/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/dhcp/mode/connection.pm b/apps/protocols/dhcp/mode/connection.pm index 9462b746c..e81ac01fe 100644 --- a/apps/protocols/dhcp/mode/connection.pm +++ b/apps/protocols/dhcp/mode/connection.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/dhcp/plugin.pm b/apps/protocols/dhcp/plugin.pm index 6b3a74ba7..7d6ae4e47 100644 --- a/apps/protocols/dhcp/plugin.pm +++ b/apps/protocols/dhcp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/dns/lib/dns.pm b/apps/protocols/dns/lib/dns.pm index b8c0dbd57..7cefef77d 100644 --- a/apps/protocols/dns/lib/dns.pm +++ b/apps/protocols/dns/lib/dns.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/dns/mode/request.pm b/apps/protocols/dns/mode/request.pm index c54127e72..09b927c0f 100644 --- a/apps/protocols/dns/mode/request.pm +++ b/apps/protocols/dns/mode/request.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/dns/plugin.pm b/apps/protocols/dns/plugin.pm index f70cbdfe7..97521786a 100644 --- a/apps/protocols/dns/plugin.pm +++ b/apps/protocols/dns/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/ftp/lib/ftp.pm b/apps/protocols/ftp/lib/ftp.pm index 39cd78fa7..16019d231 100644 --- a/apps/protocols/ftp/lib/ftp.pm +++ b/apps/protocols/ftp/lib/ftp.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/ftp/mode/commands.pm b/apps/protocols/ftp/mode/commands.pm index 99849fd88..8f8d372b8 100644 --- a/apps/protocols/ftp/mode/commands.pm +++ b/apps/protocols/ftp/mode/commands.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/ftp/mode/date.pm b/apps/protocols/ftp/mode/date.pm index 28cefad1c..c6f0adf84 100644 --- a/apps/protocols/ftp/mode/date.pm +++ b/apps/protocols/ftp/mode/date.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/ftp/mode/filescount.pm b/apps/protocols/ftp/mode/filescount.pm index 08452ddbd..6f04b1116 100644 --- a/apps/protocols/ftp/mode/filescount.pm +++ b/apps/protocols/ftp/mode/filescount.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/ftp/mode/login.pm b/apps/protocols/ftp/mode/login.pm index 7c95d68a6..939969f47 100644 --- a/apps/protocols/ftp/mode/login.pm +++ b/apps/protocols/ftp/mode/login.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/ftp/plugin.pm b/apps/protocols/ftp/plugin.pm index 66ab240e3..8677a89e4 100644 --- a/apps/protocols/ftp/plugin.pm +++ b/apps/protocols/ftp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/http/mode/expectedcontent.pm b/apps/protocols/http/mode/expectedcontent.pm index 610eb8449..3036b97ed 100644 --- a/apps/protocols/http/mode/expectedcontent.pm +++ b/apps/protocols/http/mode/expectedcontent.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/http/mode/jsoncontent.pm b/apps/protocols/http/mode/jsoncontent.pm index 88f70d817..7701c8d54 100644 --- a/apps/protocols/http/mode/jsoncontent.pm +++ b/apps/protocols/http/mode/jsoncontent.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/http/mode/response.pm b/apps/protocols/http/mode/response.pm index fb0f8fe77..e5df45612 100644 --- a/apps/protocols/http/mode/response.pm +++ b/apps/protocols/http/mode/response.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/http/mode/soapcontent.pm b/apps/protocols/http/mode/soapcontent.pm index b10cfb79a..0ac5a01ce 100644 --- a/apps/protocols/http/mode/soapcontent.pm +++ b/apps/protocols/http/mode/soapcontent.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/http/plugin.pm b/apps/protocols/http/plugin.pm index 029b2f1f3..8b65d4f0b 100644 --- a/apps/protocols/http/plugin.pm +++ b/apps/protocols/http/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/imap/lib/imap.pm b/apps/protocols/imap/lib/imap.pm index 21e71c4fa..e222277ea 100644 --- a/apps/protocols/imap/lib/imap.pm +++ b/apps/protocols/imap/lib/imap.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/imap/mode/login.pm b/apps/protocols/imap/mode/login.pm index 0bdd58d20..6f636bd02 100644 --- a/apps/protocols/imap/mode/login.pm +++ b/apps/protocols/imap/mode/login.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/imap/mode/searchmessage.pm b/apps/protocols/imap/mode/searchmessage.pm index d8ba82829..bd529f59b 100644 --- a/apps/protocols/imap/mode/searchmessage.pm +++ b/apps/protocols/imap/mode/searchmessage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/imap/plugin.pm b/apps/protocols/imap/plugin.pm index 4f4455272..9a5595eaf 100644 --- a/apps/protocols/imap/plugin.pm +++ b/apps/protocols/imap/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/jmx/mode/listattributes.pm b/apps/protocols/jmx/mode/listattributes.pm index 505505b38..93bab8527 100644 --- a/apps/protocols/jmx/mode/listattributes.pm +++ b/apps/protocols/jmx/mode/listattributes.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/jmx/mode/numericvalue.pm b/apps/protocols/jmx/mode/numericvalue.pm index 9e48b2c8f..aa127bc19 100644 --- a/apps/protocols/jmx/mode/numericvalue.pm +++ b/apps/protocols/jmx/mode/numericvalue.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/jmx/plugin.pm b/apps/protocols/jmx/plugin.pm index fbe75965f..b376978b4 100644 --- a/apps/protocols/jmx/plugin.pm +++ b/apps/protocols/jmx/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/ldap/lib/ldap.pm b/apps/protocols/ldap/lib/ldap.pm index aed258b9f..a77c21ec9 100644 --- a/apps/protocols/ldap/lib/ldap.pm +++ b/apps/protocols/ldap/lib/ldap.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/ldap/mode/login.pm b/apps/protocols/ldap/mode/login.pm index 7f52d16e9..2b4319424 100644 --- a/apps/protocols/ldap/mode/login.pm +++ b/apps/protocols/ldap/mode/login.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/ldap/mode/search.pm b/apps/protocols/ldap/mode/search.pm index cae8ec797..297e0e5c4 100644 --- a/apps/protocols/ldap/mode/search.pm +++ b/apps/protocols/ldap/mode/search.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/ldap/plugin.pm b/apps/protocols/ldap/plugin.pm index 691b65bb1..582ddba22 100644 --- a/apps/protocols/ldap/plugin.pm +++ b/apps/protocols/ldap/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/modbus/mode/numericvalue.pm b/apps/protocols/modbus/mode/numericvalue.pm index db895021f..c6b78ae32 100644 --- a/apps/protocols/modbus/mode/numericvalue.pm +++ b/apps/protocols/modbus/mode/numericvalue.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/modbus/plugin.pm b/apps/protocols/modbus/plugin.pm index cfd0c49ee..5c0690ddf 100644 --- a/apps/protocols/modbus/plugin.pm +++ b/apps/protocols/modbus/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/ntp/mode/offset.pm b/apps/protocols/ntp/mode/offset.pm index 6c72a0f01..5bdc34379 100644 --- a/apps/protocols/ntp/mode/offset.pm +++ b/apps/protocols/ntp/mode/offset.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/ntp/mode/responsetime.pm b/apps/protocols/ntp/mode/responsetime.pm index a604908c7..37b10fef1 100644 --- a/apps/protocols/ntp/mode/responsetime.pm +++ b/apps/protocols/ntp/mode/responsetime.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/ntp/plugin.pm b/apps/protocols/ntp/plugin.pm index c8011115e..cd2ba1811 100644 --- a/apps/protocols/ntp/plugin.pm +++ b/apps/protocols/ntp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/ospf/snmp/mode/neighbor.pm b/apps/protocols/ospf/snmp/mode/neighbor.pm index d7356826e..ce9745896 100644 --- a/apps/protocols/ospf/snmp/mode/neighbor.pm +++ b/apps/protocols/ospf/snmp/mode/neighbor.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/ospf/snmp/plugin.pm b/apps/protocols/ospf/snmp/plugin.pm index d244a3996..af7c5c813 100644 --- a/apps/protocols/ospf/snmp/plugin.pm +++ b/apps/protocols/ospf/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/radius/mode/login.pm b/apps/protocols/radius/mode/login.pm index 7662d55e5..366cd4706 100644 --- a/apps/protocols/radius/mode/login.pm +++ b/apps/protocols/radius/mode/login.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/radius/plugin.pm b/apps/protocols/radius/plugin.pm index 2b7ede3f1..f56cfeda0 100644 --- a/apps/protocols/radius/plugin.pm +++ b/apps/protocols/radius/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/smtp/lib/smtp.pm b/apps/protocols/smtp/lib/smtp.pm index 0b0c2905f..c72a1dfd8 100644 --- a/apps/protocols/smtp/lib/smtp.pm +++ b/apps/protocols/smtp/lib/smtp.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/smtp/mode/login.pm b/apps/protocols/smtp/mode/login.pm index 1266ac659..6e24182e8 100644 --- a/apps/protocols/smtp/mode/login.pm +++ b/apps/protocols/smtp/mode/login.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/smtp/mode/message.pm b/apps/protocols/smtp/mode/message.pm index 3994ed68c..22fd9dd44 100644 --- a/apps/protocols/smtp/mode/message.pm +++ b/apps/protocols/smtp/mode/message.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/smtp/plugin.pm b/apps/protocols/smtp/plugin.pm index e5d267752..c7f1a8874 100644 --- a/apps/protocols/smtp/plugin.pm +++ b/apps/protocols/smtp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/snmp/plugin.pm b/apps/protocols/snmp/plugin.pm index 1e6460ab3..7f1f27098 100644 --- a/apps/protocols/snmp/plugin.pm +++ b/apps/protocols/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/ssh/mode/login.pm b/apps/protocols/ssh/mode/login.pm index 16d775619..d1f586237 100644 --- a/apps/protocols/ssh/mode/login.pm +++ b/apps/protocols/ssh/mode/login.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/ssh/plugin.pm b/apps/protocols/ssh/plugin.pm index 1e299d451..e81ab40cf 100644 --- a/apps/protocols/ssh/plugin.pm +++ b/apps/protocols/ssh/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/tcp/mode/responsetime.pm b/apps/protocols/tcp/mode/responsetime.pm index 47308c807..13ba9a31d 100644 --- a/apps/protocols/tcp/mode/responsetime.pm +++ b/apps/protocols/tcp/mode/responsetime.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/tcp/plugin.pm b/apps/protocols/tcp/plugin.pm index 775f55140..2f1549218 100644 --- a/apps/protocols/tcp/plugin.pm +++ b/apps/protocols/tcp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/telnet/mode/scenario.pm b/apps/protocols/telnet/mode/scenario.pm index 388b32cc1..dc3597e49 100644 --- a/apps/protocols/telnet/mode/scenario.pm +++ b/apps/protocols/telnet/mode/scenario.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/telnet/plugin.pm b/apps/protocols/telnet/plugin.pm index 271294b38..5b442e64f 100644 --- a/apps/protocols/telnet/plugin.pm +++ b/apps/protocols/telnet/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/udp/mode/connection.pm b/apps/protocols/udp/mode/connection.pm index 955bec3da..61d87fc2c 100644 --- a/apps/protocols/udp/mode/connection.pm +++ b/apps/protocols/udp/mode/connection.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/udp/plugin.pm b/apps/protocols/udp/plugin.pm index fe0dce1ce..5b422f77c 100644 --- a/apps/protocols/udp/plugin.pm +++ b/apps/protocols/udp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/x509/mode/validity.pm b/apps/protocols/x509/mode/validity.pm index d77dbb1b8..cc12b4078 100644 --- a/apps/protocols/x509/mode/validity.pm +++ b/apps/protocols/x509/mode/validity.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/protocols/x509/plugin.pm b/apps/protocols/x509/plugin.pm index c1e9af360..b4953609d 100644 --- a/apps/protocols/x509/plugin.pm +++ b/apps/protocols/x509/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/redis/cli/custom/rediscli.pm b/apps/redis/cli/custom/rediscli.pm index d3226c96c..d166fe4c7 100644 --- a/apps/redis/cli/custom/rediscli.pm +++ b/apps/redis/cli/custom/rediscli.pm @@ -1,158 +1,158 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package apps::redis::cli::custom::rediscli; - -use strict; -use warnings; -use Redis; - -sub new { - my ($class, %options) = @_; - my $self = {}; - bless $self, $class; - - if (!defined($options{output})) { - print "Class Custom: Need to specify 'output' argument.\n"; - exit 3; - } - - if (!defined($options{options})) { - $options{output}->add_option_msg(short_msg => "Class Custom: Need to specify 'options' argument."); - $options{output}->option_exit(); - } - - if (!defined($options{noptions})) { - $options{options}->add_options(arguments => - { - "hostname:s" => { name => 'hostname' }, - "port:s" => { name => 'port' }, - "password:s" => { name => 'password' }, - }); - } - $options{options}->add_help(package => __PACKAGE__, sections => 'REDIS CLI OPTIONS', once => 1); - - $self->{output} = $options{output}; - $self->{mode} = $options{mode}; - - return $self; -} - -sub set_options { - my ($self, %options) = @_; - - $self->{option_results} = $options{option_results}; -} - -sub set_defaults { - my ($self, %options) = @_; - - foreach (keys %{$options{default}}) { - if ($_ eq $self->{mode}) { - for (my $i = 0; $i < scalar(@{$options{default}->{$_}}); $i++) { - foreach my $opt (keys %{$options{default}->{$_}[$i]}) { - if (!defined($self->{option_results}->{$opt}[$i])) { - $self->{option_results}->{$opt}[$i] = $options{default}->{$_}[$i]->{$opt}; - } - } - } - } - } -} - -sub check_options { - my ($self, %options) = @_; - - $self->{hostname} = $self->{option_results}->{hostname}; - $self->{port} = $self->{option_results}->{port}; - $self->{password} = $self->{option_results}->{password}; - - if (!defined($self->{hostname})) { - $self->{output}->add_option_msg(short_msg => "Need to specify hostname argument."); - $self->{output}->option_exit(); - } - if (!defined($self->{port})) { - $self->{output}->add_option_msg(short_msg => "Need to specify port argument."); - $self->{output}->option_exit(); - } - - return 0; -} - -sub get_connection_info { - my ($self, %options) = @_; - - return $self->{hostname} . ":" . $self->{port}; -} - -sub get_info { - my ($self, %options) = @_; - - $self->{redis} = Redis->new(server => $self->{hostname} . ":" . $self->{port}); - if (defined($self->{password})) { - $self->{redis}->auth($self->{password}); - } - - my $response = $self->{redis}->info; - my $items; - foreach my $attributes (keys %{$response}) { - $items->{$attributes} = $response->{$attributes}; - } - - $self->{redis}->quit(); - - return $items; -} - -1; - -__END__ - -=head1 NAME - -REDIS CLI - -=head1 SYNOPSIS - -Redis Cli custom mode - -=head1 REDIS CLI OPTIONS - -=over 8 - -=item B<--hostname> - -Redis hostname. - -=item B<--port> - -Redis port. - -=item B<--password> - -Redis password - -=back - -=head1 DESCRIPTION - -B. - -=cut +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::cli::custom::rediscli; + +use strict; +use warnings; +use Redis; + +sub new { + my ($class, %options) = @_; + my $self = {}; + bless $self, $class; + + if (!defined($options{output})) { + print "Class Custom: Need to specify 'output' argument.\n"; + exit 3; + } + + if (!defined($options{options})) { + $options{output}->add_option_msg(short_msg => "Class Custom: Need to specify 'options' argument."); + $options{output}->option_exit(); + } + + if (!defined($options{noptions})) { + $options{options}->add_options(arguments => + { + "hostname:s" => { name => 'hostname' }, + "port:s" => { name => 'port' }, + "password:s" => { name => 'password' }, + }); + } + $options{options}->add_help(package => __PACKAGE__, sections => 'REDIS CLI OPTIONS', once => 1); + + $self->{output} = $options{output}; + $self->{mode} = $options{mode}; + + return $self; +} + +sub set_options { + my ($self, %options) = @_; + + $self->{option_results} = $options{option_results}; +} + +sub set_defaults { + my ($self, %options) = @_; + + foreach (keys %{$options{default}}) { + if ($_ eq $self->{mode}) { + for (my $i = 0; $i < scalar(@{$options{default}->{$_}}); $i++) { + foreach my $opt (keys %{$options{default}->{$_}[$i]}) { + if (!defined($self->{option_results}->{$opt}[$i])) { + $self->{option_results}->{$opt}[$i] = $options{default}->{$_}[$i]->{$opt}; + } + } + } + } + } +} + +sub check_options { + my ($self, %options) = @_; + + $self->{hostname} = $self->{option_results}->{hostname}; + $self->{port} = $self->{option_results}->{port}; + $self->{password} = $self->{option_results}->{password}; + + if (!defined($self->{hostname})) { + $self->{output}->add_option_msg(short_msg => "Need to specify hostname argument."); + $self->{output}->option_exit(); + } + if (!defined($self->{port})) { + $self->{output}->add_option_msg(short_msg => "Need to specify port argument."); + $self->{output}->option_exit(); + } + + return 0; +} + +sub get_connection_info { + my ($self, %options) = @_; + + return $self->{hostname} . ":" . $self->{port}; +} + +sub get_info { + my ($self, %options) = @_; + + $self->{redis} = Redis->new(server => $self->{hostname} . ":" . $self->{port}); + if (defined($self->{password})) { + $self->{redis}->auth($self->{password}); + } + + my $response = $self->{redis}->info; + my $items; + foreach my $attributes (keys %{$response}) { + $items->{$attributes} = $response->{$attributes}; + } + + $self->{redis}->quit(); + + return $items; +} + +1; + +__END__ + +=head1 NAME + +REDIS CLI + +=head1 SYNOPSIS + +Redis Cli custom mode + +=head1 REDIS CLI OPTIONS + +=over 8 + +=item B<--hostname> + +Redis hostname. + +=item B<--port> + +Redis port. + +=item B<--password> + +Redis password + +=back + +=head1 DESCRIPTION + +B. + +=cut diff --git a/apps/redis/cli/mode/clients.pm b/apps/redis/cli/mode/clients.pm index 21a4cd312..a06a83d7a 100644 --- a/apps/redis/cli/mode/clients.pm +++ b/apps/redis/cli/mode/clients.pm @@ -1,141 +1,141 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package apps::redis::cli::mode::clients; - -use base qw(centreon::plugins::templates::counter); - -use strict; -use warnings; - -sub set_counters { - my ($self, %options) = @_; - - $self->{maps_counters_type} = [ - { name => 'global', type => 0 }, - ]; - - $self->{maps_counters}->{global} = [ - { label => 'connected-clients', set => { - key_values => [ { name => 'connected_clients' } ], - output_template => 'Connected clients: %s', - perfdatas => [ - { label => 'connected_clients', value => 'connected_clients_absolute', template => '%s', min => 0 }, - ], - }, - }, - { label => 'blocked-clients', set => { - key_values => [ { name => 'blocked_clients' } ], - output_template => 'Blocked clients: %s', - perfdatas => [ - { label => 'blocked_clients', value => 'blocked_clients_absolute', template => '%s', min => 0 }, - ], - }, - }, - { label => 'client-longest-output-list', set => { - key_values => [ { name => 'client_longest_output_list' } ], - output_template => 'Client longest output list: %s', - perfdatas => [ - { label => 'client_longest_output_list', value => 'client_longest_output_list_absolute', template => '%s', min => 0 }, - ], - }, - }, - { label => 'client-biggest-input-buf', set => { - key_values => [ { name => 'client_biggest_input_buf' } ], - output_template => 'Client biggest input buffer: %s', - perfdatas => [ - { label => 'client_biggest_input_buf', value => 'client_biggest_input_buf_absolute', template => '%s', min => 0 }, - ], - }, - } - ]; -} - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options); - bless $self, $class; - - $self->{version} = '1.0'; - - $options{options}->add_options(arguments => - { - }); - - return $self; -} - -sub manage_selection { - my ($self, %options) = @_; - - my $results = $options{custom}->get_info(); - $self->{global} = { - connected_clients => $results->{connected_clients}, - blocked_clients => $results->{blocked_clients}, - client_longest_output_list => $results->{client_longest_output_list}, - client_biggest_input_buf => $results->{client_biggest_input_buf}, - }; -} - -1; - -__END__ - -=head1 MODE - -Check number of connected and blocked clients - -=over 8 - -=item B<--warning-connected-clients> - -Warning threshold for number of connected clients - -=item B<--critical-connected-clients> - -Critical threshold for number of connected clients - -=item B<--warning-blocked-clients> - -Warning threshold for number of blocked clients - -=item B<--critical-blocked-clients> - -Critical threshold for number of blocked clients - -=item B<--warning-client-longest-output-list> - -Warning threshold for longest output list among current client connections - -=item B<--critical-client-longest-output-list> - -Critical threshold for longest output list among current client connections - -=item B<--warning-client-biggest-input-buf> - -Warning threshold for biggest input buffer among current client connections - -=item B<--critical-client-biggest-input-buf> - -Critical threshold for biggest input buffer among current client connections - -=back - -=cut +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::cli::mode::clients; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0 }, + ]; + + $self->{maps_counters}->{global} = [ + { label => 'connected-clients', set => { + key_values => [ { name => 'connected_clients' } ], + output_template => 'Connected clients: %s', + perfdatas => [ + { label => 'connected_clients', value => 'connected_clients_absolute', template => '%s', min => 0 }, + ], + }, + }, + { label => 'blocked-clients', set => { + key_values => [ { name => 'blocked_clients' } ], + output_template => 'Blocked clients: %s', + perfdatas => [ + { label => 'blocked_clients', value => 'blocked_clients_absolute', template => '%s', min => 0 }, + ], + }, + }, + { label => 'client-longest-output-list', set => { + key_values => [ { name => 'client_longest_output_list' } ], + output_template => 'Client longest output list: %s', + perfdatas => [ + { label => 'client_longest_output_list', value => 'client_longest_output_list_absolute', template => '%s', min => 0 }, + ], + }, + }, + { label => 'client-biggest-input-buf', set => { + key_values => [ { name => 'client_biggest_input_buf' } ], + output_template => 'Client biggest input buffer: %s', + perfdatas => [ + { label => 'client_biggest_input_buf', value => 'client_biggest_input_buf_absolute', template => '%s', min => 0 }, + ], + }, + } + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + + $options{options}->add_options(arguments => + { + }); + + return $self; +} + +sub manage_selection { + my ($self, %options) = @_; + + my $results = $options{custom}->get_info(); + $self->{global} = { + connected_clients => $results->{connected_clients}, + blocked_clients => $results->{blocked_clients}, + client_longest_output_list => $results->{client_longest_output_list}, + client_biggest_input_buf => $results->{client_biggest_input_buf}, + }; +} + +1; + +__END__ + +=head1 MODE + +Check number of connected and blocked clients + +=over 8 + +=item B<--warning-connected-clients> + +Warning threshold for number of connected clients + +=item B<--critical-connected-clients> + +Critical threshold for number of connected clients + +=item B<--warning-blocked-clients> + +Warning threshold for number of blocked clients + +=item B<--critical-blocked-clients> + +Critical threshold for number of blocked clients + +=item B<--warning-client-longest-output-list> + +Warning threshold for longest output list among current client connections + +=item B<--critical-client-longest-output-list> + +Critical threshold for longest output list among current client connections + +=item B<--warning-client-biggest-input-buf> + +Warning threshold for biggest input buffer among current client connections + +=item B<--critical-client-biggest-input-buf> + +Critical threshold for biggest input buffer among current client connections + +=back + +=cut diff --git a/apps/redis/cli/mode/commands.pm b/apps/redis/cli/mode/commands.pm index 0ceeab764..b250b0e4a 100644 --- a/apps/redis/cli/mode/commands.pm +++ b/apps/redis/cli/mode/commands.pm @@ -1,117 +1,117 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package apps::redis::cli::mode::commands; - -use base qw(centreon::plugins::templates::counter); - -use strict; -use warnings; -use Digest::MD5 qw(md5_hex); - -sub set_counters { - my ($self, %options) = @_; - - $self->{maps_counters_type} = [ - { name => 'global', type => 0, cb_prefix_output => 'prefix_output' }, - ]; - - $self->{maps_counters}->{global} = [ - { label => 'processed-commands', set => { - key_values => [ { name => 'total_commands_processed', diff => 1 } ], - output_template => 'Processed: %s', - perfdatas => [ - { label => 'processed_commands', value => 'total_commands_processed_absolute', template => '%s', min => 0 }, - ], - }, - }, - { label => 'ops-per-sec', set => { - key_values => [ { name => 'instantaneous_ops_per_sec' } ], - output_template => 'Processed per sec: %s', - perfdatas => [ - { label => 'ops_per_sec', value => 'instantaneous_ops_per_sec_absolute', template => '%s', min => 0, unit => 'ops/s' }, - ], - }, - }, - ]; -} - -sub prefix_output { - my ($self, %options) = @_; - - return "Number of commands: "; -} - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 1); - bless $self, $class; - - $self->{version} = '1.0'; - - $options{options}->add_options(arguments => - { - }); - - return $self; -} - -sub manage_selection { - my ($self, %options) = @_; - - $self->{cache_name} = "redis_" . $self->{mode} . '_' . $options{custom}->get_connection_info() . '_' . - (defined($self->{option_results}->{filter_counters}) ? md5_hex($self->{option_results}->{filter_counters}) : md5_hex('all')); - - my $results = $options{custom}->get_info(); - $self->{global} = { - total_commands_processed => $results->{total_commands_processed}, - instantaneous_ops_per_sec => $results->{instantaneous_ops_per_sec}, - }; -} - -1; - -__END__ - -=head1 MODE - -Check commands number - -=over 8 - -=item B<--warning-processed-commands> - -Warning threshold for number of commands processed by the server - -=item B<--critical-processed-commands> - -Critical threshold for number of commands processed by the server - -=item B<--warning-ops-per-sec> - -Warning threshold for number of commands processed per second - -=item B<--critical-ops-per-sec> - -Critical threshold for number of commands processed per second - -=back - -=cut +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::cli::mode::commands; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use Digest::MD5 qw(md5_hex); + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0, cb_prefix_output => 'prefix_output' }, + ]; + + $self->{maps_counters}->{global} = [ + { label => 'processed-commands', set => { + key_values => [ { name => 'total_commands_processed', diff => 1 } ], + output_template => 'Processed: %s', + perfdatas => [ + { label => 'processed_commands', value => 'total_commands_processed_absolute', template => '%s', min => 0 }, + ], + }, + }, + { label => 'ops-per-sec', set => { + key_values => [ { name => 'instantaneous_ops_per_sec' } ], + output_template => 'Processed per sec: %s', + perfdatas => [ + { label => 'ops_per_sec', value => 'instantaneous_ops_per_sec_absolute', template => '%s', min => 0, unit => 'ops/s' }, + ], + }, + }, + ]; +} + +sub prefix_output { + my ($self, %options) = @_; + + return "Number of commands: "; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 1); + bless $self, $class; + + $self->{version} = '1.0'; + + $options{options}->add_options(arguments => + { + }); + + return $self; +} + +sub manage_selection { + my ($self, %options) = @_; + + $self->{cache_name} = "redis_" . $self->{mode} . '_' . $options{custom}->get_connection_info() . '_' . + (defined($self->{option_results}->{filter_counters}) ? md5_hex($self->{option_results}->{filter_counters}) : md5_hex('all')); + + my $results = $options{custom}->get_info(); + $self->{global} = { + total_commands_processed => $results->{total_commands_processed}, + instantaneous_ops_per_sec => $results->{instantaneous_ops_per_sec}, + }; +} + +1; + +__END__ + +=head1 MODE + +Check commands number + +=over 8 + +=item B<--warning-processed-commands> + +Warning threshold for number of commands processed by the server + +=item B<--critical-processed-commands> + +Critical threshold for number of commands processed by the server + +=item B<--warning-ops-per-sec> + +Warning threshold for number of commands processed per second + +=item B<--critical-ops-per-sec> + +Critical threshold for number of commands processed per second + +=back + +=cut diff --git a/apps/redis/cli/mode/connections.pm b/apps/redis/cli/mode/connections.pm index 40032ba64..33736ac55 100644 --- a/apps/redis/cli/mode/connections.pm +++ b/apps/redis/cli/mode/connections.pm @@ -1,167 +1,167 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package apps::redis::cli::mode::connections; - -use base qw(centreon::plugins::templates::counter); - -use strict; -use warnings; -use Digest::MD5 qw(md5_hex); - -sub set_counters { - my ($self, %options) = @_; - - $self->{maps_counters_type} = [ - { name => 'connections', type => 0, cb_prefix_output => 'prefix_connections_output' }, - { name => 'traffic', type => 0, cb_prefix_output => 'prefix_traffic_output' }, - ]; - - $self->{maps_counters}->{connections} = [ - { label => 'received-connections', set => { - key_values => [ { name => 'total_connections_received', diff => 1 } ], - output_template => 'Received: %s', - perfdatas => [ - { label => 'received_connections', value => 'total_connections_received_absolute', template => '%s', min => 0 }, - ], - }, - }, - { label => 'rejected-connections', set => { - key_values => [ { name => 'rejected_connections', diff => 1 } ], - output_template => 'Rejected: %s', - perfdatas => [ - { label => 'rejected_connections', value => 'rejected_connections_absolute', template => '%s', min => 0 }, - ], - }, - }, - ]; - - $self->{maps_counters}->{traffic} = [ - { label => 'traffic-in', set => { - key_values => [ { name => 'total_net_input_bytes', diff => 1 } ], - output_template => 'Traffic In: %s %s/s', - per_second => 1, output_change_bytes => 2, - perfdatas => [ - { label => 'traffic_in', value => 'total_net_input_bytes_per_second', template => '%d', min => 0, unit => 'b/s' }, - ], - }, - }, - { label => 'traffic-out', set => { - key_values => [ { name => 'total_net_output_bytes', diff => 1 } ], - output_template => 'Traffic Out: %s %s/s', - per_second => 1, output_change_bytes => 2, - perfdatas => [ - { label => 'traffic_out', value => 'total_net_output_bytes_per_second', template => '%d', min => 0, unit => 'b/s' }, - ], - }, - }, - ]; -} - -sub prefix_connections_output { - my ($self, %options) = @_; - - return "Number of connections: "; -} - -sub prefix_traffic_output { - my ($self, %options) = @_; - - return "Network usage: "; -} - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 1); - bless $self, $class; - - $self->{version} = '1.0'; - - $options{options}->add_options(arguments => - { - }); - - return $self; -} - -sub manage_selection { - my ($self, %options) = @_; - - $self->{cache_name} = "redis_" . $self->{mode} . '_' . $options{custom}->get_connection_info() . '_' . - (defined($self->{option_results}->{filter_counters}) ? md5_hex($self->{option_results}->{filter_counters}) : md5_hex('all')); - - my $results = $options{custom}->get_info(); - - $self->{connections} = { - total_connections_received => $results->{total_connections_received}, - rejected_connections => $results->{rejected_connections}, - }; - - $self->{traffic} = { - total_net_input_bytes => $results->{total_net_input_bytes} * 8, - total_net_output_bytes => $results->{total_net_output_bytes} * 8, - }; -} - -1; - -__END__ - -=head1 MODE - -Check connections number and network usage - -=over 8 - -=item B<--warning-received-connections> - -Warning threshold for received connections - -=item B<--critical-received-connections> - -Critical threshold for received connections - -=item B<--warning-rejected-connections> - -Warning threshold for rejected connections - -=item B<--critical-rejected-connections> - -Critical threshold for rejected connections - -=item B<--warning-traffic-in> - -Warning threshold for inbound traffic (b/s) - -=item B<--critical-traffic-in> - -Critical threshold for inbound traffic (b/s) - -=item B<--warning-traffic-out> - -Warning threshold for outbound traffic (b/s) - -=item B<--critical-traffic-out> - -Critical thresholdfor outbound traffic (b/s) - -=back - -=cut +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::cli::mode::connections; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use Digest::MD5 qw(md5_hex); + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'connections', type => 0, cb_prefix_output => 'prefix_connections_output' }, + { name => 'traffic', type => 0, cb_prefix_output => 'prefix_traffic_output' }, + ]; + + $self->{maps_counters}->{connections} = [ + { label => 'received-connections', set => { + key_values => [ { name => 'total_connections_received', diff => 1 } ], + output_template => 'Received: %s', + perfdatas => [ + { label => 'received_connections', value => 'total_connections_received_absolute', template => '%s', min => 0 }, + ], + }, + }, + { label => 'rejected-connections', set => { + key_values => [ { name => 'rejected_connections', diff => 1 } ], + output_template => 'Rejected: %s', + perfdatas => [ + { label => 'rejected_connections', value => 'rejected_connections_absolute', template => '%s', min => 0 }, + ], + }, + }, + ]; + + $self->{maps_counters}->{traffic} = [ + { label => 'traffic-in', set => { + key_values => [ { name => 'total_net_input_bytes', diff => 1 } ], + output_template => 'Traffic In: %s %s/s', + per_second => 1, output_change_bytes => 2, + perfdatas => [ + { label => 'traffic_in', value => 'total_net_input_bytes_per_second', template => '%d', min => 0, unit => 'b/s' }, + ], + }, + }, + { label => 'traffic-out', set => { + key_values => [ { name => 'total_net_output_bytes', diff => 1 } ], + output_template => 'Traffic Out: %s %s/s', + per_second => 1, output_change_bytes => 2, + perfdatas => [ + { label => 'traffic_out', value => 'total_net_output_bytes_per_second', template => '%d', min => 0, unit => 'b/s' }, + ], + }, + }, + ]; +} + +sub prefix_connections_output { + my ($self, %options) = @_; + + return "Number of connections: "; +} + +sub prefix_traffic_output { + my ($self, %options) = @_; + + return "Network usage: "; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 1); + bless $self, $class; + + $self->{version} = '1.0'; + + $options{options}->add_options(arguments => + { + }); + + return $self; +} + +sub manage_selection { + my ($self, %options) = @_; + + $self->{cache_name} = "redis_" . $self->{mode} . '_' . $options{custom}->get_connection_info() . '_' . + (defined($self->{option_results}->{filter_counters}) ? md5_hex($self->{option_results}->{filter_counters}) : md5_hex('all')); + + my $results = $options{custom}->get_info(); + + $self->{connections} = { + total_connections_received => $results->{total_connections_received}, + rejected_connections => $results->{rejected_connections}, + }; + + $self->{traffic} = { + total_net_input_bytes => $results->{total_net_input_bytes} * 8, + total_net_output_bytes => $results->{total_net_output_bytes} * 8, + }; +} + +1; + +__END__ + +=head1 MODE + +Check connections number and network usage + +=over 8 + +=item B<--warning-received-connections> + +Warning threshold for received connections + +=item B<--critical-received-connections> + +Critical threshold for received connections + +=item B<--warning-rejected-connections> + +Warning threshold for rejected connections + +=item B<--critical-rejected-connections> + +Critical threshold for rejected connections + +=item B<--warning-traffic-in> + +Warning threshold for inbound traffic (b/s) + +=item B<--critical-traffic-in> + +Critical threshold for inbound traffic (b/s) + +=item B<--warning-traffic-out> + +Warning threshold for outbound traffic (b/s) + +=item B<--critical-traffic-out> + +Critical thresholdfor outbound traffic (b/s) + +=back + +=cut diff --git a/apps/redis/cli/mode/cpu.pm b/apps/redis/cli/mode/cpu.pm index 8317d9527..dfa53e75a 100644 --- a/apps/redis/cli/mode/cpu.pm +++ b/apps/redis/cli/mode/cpu.pm @@ -1,169 +1,169 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package apps::redis::cli::mode::cpu; - -use base qw(centreon::plugins::templates::counter); - -use strict; -use warnings; -use Digest::MD5 qw(md5_hex); - -sub set_counters { - my ($self, %options) = @_; - - $self->{maps_counters_type} = [ - { name => 'global', type => 0, cb_prefix_output => 'prefix_output' } - ]; - - $self->{maps_counters}->{global} = [ - { label => 'sys', set => { - key_values => [ { name => 'used_cpu_sys', diff => 1 } ], - closure_custom_calc => $self->can('custom_usage_calc'), closure_custom_calc_extra_options => { label_ref => 'used_cpu_sys' }, - output_template => 'System: %.2f %%', output_use => 'used_delta', threshold_use => 'used_delta', - per_second => 1, - perfdatas => [ - { label => 'sys', value => 'used_delta', template => '%.2f', min => 0, max => 100, unit => '%' }, - ], - } - }, - { label => 'user', set => { - key_values => [ { name => 'used_cpu_user', diff => 1 } ], - closure_custom_calc => $self->can('custom_usage_calc'), closure_custom_calc_extra_options => { label_ref => 'used_cpu_user' }, - output_template => 'User: %.2f %%', output_use => 'used_delta', threshold_use => 'used_delta', - per_second => 1, - perfdatas => [ - { label => 'user', value => 'used_delta', template => '%.2f', min => 0, max => 100, unit => '%' }, - ], - } - }, - { label => 'sys-children', set => { - key_values => [ { name => 'used_cpu_sys_children', diff => 1 } ], - closure_custom_calc => $self->can('custom_usage_calc'), closure_custom_calc_extra_options => { label_ref => 'used_cpu_sys_children' }, - output_template => 'System children: %.2f %%', output_use => 'used_delta', threshold_use => 'used_delta', - per_second => 1, - perfdatas => [ - { label => 'sys_children', value => 'used_delta', template => '%.2f', min => 0, max => 100, unit => '%' }, - ], - } - }, - { label => 'user-children', set => { - key_values => [ { name => 'used_cpu_user_children', diff => 1 } ], - closure_custom_calc => $self->can('custom_usage_calc'), closure_custom_calc_extra_options => { label_ref => 'used_cpu_user_children' }, - output_template => 'User children: %.2f %%', output_use => 'used_delta', threshold_use => 'used_delta', - per_second => 1, - perfdatas => [ - { label => 'user_children', value => 'used_delta', template => '%.2f', min => 0, max => 100, unit => '%' }, - ], - } - }, - ]; -} - -sub prefix_output { - my ($self, %options) = @_; - - return "CPU usage: "; -} - -sub custom_usage_calc { - my ($self, %options) = @_; - - my $delta_total = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{label_ref}} - $options{old_datas}->{$self->{instance} . '_' . $options{extra_options}->{label_ref}}; - $self->{result_values}->{used_delta} = 100 * $delta_total / $options{delta_time}; - - return 0; -} - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 1); - bless $self, $class; - - $self->{version} = '1.0'; - - $options{options}->add_options(arguments => - { - }); - - return $self; -} - -sub manage_selection { - my ($self, %options) = @_; - - $self->{cache_name} = "redis_" . $self->{mode} . '_' . $options{custom}->get_connection_info() . '_' . - (defined($self->{option_results}->{filter_counters}) ? md5_hex($self->{option_results}->{filter_counters}) : md5_hex('all')); - - my $results = $options{custom}->get_info(); - - $self->{global} = { - used_cpu_sys => $results->{used_cpu_sys}, - used_cpu_user => $results->{used_cpu_user}, - used_cpu_sys_children => $results->{used_cpu_sys_children}, - used_cpu_user_children => $results->{used_cpu_user_children}, - }; -} - -1; - -__END__ - -=head1 MODE - -Check CPU utilization. - -=over 8 - -=item B<--warning-sys> - -Warning threshold for Sys CPU utilization - -=item B<--critical-sys> - -Critical threshold for Sys CPU utilization - -=item B<--warning-user> - -Warning threshold for User CPU utilization - -=item B<--critical-user> - -Critical threshold for User CPU utilization - -=item B<--warning-sys-children> - -Warning threshold for Sys Children CPU utilization - -=item B<--critical-sys-children> - -Critical threshold for Sys Children CPU utilization - -=item B<--warning-user-children> - -Warning threshold for User Children CPU utilization - -=item B<--critical-user-children> - -Critical threshold for User Children CPU utilization - -=back - -=cut +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::cli::mode::cpu; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use Digest::MD5 qw(md5_hex); + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0, cb_prefix_output => 'prefix_output' } + ]; + + $self->{maps_counters}->{global} = [ + { label => 'sys', set => { + key_values => [ { name => 'used_cpu_sys', diff => 1 } ], + closure_custom_calc => $self->can('custom_usage_calc'), closure_custom_calc_extra_options => { label_ref => 'used_cpu_sys' }, + output_template => 'System: %.2f %%', output_use => 'used_delta', threshold_use => 'used_delta', + per_second => 1, + perfdatas => [ + { label => 'sys', value => 'used_delta', template => '%.2f', min => 0, max => 100, unit => '%' }, + ], + } + }, + { label => 'user', set => { + key_values => [ { name => 'used_cpu_user', diff => 1 } ], + closure_custom_calc => $self->can('custom_usage_calc'), closure_custom_calc_extra_options => { label_ref => 'used_cpu_user' }, + output_template => 'User: %.2f %%', output_use => 'used_delta', threshold_use => 'used_delta', + per_second => 1, + perfdatas => [ + { label => 'user', value => 'used_delta', template => '%.2f', min => 0, max => 100, unit => '%' }, + ], + } + }, + { label => 'sys-children', set => { + key_values => [ { name => 'used_cpu_sys_children', diff => 1 } ], + closure_custom_calc => $self->can('custom_usage_calc'), closure_custom_calc_extra_options => { label_ref => 'used_cpu_sys_children' }, + output_template => 'System children: %.2f %%', output_use => 'used_delta', threshold_use => 'used_delta', + per_second => 1, + perfdatas => [ + { label => 'sys_children', value => 'used_delta', template => '%.2f', min => 0, max => 100, unit => '%' }, + ], + } + }, + { label => 'user-children', set => { + key_values => [ { name => 'used_cpu_user_children', diff => 1 } ], + closure_custom_calc => $self->can('custom_usage_calc'), closure_custom_calc_extra_options => { label_ref => 'used_cpu_user_children' }, + output_template => 'User children: %.2f %%', output_use => 'used_delta', threshold_use => 'used_delta', + per_second => 1, + perfdatas => [ + { label => 'user_children', value => 'used_delta', template => '%.2f', min => 0, max => 100, unit => '%' }, + ], + } + }, + ]; +} + +sub prefix_output { + my ($self, %options) = @_; + + return "CPU usage: "; +} + +sub custom_usage_calc { + my ($self, %options) = @_; + + my $delta_total = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{label_ref}} - $options{old_datas}->{$self->{instance} . '_' . $options{extra_options}->{label_ref}}; + $self->{result_values}->{used_delta} = 100 * $delta_total / $options{delta_time}; + + return 0; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 1); + bless $self, $class; + + $self->{version} = '1.0'; + + $options{options}->add_options(arguments => + { + }); + + return $self; +} + +sub manage_selection { + my ($self, %options) = @_; + + $self->{cache_name} = "redis_" . $self->{mode} . '_' . $options{custom}->get_connection_info() . '_' . + (defined($self->{option_results}->{filter_counters}) ? md5_hex($self->{option_results}->{filter_counters}) : md5_hex('all')); + + my $results = $options{custom}->get_info(); + + $self->{global} = { + used_cpu_sys => $results->{used_cpu_sys}, + used_cpu_user => $results->{used_cpu_user}, + used_cpu_sys_children => $results->{used_cpu_sys_children}, + used_cpu_user_children => $results->{used_cpu_user_children}, + }; +} + +1; + +__END__ + +=head1 MODE + +Check CPU utilization. + +=over 8 + +=item B<--warning-sys> + +Warning threshold for Sys CPU utilization + +=item B<--critical-sys> + +Critical threshold for Sys CPU utilization + +=item B<--warning-user> + +Warning threshold for User CPU utilization + +=item B<--critical-user> + +Critical threshold for User CPU utilization + +=item B<--warning-sys-children> + +Warning threshold for Sys Children CPU utilization + +=item B<--critical-sys-children> + +Critical threshold for Sys Children CPU utilization + +=item B<--warning-user-children> + +Warning threshold for User Children CPU utilization + +=item B<--critical-user-children> + +Critical threshold for User Children CPU utilization + +=back + +=cut diff --git a/apps/redis/cli/mode/memory.pm b/apps/redis/cli/mode/memory.pm index 6aef79436..0b7969fa9 100644 --- a/apps/redis/cli/mode/memory.pm +++ b/apps/redis/cli/mode/memory.pm @@ -1,356 +1,356 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package apps::redis::cli::mode::memory; - -use base qw(centreon::plugins::templates::counter); - -use strict; -use warnings; - -my $instance_mode; - -sub custom_usage_perfdata { - my ($self, %options) = @_; - - $self->{output}->perfdata_add(label => $self->{result_values}->{label}, unit => 'B', - value => $self->{result_values}->{used}, - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{result_values}->{label}, total => $self->{result_values}->{total}, cast_int => 1), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{result_values}->{label}, total => $self->{result_values}->{total}, cast_int => 1), - min => 0, max => $self->{result_values}->{total}); -} - -sub custom_usage_threshold { - my ($self, %options) = @_; - - my ($exit, $threshold_value); - $threshold_value = $self->{result_values}->{used}; - $threshold_value = $self->{result_values}->{free} if (defined($instance_mode->{option_results}->{free})); - if ($instance_mode->{option_results}->{units} eq '%') { - $threshold_value = $self->{result_values}->{prct_used}; - $threshold_value = $self->{result_values}->{prct_free} if (defined($instance_mode->{option_results}->{free})); - } - $exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{result_values}->{label}, exit_litteral => 'critical' }, { label => 'warning-' . $self->{result_values}->{label}, exit_litteral => 'warning' } ]); - return $exit; -} - -sub custom_usage_output { - my ($self, %options) = @_; - - my ($total_used_value, $total_used_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{used}); - - my $msg = sprintf($self->{result_values}->{display}.": %s (%.2f%%)", - $total_used_value . " " . $total_used_unit, $self->{result_values}->{prct_used}); - return $msg; -} - -sub custom_usage_calc { - my ($self, %options) = @_; - - $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'}; - $self->{result_values}->{label} = $options{new_datas}->{$self->{instance} . '_label'}; - $self->{result_values}->{used} = $options{new_datas}->{$self->{instance} . '_used'}; - $self->{result_values}->{total} = $options{new_datas}->{$self->{instance} . '_total'}; - $self->{result_values}->{free} = $self->{result_values}->{total} - $self->{result_values}->{used}; - $self->{result_values}->{prct_used} = $self->{result_values}->{used} * 100 / $self->{result_values}->{total}; - $self->{result_values}->{prct_free} = 100 - $self->{result_values}->{prct_used}; - - return 0; -} - -sub set_counters { - my ($self, %options) = @_; - - $self->{maps_counters_type} = [ - { name => 'used', type => 0 }, - { name => 'rss', type => 0, skipped_code => { -10 => 1 } }, - { name => 'peak', type => 0, skipped_code => { -10 => 1 } }, - { name => 'overhead', type => 0, skipped_code => { -10 => 1 } }, - { name => 'startup', type => 0, skipped_code => { -10 => 1 } }, - { name => 'dataset', type => 0, skipped_code => { -10 => 1 } }, - { name => 'lua', type => 0, skipped_code => { -10 => 1 } }, - { name => 'stats', type => 0, cb_prefix_output => 'prefix_stats_output', skipped_code => { -10 => 1 } }, - ]; - - $self->{maps_counters}->{used} = [ - { label => 'used', set => { - key_values => [ { name => 'display' }, { name => 'label' }, { name => 'used' }, { name => 'total' } ], - closure_custom_calc => $self->can('custom_usage_calc'), - closure_custom_output => $self->can('custom_usage_output'), - closure_custom_perfdata => $self->can('custom_usage_perfdata'), - closure_custom_threshold_check => $self->can('custom_usage_threshold'), - } - }, - ]; - - $self->{maps_counters}->{rss} = [ - { label => 'rss', set => { - key_values => [ { name => 'display' }, { name => 'label' }, { name => 'used' }, { name => 'total' } ], - closure_custom_calc => $self->can('custom_usage_calc'), - closure_custom_output => $self->can('custom_usage_output'), - closure_custom_perfdata => $self->can('custom_usage_perfdata'), - closure_custom_threshold_check => $self->can('custom_usage_threshold'), - } - }, - ]; - - $self->{maps_counters}->{peak} = [ - { label => 'peak', set => { - key_values => [ { name => 'display' }, { name => 'label' }, { name => 'used' }, { name => 'total' } ], - closure_custom_calc => $self->can('custom_usage_calc'), - closure_custom_output => $self->can('custom_usage_output'), - closure_custom_perfdata => $self->can('custom_usage_perfdata'), - closure_custom_threshold_check => $self->can('custom_usage_threshold'), - } - }, - ]; - - $self->{maps_counters}->{overhead} = [ - { label => 'overhead', set => { - key_values => [ { name => 'display' }, { name => 'label' }, { name => 'used' }, { name => 'total' } ], - closure_custom_calc => $self->can('custom_usage_calc'), - closure_custom_output => $self->can('custom_usage_output'), - closure_custom_perfdata => $self->can('custom_usage_perfdata'), - closure_custom_threshold_check => $self->can('custom_usage_threshold'), - } - }, - ]; - - $self->{maps_counters}->{startup} = [ - { label => 'startup', set => { - key_values => [ { name => 'display' }, { name => 'label' }, { name => 'used' }, { name => 'total' } ], - closure_custom_calc => $self->can('custom_usage_calc'), - closure_custom_output => $self->can('custom_usage_output'), - closure_custom_perfdata => $self->can('custom_usage_perfdata'), - closure_custom_threshold_check => $self->can('custom_usage_threshold'), - } - }, - ]; - - $self->{maps_counters}->{dataset} = [ - { label => 'dataset', set => { - key_values => [ { name => 'display' }, { name => 'label' }, { name => 'used' }, { name => 'total' } ], - closure_custom_calc => $self->can('custom_usage_calc'), - closure_custom_output => $self->can('custom_usage_output'), - closure_custom_perfdata => $self->can('custom_usage_perfdata'), - closure_custom_threshold_check => $self->can('custom_usage_threshold'), - } - }, - ]; - - $self->{maps_counters}->{lua} = [ - { label => 'lua', set => { - key_values => [ { name => 'display' }, { name => 'label' }, { name => 'used' }, { name => 'total' } ], - closure_custom_calc => $self->can('custom_usage_calc'), - closure_custom_output => $self->can('custom_usage_output'), - closure_custom_perfdata => $self->can('custom_usage_perfdata'), - closure_custom_threshold_check => $self->can('custom_usage_threshold'), - } - }, - ]; - - $self->{maps_counters}->{stats} = [ - { label => 'fragmentation-ratio', set => { - key_values => [ { name => 'mem_fragmentation_ratio' } ], - output_template => 'Fragmentation ratio: %s', - perfdatas => [ - { label => 'fragmentation_ratio', value => 'mem_fragmentation_ratio_absolute', template => '%s', min => 0 }, - ], - }, - }, - { label => 'defrag-running', set => { - key_values => [ { name => 'active_defrag_running' } ], - output_template => 'Defragmentation running: %s', - perfdatas => [ - { label => 'defrag_running', value => 'active_defrag_running_absolute', template => '%s', min => 0 }, - ], - }, - }, - { label => 'lazyfree-pending-objects', set => { - key_values => [ { name => 'lazyfree_pending_objects' } ], - output_template => 'Lazyfree pending objects: %s', - perfdatas => [ - { label => 'lazyfree_pending_objects', value => 'lazyfree_pending_objects_absolute', template => '%s', min => 0 }, - ], - }, - }, - ]; -} - -sub prefix_stats_output { - my ($self, %options) = @_; - - return "Statistics: "; -} - - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options); - bless $self, $class; - - $self->{version} = '1.0'; - - $options{options}->add_options(arguments => - { - "units:s" => { name => 'units', default => '%' }, - "free" => { name => 'free' }, - }); - - return $self; -} - -sub check_options { - my ($self, %options) = @_; - $self->SUPER::check_options(%options); - - $instance_mode = $self; -} - -my $metrics = { - used_memory => { label => 'used', display => 'Used' }, - used_memory_rss => { label => 'rss', display => 'Rss' }, - used_memory_peak => { label => 'peak', display => 'Peak' }, - used_memory_overhead => { label => 'overhead', display => 'Overhead' }, - used_memory_startup => { label => 'startup', display => 'Startup' }, - used_memory_dataset => { label => 'dataset', display => 'Dataset' }, - used_memory_lua => { label => 'lua', display => 'Lua' }, -}; - -sub manage_selection { - my ($self, %options) = @_; - - my $results = $options{custom}->get_info(); - foreach my $type (keys %$metrics) { - next if (!defined($results->{$type})); - $self->{$metrics->{$type}->{label}} = { display => $metrics->{$type}->{display}, - label => $metrics->{$type}->{label}, - used => $results->{$type}, - total => $results->{total_system_memory} }; - } - - $self->{stats} = { - mem_fragmentation_ratio => $results->{mem_fragmentation_ratio}, - active_defrag_running => $results->{active_defrag_running}, - lazyfree_pending_objects => $results->{lazyfree_pending_objects}, - }; -} - -1; - -__END__ - -=head1 MODE - -Check memory utilization - -=over 8 - -=item B<--units> - -Units of thresholds (Default: '%') ('%', 'B'). - -=item B<--free> - -Thresholds are on free space left. - -=item B<--warning-used> - -Warning threshold for Used memory utilization - -=item B<--critical-used> - -Critical threshold for Used memory utilization - -=item B<--warning-rss> - -Warning threshold for Rss memory utilization - -=item B<--critical-rss> - -Critical threshold for Rss memory utilization - -=item B<--warning-peak> - -Warning threshold for Peak memory utilization - -=item B<--critical-peak> - -Critical threshold for Peak memory utilization - -=item B<--warning-overhead> - -Warning threshold for Overhead memory utilization - -=item B<--critical-overhead> - -Critical threshold for Overhead memory utilization - -=item B<--warning-startup> - -Warning threshold for Startup memory utilization - -=item B<--critical-startup> - -Critical threshold for Startup memory utilization - -=item B<--warning-dataset> - -Warning threshold for Dataset memory utilization - -=item B<--critical-dataset> - -Critical threshold for Dataset memory utilization - -=item B<--warning-lua> - -Warning threshold for Lua memory utilization - -=item B<--critical-lua> - -Critical threshold for Lua memory utilization - -=item B<--warning-fragmentation-ratio> - -Warning threshold for Fragmentation Ratio - -=item B<--critical-fragmentation-ratio> - -Critical threshold for Fragmentation Ratio - -=item B<--warning-defrag-running> - -Warning threshold for Running Defragmentation - -=item B<--critical-defrag-running> - -Critical threshold for Running Defragmentation - -=item B<--warning-lazyfree-pending-objects> - -Warning threshold for Lazyfree Pending Objects - -=item B<--critical-lazyfree-pending-objects> - -Critical threshold for Lazyfree Pending Objects - -=back - -=cut +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::cli::mode::memory; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +my $instance_mode; + +sub custom_usage_perfdata { + my ($self, %options) = @_; + + $self->{output}->perfdata_add(label => $self->{result_values}->{label}, unit => 'B', + value => $self->{result_values}->{used}, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{result_values}->{label}, total => $self->{result_values}->{total}, cast_int => 1), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{result_values}->{label}, total => $self->{result_values}->{total}, cast_int => 1), + min => 0, max => $self->{result_values}->{total}); +} + +sub custom_usage_threshold { + my ($self, %options) = @_; + + my ($exit, $threshold_value); + $threshold_value = $self->{result_values}->{used}; + $threshold_value = $self->{result_values}->{free} if (defined($instance_mode->{option_results}->{free})); + if ($instance_mode->{option_results}->{units} eq '%') { + $threshold_value = $self->{result_values}->{prct_used}; + $threshold_value = $self->{result_values}->{prct_free} if (defined($instance_mode->{option_results}->{free})); + } + $exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{result_values}->{label}, exit_litteral => 'critical' }, { label => 'warning-' . $self->{result_values}->{label}, exit_litteral => 'warning' } ]); + return $exit; +} + +sub custom_usage_output { + my ($self, %options) = @_; + + my ($total_used_value, $total_used_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{used}); + + my $msg = sprintf($self->{result_values}->{display}.": %s (%.2f%%)", + $total_used_value . " " . $total_used_unit, $self->{result_values}->{prct_used}); + return $msg; +} + +sub custom_usage_calc { + my ($self, %options) = @_; + + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'}; + $self->{result_values}->{label} = $options{new_datas}->{$self->{instance} . '_label'}; + $self->{result_values}->{used} = $options{new_datas}->{$self->{instance} . '_used'}; + $self->{result_values}->{total} = $options{new_datas}->{$self->{instance} . '_total'}; + $self->{result_values}->{free} = $self->{result_values}->{total} - $self->{result_values}->{used}; + $self->{result_values}->{prct_used} = $self->{result_values}->{used} * 100 / $self->{result_values}->{total}; + $self->{result_values}->{prct_free} = 100 - $self->{result_values}->{prct_used}; + + return 0; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'used', type => 0 }, + { name => 'rss', type => 0, skipped_code => { -10 => 1 } }, + { name => 'peak', type => 0, skipped_code => { -10 => 1 } }, + { name => 'overhead', type => 0, skipped_code => { -10 => 1 } }, + { name => 'startup', type => 0, skipped_code => { -10 => 1 } }, + { name => 'dataset', type => 0, skipped_code => { -10 => 1 } }, + { name => 'lua', type => 0, skipped_code => { -10 => 1 } }, + { name => 'stats', type => 0, cb_prefix_output => 'prefix_stats_output', skipped_code => { -10 => 1 } }, + ]; + + $self->{maps_counters}->{used} = [ + { label => 'used', set => { + key_values => [ { name => 'display' }, { name => 'label' }, { name => 'used' }, { name => 'total' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + ]; + + $self->{maps_counters}->{rss} = [ + { label => 'rss', set => { + key_values => [ { name => 'display' }, { name => 'label' }, { name => 'used' }, { name => 'total' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + ]; + + $self->{maps_counters}->{peak} = [ + { label => 'peak', set => { + key_values => [ { name => 'display' }, { name => 'label' }, { name => 'used' }, { name => 'total' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + ]; + + $self->{maps_counters}->{overhead} = [ + { label => 'overhead', set => { + key_values => [ { name => 'display' }, { name => 'label' }, { name => 'used' }, { name => 'total' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + ]; + + $self->{maps_counters}->{startup} = [ + { label => 'startup', set => { + key_values => [ { name => 'display' }, { name => 'label' }, { name => 'used' }, { name => 'total' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + ]; + + $self->{maps_counters}->{dataset} = [ + { label => 'dataset', set => { + key_values => [ { name => 'display' }, { name => 'label' }, { name => 'used' }, { name => 'total' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + ]; + + $self->{maps_counters}->{lua} = [ + { label => 'lua', set => { + key_values => [ { name => 'display' }, { name => 'label' }, { name => 'used' }, { name => 'total' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + ]; + + $self->{maps_counters}->{stats} = [ + { label => 'fragmentation-ratio', set => { + key_values => [ { name => 'mem_fragmentation_ratio' } ], + output_template => 'Fragmentation ratio: %s', + perfdatas => [ + { label => 'fragmentation_ratio', value => 'mem_fragmentation_ratio_absolute', template => '%s', min => 0 }, + ], + }, + }, + { label => 'defrag-running', set => { + key_values => [ { name => 'active_defrag_running' } ], + output_template => 'Defragmentation running: %s', + perfdatas => [ + { label => 'defrag_running', value => 'active_defrag_running_absolute', template => '%s', min => 0 }, + ], + }, + }, + { label => 'lazyfree-pending-objects', set => { + key_values => [ { name => 'lazyfree_pending_objects' } ], + output_template => 'Lazyfree pending objects: %s', + perfdatas => [ + { label => 'lazyfree_pending_objects', value => 'lazyfree_pending_objects_absolute', template => '%s', min => 0 }, + ], + }, + }, + ]; +} + +sub prefix_stats_output { + my ($self, %options) = @_; + + return "Statistics: "; +} + + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + + $options{options}->add_options(arguments => + { + "units:s" => { name => 'units', default => '%' }, + "free" => { name => 'free' }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; +} + +my $metrics = { + used_memory => { label => 'used', display => 'Used' }, + used_memory_rss => { label => 'rss', display => 'Rss' }, + used_memory_peak => { label => 'peak', display => 'Peak' }, + used_memory_overhead => { label => 'overhead', display => 'Overhead' }, + used_memory_startup => { label => 'startup', display => 'Startup' }, + used_memory_dataset => { label => 'dataset', display => 'Dataset' }, + used_memory_lua => { label => 'lua', display => 'Lua' }, +}; + +sub manage_selection { + my ($self, %options) = @_; + + my $results = $options{custom}->get_info(); + foreach my $type (keys %$metrics) { + next if (!defined($results->{$type})); + $self->{$metrics->{$type}->{label}} = { display => $metrics->{$type}->{display}, + label => $metrics->{$type}->{label}, + used => $results->{$type}, + total => $results->{total_system_memory} }; + } + + $self->{stats} = { + mem_fragmentation_ratio => $results->{mem_fragmentation_ratio}, + active_defrag_running => $results->{active_defrag_running}, + lazyfree_pending_objects => $results->{lazyfree_pending_objects}, + }; +} + +1; + +__END__ + +=head1 MODE + +Check memory utilization + +=over 8 + +=item B<--units> + +Units of thresholds (Default: '%') ('%', 'B'). + +=item B<--free> + +Thresholds are on free space left. + +=item B<--warning-used> + +Warning threshold for Used memory utilization + +=item B<--critical-used> + +Critical threshold for Used memory utilization + +=item B<--warning-rss> + +Warning threshold for Rss memory utilization + +=item B<--critical-rss> + +Critical threshold for Rss memory utilization + +=item B<--warning-peak> + +Warning threshold for Peak memory utilization + +=item B<--critical-peak> + +Critical threshold for Peak memory utilization + +=item B<--warning-overhead> + +Warning threshold for Overhead memory utilization + +=item B<--critical-overhead> + +Critical threshold for Overhead memory utilization + +=item B<--warning-startup> + +Warning threshold for Startup memory utilization + +=item B<--critical-startup> + +Critical threshold for Startup memory utilization + +=item B<--warning-dataset> + +Warning threshold for Dataset memory utilization + +=item B<--critical-dataset> + +Critical threshold for Dataset memory utilization + +=item B<--warning-lua> + +Warning threshold for Lua memory utilization + +=item B<--critical-lua> + +Critical threshold for Lua memory utilization + +=item B<--warning-fragmentation-ratio> + +Warning threshold for Fragmentation Ratio + +=item B<--critical-fragmentation-ratio> + +Critical threshold for Fragmentation Ratio + +=item B<--warning-defrag-running> + +Warning threshold for Running Defragmentation + +=item B<--critical-defrag-running> + +Critical threshold for Running Defragmentation + +=item B<--warning-lazyfree-pending-objects> + +Warning threshold for Lazyfree Pending Objects + +=item B<--critical-lazyfree-pending-objects> + +Critical threshold for Lazyfree Pending Objects + +=back + +=cut diff --git a/apps/redis/cli/mode/persistence.pm b/apps/redis/cli/mode/persistence.pm index db141d38c..6c0a0407e 100644 --- a/apps/redis/cli/mode/persistence.pm +++ b/apps/redis/cli/mode/persistence.pm @@ -1,218 +1,218 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package apps::redis::cli::mode::persistence; - -use base qw(centreon::plugins::templates::counter); - -use strict; -use warnings; - -my $instance_mode; - -sub set_counters { - my ($self, %options) = @_; - - $self->{maps_counters_type} = [ - { name => 'global', type => 0, skipped_code => { -10 => 1 } }, - ]; - - $self->{maps_counters}->{global} = [ - { label => 'status', threshold => 0, set => { - key_values => [ { name => 'status' }, { name => 'progress_status' } ], - closure_custom_calc => $self->can('custom_status_calc'), - closure_custom_output => $self->can('custom_status_output'), - closure_custom_perfdata => sub { return 0; }, - closure_custom_threshold_check => $self->can('custom_status_threshold'), - } - }, - { label => 'changes', set => { - key_values => [ { name => 'rdb_changes_since_last_save' } ], - output_template => 'Number of changes since the last dump: %s', - perfdatas => [ - { label => 'changes', value => 'rdb_changes_since_last_save_absolute', template => '%s', min => 0 }, - ], - }, - }, - { label => 'last-save', set => { - key_values => [ { name => 'rdb_last_save_time' }, { name => 'rdb_last_save_time_sec' } ], - output_template => 'Time since last successful save: %s', - perfdatas => [ - { label => 'last_save', value => 'rdb_last_save_time_sec_absolute', template => '%s', min => 0, unit => 's' }, - ], - }, - }, - { label => 'save-size', set => { - key_values => [ { name => 'rdb_last_cow_size' } ], - output_template => 'Size of last save: %s %s', - output_change_bytes => 1, - perfdatas => [ - { label => 'save_size', value => 'rdb_last_cow_size_absolute', template => '%s', min => 0, unit => 'B' }, - ], - }, - }, - { label => 'last-save-duration', set => { - key_values => [ { name => 'rdb_last_bgsave_time' } ], - output_template => 'Duration of last save: %s s', - perfdatas => [ - { label => 'last_save_duration', value => 'rdb_last_bgsave_time_absolute', template => '%s', min => 0, unit => 's' }, - ], - }, - }, - { label => 'current-save-duration', set => { - key_values => [ { name => 'rdb_current_bgsave_time' } ], - output_template => 'Duration of current save: %s s', - perfdatas => [ - { label => 'current_save_duration', value => 'rdb_current_bgsave_time_absolute', template => '%s', min => 0, unit => 's' }, - ], - }, - }, - ]; -} - -sub custom_status_threshold { - my ($self, %options) = @_; - my $status = 'ok'; - my $message; - - eval { - local $SIG{__WARN__} = sub { $message = $_[0]; }; - local $SIG{__DIE__} = sub { $message = $_[0]; }; - - if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && - eval "$instance_mode->{option_results}->{critical_status}") { - $status = 'critical'; - } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && - eval "$instance_mode->{option_results}->{warning_status}") { - $status = 'warning'; - } - }; - if (defined($message)) { - $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); - } - - return $status; -} - -sub custom_status_output { - my ($self, %options) = @_; - - my $msg = sprintf("RDB save status is '%s' [progress status: %s]", $self->{result_values}->{status}, $self->{result_values}->{progress_status}); - return $msg; -} - -sub custom_status_calc { - my ($self, %options) = @_; - - $self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_status'}; - $self->{result_values}->{progress_status} = $options{new_datas}->{$self->{instance} . '_progress_status'}; - return 0; -} - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options); - bless $self, $class; - - $self->{version} = '1.0'; - - $options{options}->add_options(arguments => - { - "warning-status:s" => { name => 'warning_status', default => '%{sync_status} =~ /in progress/i' }, - "critical-status:s" => { name => 'critical_status', default => '%{link_status} =~ /down/i' }, - }); - - return $self; -} - -sub check_options { - my ($self, %options) = @_; - $self->SUPER::check_options(%options); - - $instance_mode = $self; - $self->change_macros(); -} - -sub change_macros { - my ($self, %options) = @_; - - foreach (('warning_status', 'critical_status')) { - if (defined($self->{option_results}->{$_})) { - $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; - } - } -} - -my %map_status = ( - 0 => 'stopped', - 1 => 'in progress', -); - -sub manage_selection { - my ($self, %options) = @_; - - my $results = $options{custom}->get_info(); - $self->{global} = { - status => $results->{rdb_last_bgsave_status}, - progress_status => $map_status{$results->{rdb_bgsave_in_progress}}, - rdb_changes_since_last_save => $results->{rdb_changes_since_last_save}, - rdb_last_save_time => centreon::plugins::misc::change_seconds(value => time() - $results->{rdb_last_save_time}), - rdb_last_save_time_sec => time() - $results->{rdb_last_save_time}, - rdb_last_cow_size => $results->{rdb_last_cow_size}, - rdb_last_bgsave_time => $results->{rdb_last_bgsave_time_sec}, - rdb_current_bgsave_time => $results->{rdb_current_bgsave_time_sec} - }; -} - -1; - -__END__ - -=head1 MODE - -Check RDB persistence status. - -=over 8 - -=item B<--warning-status> - -Set warning threshold for status (Default: '%{progress_status} =~ /in progress/i'). -Can used special variables like: %{progress_status}, %{status} - -=item B<--critical-status> - -Set critical threshold for status (Default: '%{status} =~ /fail/i'). -Can used special variables like: %{progress_status}, %{status} - -=item B<--warning-*> - -Threshold warning. -Can be: 'changes', 'last-save', 'save-size', -'last-save-duration', 'current-save-duration'. - -=item B<--critical-*> - -Threshold critical. -Can be: 'changes', 'last-save', 'save-size', -'last-save-duration', 'current-save-duration'. - -=back - -=cut +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::cli::mode::persistence; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +my $instance_mode; + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0, skipped_code => { -10 => 1 } }, + ]; + + $self->{maps_counters}->{global} = [ + { label => 'status', threshold => 0, set => { + key_values => [ { name => 'status' }, { name => 'progress_status' } ], + closure_custom_calc => $self->can('custom_status_calc'), + closure_custom_output => $self->can('custom_status_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + { label => 'changes', set => { + key_values => [ { name => 'rdb_changes_since_last_save' } ], + output_template => 'Number of changes since the last dump: %s', + perfdatas => [ + { label => 'changes', value => 'rdb_changes_since_last_save_absolute', template => '%s', min => 0 }, + ], + }, + }, + { label => 'last-save', set => { + key_values => [ { name => 'rdb_last_save_time' }, { name => 'rdb_last_save_time_sec' } ], + output_template => 'Time since last successful save: %s', + perfdatas => [ + { label => 'last_save', value => 'rdb_last_save_time_sec_absolute', template => '%s', min => 0, unit => 's' }, + ], + }, + }, + { label => 'save-size', set => { + key_values => [ { name => 'rdb_last_cow_size' } ], + output_template => 'Size of last save: %s %s', + output_change_bytes => 1, + perfdatas => [ + { label => 'save_size', value => 'rdb_last_cow_size_absolute', template => '%s', min => 0, unit => 'B' }, + ], + }, + }, + { label => 'last-save-duration', set => { + key_values => [ { name => 'rdb_last_bgsave_time' } ], + output_template => 'Duration of last save: %s s', + perfdatas => [ + { label => 'last_save_duration', value => 'rdb_last_bgsave_time_absolute', template => '%s', min => 0, unit => 's' }, + ], + }, + }, + { label => 'current-save-duration', set => { + key_values => [ { name => 'rdb_current_bgsave_time' } ], + output_template => 'Duration of current save: %s s', + perfdatas => [ + { label => 'current_save_duration', value => 'rdb_current_bgsave_time_absolute', template => '%s', min => 0, unit => 's' }, + ], + }, + }, + ]; +} + +sub custom_status_threshold { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && + eval "$instance_mode->{option_results}->{critical_status}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && + eval "$instance_mode->{option_results}->{warning_status}") { + $status = 'warning'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_status_output { + my ($self, %options) = @_; + + my $msg = sprintf("RDB save status is '%s' [progress status: %s]", $self->{result_values}->{status}, $self->{result_values}->{progress_status}); + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_status'}; + $self->{result_values}->{progress_status} = $options{new_datas}->{$self->{instance} . '_progress_status'}; + return 0; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + + $options{options}->add_options(arguments => + { + "warning-status:s" => { name => 'warning_status', default => '%{sync_status} =~ /in progress/i' }, + "critical-status:s" => { name => 'critical_status', default => '%{link_status} =~ /down/i' }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; + $self->change_macros(); +} + +sub change_macros { + my ($self, %options) = @_; + + foreach (('warning_status', 'critical_status')) { + if (defined($self->{option_results}->{$_})) { + $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; + } + } +} + +my %map_status = ( + 0 => 'stopped', + 1 => 'in progress', +); + +sub manage_selection { + my ($self, %options) = @_; + + my $results = $options{custom}->get_info(); + $self->{global} = { + status => $results->{rdb_last_bgsave_status}, + progress_status => $map_status{$results->{rdb_bgsave_in_progress}}, + rdb_changes_since_last_save => $results->{rdb_changes_since_last_save}, + rdb_last_save_time => centreon::plugins::misc::change_seconds(value => time() - $results->{rdb_last_save_time}), + rdb_last_save_time_sec => time() - $results->{rdb_last_save_time}, + rdb_last_cow_size => $results->{rdb_last_cow_size}, + rdb_last_bgsave_time => $results->{rdb_last_bgsave_time_sec}, + rdb_current_bgsave_time => $results->{rdb_current_bgsave_time_sec} + }; +} + +1; + +__END__ + +=head1 MODE + +Check RDB persistence status. + +=over 8 + +=item B<--warning-status> + +Set warning threshold for status (Default: '%{progress_status} =~ /in progress/i'). +Can used special variables like: %{progress_status}, %{status} + +=item B<--critical-status> + +Set critical threshold for status (Default: '%{status} =~ /fail/i'). +Can used special variables like: %{progress_status}, %{status} + +=item B<--warning-*> + +Threshold warning. +Can be: 'changes', 'last-save', 'save-size', +'last-save-duration', 'current-save-duration'. + +=item B<--critical-*> + +Threshold critical. +Can be: 'changes', 'last-save', 'save-size', +'last-save-duration', 'current-save-duration'. + +=back + +=cut diff --git a/apps/redis/cli/mode/replication.pm b/apps/redis/cli/mode/replication.pm index 515d80518..f94a8f527 100644 --- a/apps/redis/cli/mode/replication.pm +++ b/apps/redis/cli/mode/replication.pm @@ -1,250 +1,250 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package apps::redis::cli::mode::replication; - -use base qw(centreon::plugins::templates::counter); - -use strict; -use warnings; - -my $instance_mode; - -sub set_counters { - my ($self, %options) = @_; - - $self->{maps_counters_type} = [ - { name => 'global', type => 0, skipped_code => { -10 => 1 } }, - { name => 'master', type => 0, skipped_code => { -10 => 1 } }, - { name => 'slave', type => 0, skipped_code => { -10 => 1 } }, - ]; - - $self->{maps_counters}->{global} = [ - { label => 'status', threshold => 0, set => { - key_values => [ { name => 'link_status' }, { name => 'sync_status' }, { name => 'role' }, { name => 'cluster_state' } ], - closure_custom_calc => $self->can('custom_status_calc'), - closure_custom_output => $self->can('custom_status_output'), - closure_custom_perfdata => sub { return 0; }, - closure_custom_threshold_check => $self->can('custom_status_threshold'), - } - }, - { label => 'connected-slaves', set => { - key_values => [ { name => 'connected_slaves' } ], - output_template => 'Number of connected slaves: %s', - perfdatas => [ - { label => 'connected_slaves', value => 'connected_slaves_absolute', template => '%s', min => 0 }, - ], - }, - }, - ]; - - $self->{maps_counters}->{master} = [ - { label => 'master-repl-offset', set => { - key_values => [ { name => 'master_repl_offset' } ], - output_template => 'Master replication offset: %s s', - perfdatas => [ - { label => 'master_repl_offset', value => 'master_repl_offset_absolute', template => '%s', min => 0, unit => 's' }, - ], - }, - }, - ]; - - $self->{maps_counters}->{slave} = [ - { label => 'master-last-io', set => { - key_values => [ { name => 'master_last_io_seconds_ago' } ], - output_template => 'Last interaction with master: %s s', - perfdatas => [ - { label => 'master_last_io', value => 'master_last_io_seconds_ago_absolute', template => '%s', min => 0, unit => 's' }, - ], - }, - }, - { label => 'slave-repl-offset', set => { - key_values => [ { name => 'slave_repl_offset' } ], - output_template => 'Slave replication offset: %s s', - perfdatas => [ - { label => 'slave_repl_offset', value => 'slave_repl_offset_absolute', template => '%s', min => 0, unit => 's' }, - ], - }, - }, - { label => 'slave-priority', set => { - key_values => [ { name => 'slave_priority' } ], - output_template => 'Slave replication offset: %s s', - perfdatas => [ - { label => 'slave_priority', value => 'slave_priority_absolute', template => '%s' }, - ], - }, - }, - { label => 'slave-read-only', set => { - key_values => [ { name => 'slave_read_only' } ], - output_template => 'Slave replication offset: %s s', - perfdatas => [ - { label => 'slave_read_only', value => 'slave_read_only_absolute', template => '%s' }, - ], - }, - }, - ]; -} - -sub custom_status_threshold { - my ($self, %options) = @_; - my $status = 'ok'; - my $message; - - eval { - local $SIG{__WARN__} = sub { $message = $_[0]; }; - local $SIG{__DIE__} = sub { $message = $_[0]; }; - - if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && - eval "$instance_mode->{option_results}->{critical_status}") { - $status = 'critical'; - } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && - eval "$instance_mode->{option_results}->{warning_status}") { - $status = 'warning'; - } - }; - if (defined($message)) { - $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); - } - - return $status; -} - -sub custom_status_output { - my ($self, %options) = @_; - - my $msg = sprintf("Node role is '%s' [cluster: %s]", $self->{result_values}->{role}, $self->{result_values}->{cluster_state}); - if ($self->{result_values}->{role} eq 'slave') { - $msg .= sprintf(" [link status: %s] [sync status: %s]", - $self->{result_values}->{link_status}, $self->{result_values}->{sync_status}); - } - return $msg; -} - -sub custom_status_calc { - my ($self, %options) = @_; - - $self->{result_values}->{role} = $options{new_datas}->{$self->{instance} . '_role'}; - $self->{result_values}->{sync_status} = $options{new_datas}->{$self->{instance} . '_sync_status'}; - $self->{result_values}->{link_status} = $options{new_datas}->{$self->{instance} . '_link_status'}; - $self->{result_values}->{cluster_state} = $options{new_datas}->{$self->{instance} . '_cluster_state'}; - return 0; -} - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options); - bless $self, $class; - - $self->{version} = '1.0'; - - $options{options}->add_options(arguments => - { - "warning-status:s" => { name => 'warning_status', default => '%{sync_status} =~ /in progress/i' }, - "critical-status:s" => { name => 'critical_status', default => '%{link_status} =~ /down/i' }, - }); - - return $self; -} - -sub check_options { - my ($self, %options) = @_; - $self->SUPER::check_options(%options); - - $instance_mode = $self; - $self->change_macros(); -} - -sub change_macros { - my ($self, %options) = @_; - - foreach (('warning_status', 'critical_status')) { - if (defined($self->{option_results}->{$_})) { - $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; - } - } -} - -my %map_sync = ( - 0 => 'stopped', - 1 => 'in progress', -); - -my %map_cluster_state = ( - 0 => 'disabled', - 1 => 'enabled', -); - -sub manage_selection { - my ($self, %options) = @_; - - my $results = $options{custom}->get_info(); - - $self->{global} = { - connected_slaves => $results->{connected_slaves}, - role => $results->{role}, - cluster_state => defined($results->{cluster_enabled}) ? $map_cluster_state{$results->{cluster_enabled}} : '-', - link_status => defined($results->{master_link_status}) ? $results->{master_link_status} : '-', - sync_status => defined($results->{master_sync_in_progress}) ? $map_sync{$results->{master_sync_in_progress}} : '-', - }; - - $self->{master} = { master_repl_offset => $results->{master_repl_offset} }; - $self->{slave} = { - master_last_io_seconds_ago => $results->{master_last_io_seconds_ago}, - slave_repl_offset => $results->{slave_repl_offset}, - slave_priority => $results->{slave_priority}, - slave_read_only => $results->{slave_read_only}, - }; -} - -1; - -__END__ - -=head1 MODE - -Check replication status. - -=over 8 - -=item B<--warning-status> - -Set warning threshold for status (Default: '%{sync_status} =~ /in progress/i'). -Can used special variables like: %{sync_status}, %{link_status}, %{cluster_state} - -=item B<--critical-status> - -Set critical threshold for status (Default: '%{link_status} =~ /down/i'). -Can used special variables like: %{sync_status}, %{link_status}, %{cluster_state} - -=item B<--warning-*> - -Threshold warning. -Can be: 'connected-slaves', 'master-repl-offset', -'master-last-io', 'slave-priority', 'slave-read-only'. - -=item B<--critical-*> - -Threshold critical. -Can be: 'connected-slaves', 'master-repl-offset', -'master-last-io', 'slave-priority', 'slave-read-only'. - -=back - -=cut +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::cli::mode::replication; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +my $instance_mode; + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0, skipped_code => { -10 => 1 } }, + { name => 'master', type => 0, skipped_code => { -10 => 1 } }, + { name => 'slave', type => 0, skipped_code => { -10 => 1 } }, + ]; + + $self->{maps_counters}->{global} = [ + { label => 'status', threshold => 0, set => { + key_values => [ { name => 'link_status' }, { name => 'sync_status' }, { name => 'role' }, { name => 'cluster_state' } ], + closure_custom_calc => $self->can('custom_status_calc'), + closure_custom_output => $self->can('custom_status_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + { label => 'connected-slaves', set => { + key_values => [ { name => 'connected_slaves' } ], + output_template => 'Number of connected slaves: %s', + perfdatas => [ + { label => 'connected_slaves', value => 'connected_slaves_absolute', template => '%s', min => 0 }, + ], + }, + }, + ]; + + $self->{maps_counters}->{master} = [ + { label => 'master-repl-offset', set => { + key_values => [ { name => 'master_repl_offset' } ], + output_template => 'Master replication offset: %s s', + perfdatas => [ + { label => 'master_repl_offset', value => 'master_repl_offset_absolute', template => '%s', min => 0, unit => 's' }, + ], + }, + }, + ]; + + $self->{maps_counters}->{slave} = [ + { label => 'master-last-io', set => { + key_values => [ { name => 'master_last_io_seconds_ago' } ], + output_template => 'Last interaction with master: %s s', + perfdatas => [ + { label => 'master_last_io', value => 'master_last_io_seconds_ago_absolute', template => '%s', min => 0, unit => 's' }, + ], + }, + }, + { label => 'slave-repl-offset', set => { + key_values => [ { name => 'slave_repl_offset' } ], + output_template => 'Slave replication offset: %s s', + perfdatas => [ + { label => 'slave_repl_offset', value => 'slave_repl_offset_absolute', template => '%s', min => 0, unit => 's' }, + ], + }, + }, + { label => 'slave-priority', set => { + key_values => [ { name => 'slave_priority' } ], + output_template => 'Slave replication offset: %s s', + perfdatas => [ + { label => 'slave_priority', value => 'slave_priority_absolute', template => '%s' }, + ], + }, + }, + { label => 'slave-read-only', set => { + key_values => [ { name => 'slave_read_only' } ], + output_template => 'Slave replication offset: %s s', + perfdatas => [ + { label => 'slave_read_only', value => 'slave_read_only_absolute', template => '%s' }, + ], + }, + }, + ]; +} + +sub custom_status_threshold { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && + eval "$instance_mode->{option_results}->{critical_status}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && + eval "$instance_mode->{option_results}->{warning_status}") { + $status = 'warning'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_status_output { + my ($self, %options) = @_; + + my $msg = sprintf("Node role is '%s' [cluster: %s]", $self->{result_values}->{role}, $self->{result_values}->{cluster_state}); + if ($self->{result_values}->{role} eq 'slave') { + $msg .= sprintf(" [link status: %s] [sync status: %s]", + $self->{result_values}->{link_status}, $self->{result_values}->{sync_status}); + } + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{role} = $options{new_datas}->{$self->{instance} . '_role'}; + $self->{result_values}->{sync_status} = $options{new_datas}->{$self->{instance} . '_sync_status'}; + $self->{result_values}->{link_status} = $options{new_datas}->{$self->{instance} . '_link_status'}; + $self->{result_values}->{cluster_state} = $options{new_datas}->{$self->{instance} . '_cluster_state'}; + return 0; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + + $options{options}->add_options(arguments => + { + "warning-status:s" => { name => 'warning_status', default => '%{sync_status} =~ /in progress/i' }, + "critical-status:s" => { name => 'critical_status', default => '%{link_status} =~ /down/i' }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; + $self->change_macros(); +} + +sub change_macros { + my ($self, %options) = @_; + + foreach (('warning_status', 'critical_status')) { + if (defined($self->{option_results}->{$_})) { + $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; + } + } +} + +my %map_sync = ( + 0 => 'stopped', + 1 => 'in progress', +); + +my %map_cluster_state = ( + 0 => 'disabled', + 1 => 'enabled', +); + +sub manage_selection { + my ($self, %options) = @_; + + my $results = $options{custom}->get_info(); + + $self->{global} = { + connected_slaves => $results->{connected_slaves}, + role => $results->{role}, + cluster_state => defined($results->{cluster_enabled}) ? $map_cluster_state{$results->{cluster_enabled}} : '-', + link_status => defined($results->{master_link_status}) ? $results->{master_link_status} : '-', + sync_status => defined($results->{master_sync_in_progress}) ? $map_sync{$results->{master_sync_in_progress}} : '-', + }; + + $self->{master} = { master_repl_offset => $results->{master_repl_offset} }; + $self->{slave} = { + master_last_io_seconds_ago => $results->{master_last_io_seconds_ago}, + slave_repl_offset => $results->{slave_repl_offset}, + slave_priority => $results->{slave_priority}, + slave_read_only => $results->{slave_read_only}, + }; +} + +1; + +__END__ + +=head1 MODE + +Check replication status. + +=over 8 + +=item B<--warning-status> + +Set warning threshold for status (Default: '%{sync_status} =~ /in progress/i'). +Can used special variables like: %{sync_status}, %{link_status}, %{cluster_state} + +=item B<--critical-status> + +Set critical threshold for status (Default: '%{link_status} =~ /down/i'). +Can used special variables like: %{sync_status}, %{link_status}, %{cluster_state} + +=item B<--warning-*> + +Threshold warning. +Can be: 'connected-slaves', 'master-repl-offset', +'master-last-io', 'slave-priority', 'slave-read-only'. + +=item B<--critical-*> + +Threshold critical. +Can be: 'connected-slaves', 'master-repl-offset', +'master-last-io', 'slave-priority', 'slave-read-only'. + +=back + +=cut diff --git a/apps/redis/cli/plugin.pm b/apps/redis/cli/plugin.pm index a11ad34e1..153b7cacb 100644 --- a/apps/redis/cli/plugin.pm +++ b/apps/redis/cli/plugin.pm @@ -1,59 +1,59 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package apps::redis::cli::plugin; - -use strict; -use warnings; -use base qw(centreon::plugins::script_custom); - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options); - bless $self, $class; - - $self->{version} = '1.0'; - %{$self->{modes}} = ( - 'clients' => 'apps::redis::cli::mode::clients', - 'commands' => 'apps::redis::cli::mode::commands', - 'connections' => 'apps::redis::cli::mode::connections', - 'cpu' => 'apps::redis::cli::mode::cpu', - 'memory' => 'apps::redis::cli::mode::memory', - 'persistence' => 'apps::redis::cli::mode::persistence', - 'replication' => 'apps::redis::cli::mode::replication', - ); - - $self->{custom_modes}{rediscli} = 'apps::redis::cli::custom::rediscli'; - return $self; -} - -sub init { - my ($self, %options) = @_; - - $self->SUPER::init(%options); -} - -1; - -__END__ - -=head1 PLUGIN DESCRIPTION - -Check Redis server through Perl Cli binding library. +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::cli::plugin; + +use strict; +use warnings; +use base qw(centreon::plugins::script_custom); + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + %{$self->{modes}} = ( + 'clients' => 'apps::redis::cli::mode::clients', + 'commands' => 'apps::redis::cli::mode::commands', + 'connections' => 'apps::redis::cli::mode::connections', + 'cpu' => 'apps::redis::cli::mode::cpu', + 'memory' => 'apps::redis::cli::mode::memory', + 'persistence' => 'apps::redis::cli::mode::persistence', + 'replication' => 'apps::redis::cli::mode::replication', + ); + + $self->{custom_modes}{rediscli} = 'apps::redis::cli::custom::rediscli'; + return $self; +} + +sub init { + my ($self, %options) = @_; + + $self->SUPER::init(%options); +} + +1; + +__END__ + +=head1 PLUGIN DESCRIPTION + +Check Redis server through Perl Cli binding library. diff --git a/apps/redis/restapi/custom/api.pm b/apps/redis/restapi/custom/api.pm index 6056977b2..afaf1374a 100644 --- a/apps/redis/restapi/custom/api.pm +++ b/apps/redis/restapi/custom/api.pm @@ -1,245 +1,245 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package apps::redis::restapi::custom::api; - -use strict; -use warnings; -use centreon::plugins::http; -use JSON::XS; - -sub new { - my ($class, %options) = @_; - my $self = {}; - bless $self, $class; - - if (!defined($options{output})) { - print "Class Custom: Need to specify 'output' argument.\n"; - exit 3; - } - if (!defined($options{options})) { - $options{output}->add_option_msg(short_msg => "Class Custom: Need to specify 'options' argument."); - $options{output}->option_exit(); - } - - if (!defined($options{noptions})) { - $options{options}->add_options(arguments => - { - "interval:s@" => { name => 'interval' }, - "hostname:s@" => { name => 'hostname' }, - "port:s@" => { name => 'port' }, - "proto:s@" => { name => 'proto' }, - "username:s@" => { name => 'username' }, - "password:s@" => { name => 'password' }, - "proxyurl:s@" => { name => 'proxyurl' }, - "timeout:s@" => { name => 'timeout' }, - "ssl:s@" => { name => 'ssl' }, - }); - } - $options{options}->add_help(package => __PACKAGE__, sections => 'REST API OPTIONS', once => 1); - - $self->{output} = $options{output}; - $self->{mode} = $options{mode}; - $self->{http} = centreon::plugins::http->new(output => $self->{output}); - - return $self; - -} - -sub set_options { - my ($self, %options) = @_; - - $self->{option_results} = $options{option_results}; -} - -sub set_defaults { - my ($self, %options) = @_; - - foreach (keys %{$options{default}}) { - if ($_ eq $self->{mode}) { - for (my $i = 0; $i < scalar(@{$options{default}->{$_}}); $i++) { - foreach my $opt (keys %{$options{default}->{$_}[$i]}) { - if (!defined($self->{option_results}->{$opt}[$i])) { - $self->{option_results}->{$opt}[$i] = $options{default}->{$_}[$i]->{$opt}; - } - } - } - } - } -} - -sub check_options { - my ($self, %options) = @_; - - $self->{hostname} = (defined($self->{option_results}->{hostname})) ? shift(@{$self->{option_results}->{hostname}}) : undef; - $self->{port} = (defined($self->{option_results}->{port})) ? shift(@{$self->{option_results}->{port}}) : 9443; - $self->{proto} = (defined($self->{option_results}->{proto})) ? shift(@{$self->{option_results}->{proto}}) : 'https'; - $self->{username} = (defined($self->{option_results}->{username})) ? shift(@{$self->{option_results}->{username}}) : ''; - $self->{password} = (defined($self->{option_results}->{password})) ? shift(@{$self->{option_results}->{password}}) : ''; - $self->{timeout} = (defined($self->{option_results}->{timeout})) ? shift(@{$self->{option_results}->{timeout}}) : 10; - $self->{proxyurl} = (defined($self->{option_results}->{proxyurl})) ? shift(@{$self->{option_results}->{proxyurl}}) : undef; - $self->{ssl} = (defined($self->{option_results}->{ssl})) ? shift(@{$self->{option_results}->{ssl}}) : 'tlsv1'; - $self->{interval} = (defined($self->{option_results}->{interval})) ? shift(@{$self->{option_results}->{interval}}) : '15min'; - - if (!defined($self->{hostname})) { - $self->{output}->add_option_msg(short_msg => "Need to specify hostname option."); - $self->{output}->option_exit(); - } - - if (!defined($self->{hostname}) || - scalar(@{$self->{option_results}->{hostname}}) == 0) { - return 0; - } - - return 1; -} - -sub build_options_for_httplib { - my ($self, %options) = @_; - - $self->{option_results}->{hostname} = $self->{hostname}; - $self->{option_results}->{timeout} = $self->{timeout}; - $self->{option_results}->{port} = $self->{port}; - $self->{option_results}->{proto} = $self->{proto}; - $self->{option_results}->{proxyurl} = $self->{proxyurl}; - $self->{option_results}->{credentials} = 1; - $self->{option_results}->{username} = $self->{username}; - $self->{option_results}->{password} = $self->{password}; - $self->{option_results}->{ssl} = $self->{ssl}; - $self->{option_results}->{warning_status} = ''; - $self->{option_results}->{critical_status} = ''; -} - -sub settings { - my ($self, %options) = @_; - - $self->build_options_for_httplib(); - $self->{http}->set_options(%{$self->{option_results}}); -} - -sub get_connection_info { - my ($self, %options) = @_; - - return $self->{hostname} . ":" . $self->{port}; -} - -sub get_interval { - my ($self, %options) = @_; - - return $self->{interval}; -} - -sub get { - my ($self, %options) = @_; - - $self->settings(); - - my $response = $self->{http}->request(url_path => $options{path}); - - my $content; - eval { - $content = JSON::XS->new->utf8->decode($response); - }; - if ($@) { - $self->{output}->add_option_msg(short_msg => "Cannot decode json response: $@"); - $self->{output}->option_exit(); - } - - my $return; - if (ref($content) eq 'ARRAY') { - foreach my $uid (@$content) { - if (defined($uid->{errmsg})) { - $self->{output}->add_option_msg(short_msg => "Cannot get data: " . $uid->{errmsg}); - $self->{output}->option_exit(); - } - $return->{$uid->{uid}} = $uid; - } - } else { - if (defined($content->{errmsg})) { - $self->{output}->add_option_msg(short_msg => "Cannot get data: " . $content->{errmsg}); - $self->{output}->option_exit(); - } - $return = $content; - } - - return $return; -} - -1; - -__END__ - -=head1 NAME - -RedisLabs Enterprise Cluster REST API - -=head1 SYNOPSIS - -RedisLabs Enterprise Cluster Rest API custom mode - -=head1 REST API OPTIONS - -=over 8 - -=item B<--interval> - -Time interval from which to retrieve statistics (Default: '15min'). -Can be : '1sec', '10sec', '5min', '15min', -'1hour', '12hour', '1week'. - -=item B<--hostname> - -Cluster hostname. - -=item B<--port> - -Port used (Default: 9443) - -=item B<--proto> - -Specify https if needed (Default: 'https') - -=item B<--username> - -Cluster username. - -=item B<--password> - -Cluster password. - -=item B<--proxyurl> - -Proxy URL if any - -=item B<--timeout> - -Set HTTP timeout - -=item B<--ssl> - -SSL version (Default: tlsv1) - -=back - -=head1 DESCRIPTION - -B. - -=cut +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::restapi::custom::api; + +use strict; +use warnings; +use centreon::plugins::http; +use JSON::XS; + +sub new { + my ($class, %options) = @_; + my $self = {}; + bless $self, $class; + + if (!defined($options{output})) { + print "Class Custom: Need to specify 'output' argument.\n"; + exit 3; + } + if (!defined($options{options})) { + $options{output}->add_option_msg(short_msg => "Class Custom: Need to specify 'options' argument."); + $options{output}->option_exit(); + } + + if (!defined($options{noptions})) { + $options{options}->add_options(arguments => + { + "interval:s@" => { name => 'interval' }, + "hostname:s@" => { name => 'hostname' }, + "port:s@" => { name => 'port' }, + "proto:s@" => { name => 'proto' }, + "username:s@" => { name => 'username' }, + "password:s@" => { name => 'password' }, + "proxyurl:s@" => { name => 'proxyurl' }, + "timeout:s@" => { name => 'timeout' }, + "ssl:s@" => { name => 'ssl' }, + }); + } + $options{options}->add_help(package => __PACKAGE__, sections => 'REST API OPTIONS', once => 1); + + $self->{output} = $options{output}; + $self->{mode} = $options{mode}; + $self->{http} = centreon::plugins::http->new(output => $self->{output}); + + return $self; + +} + +sub set_options { + my ($self, %options) = @_; + + $self->{option_results} = $options{option_results}; +} + +sub set_defaults { + my ($self, %options) = @_; + + foreach (keys %{$options{default}}) { + if ($_ eq $self->{mode}) { + for (my $i = 0; $i < scalar(@{$options{default}->{$_}}); $i++) { + foreach my $opt (keys %{$options{default}->{$_}[$i]}) { + if (!defined($self->{option_results}->{$opt}[$i])) { + $self->{option_results}->{$opt}[$i] = $options{default}->{$_}[$i]->{$opt}; + } + } + } + } + } +} + +sub check_options { + my ($self, %options) = @_; + + $self->{hostname} = (defined($self->{option_results}->{hostname})) ? shift(@{$self->{option_results}->{hostname}}) : undef; + $self->{port} = (defined($self->{option_results}->{port})) ? shift(@{$self->{option_results}->{port}}) : 9443; + $self->{proto} = (defined($self->{option_results}->{proto})) ? shift(@{$self->{option_results}->{proto}}) : 'https'; + $self->{username} = (defined($self->{option_results}->{username})) ? shift(@{$self->{option_results}->{username}}) : ''; + $self->{password} = (defined($self->{option_results}->{password})) ? shift(@{$self->{option_results}->{password}}) : ''; + $self->{timeout} = (defined($self->{option_results}->{timeout})) ? shift(@{$self->{option_results}->{timeout}}) : 10; + $self->{proxyurl} = (defined($self->{option_results}->{proxyurl})) ? shift(@{$self->{option_results}->{proxyurl}}) : undef; + $self->{ssl} = (defined($self->{option_results}->{ssl})) ? shift(@{$self->{option_results}->{ssl}}) : 'tlsv1'; + $self->{interval} = (defined($self->{option_results}->{interval})) ? shift(@{$self->{option_results}->{interval}}) : '15min'; + + if (!defined($self->{hostname})) { + $self->{output}->add_option_msg(short_msg => "Need to specify hostname option."); + $self->{output}->option_exit(); + } + + if (!defined($self->{hostname}) || + scalar(@{$self->{option_results}->{hostname}}) == 0) { + return 0; + } + + return 1; +} + +sub build_options_for_httplib { + my ($self, %options) = @_; + + $self->{option_results}->{hostname} = $self->{hostname}; + $self->{option_results}->{timeout} = $self->{timeout}; + $self->{option_results}->{port} = $self->{port}; + $self->{option_results}->{proto} = $self->{proto}; + $self->{option_results}->{proxyurl} = $self->{proxyurl}; + $self->{option_results}->{credentials} = 1; + $self->{option_results}->{username} = $self->{username}; + $self->{option_results}->{password} = $self->{password}; + $self->{option_results}->{ssl} = $self->{ssl}; + $self->{option_results}->{warning_status} = ''; + $self->{option_results}->{critical_status} = ''; +} + +sub settings { + my ($self, %options) = @_; + + $self->build_options_for_httplib(); + $self->{http}->set_options(%{$self->{option_results}}); +} + +sub get_connection_info { + my ($self, %options) = @_; + + return $self->{hostname} . ":" . $self->{port}; +} + +sub get_interval { + my ($self, %options) = @_; + + return $self->{interval}; +} + +sub get { + my ($self, %options) = @_; + + $self->settings(); + + my $response = $self->{http}->request(url_path => $options{path}); + + my $content; + eval { + $content = JSON::XS->new->utf8->decode($response); + }; + if ($@) { + $self->{output}->add_option_msg(short_msg => "Cannot decode json response: $@"); + $self->{output}->option_exit(); + } + + my $return; + if (ref($content) eq 'ARRAY') { + foreach my $uid (@$content) { + if (defined($uid->{errmsg})) { + $self->{output}->add_option_msg(short_msg => "Cannot get data: " . $uid->{errmsg}); + $self->{output}->option_exit(); + } + $return->{$uid->{uid}} = $uid; + } + } else { + if (defined($content->{errmsg})) { + $self->{output}->add_option_msg(short_msg => "Cannot get data: " . $content->{errmsg}); + $self->{output}->option_exit(); + } + $return = $content; + } + + return $return; +} + +1; + +__END__ + +=head1 NAME + +RedisLabs Enterprise Cluster REST API + +=head1 SYNOPSIS + +RedisLabs Enterprise Cluster Rest API custom mode + +=head1 REST API OPTIONS + +=over 8 + +=item B<--interval> + +Time interval from which to retrieve statistics (Default: '15min'). +Can be : '1sec', '10sec', '5min', '15min', +'1hour', '12hour', '1week'. + +=item B<--hostname> + +Cluster hostname. + +=item B<--port> + +Port used (Default: 9443) + +=item B<--proto> + +Specify https if needed (Default: 'https') + +=item B<--username> + +Cluster username. + +=item B<--password> + +Cluster password. + +=item B<--proxyurl> + +Proxy URL if any + +=item B<--timeout> + +Set HTTP timeout + +=item B<--ssl> + +SSL version (Default: tlsv1) + +=back + +=head1 DESCRIPTION + +B. + +=cut diff --git a/apps/redis/restapi/mode/clusterstats.pm b/apps/redis/restapi/mode/clusterstats.pm index e722cb9b6..0699c85a8 100644 --- a/apps/redis/restapi/mode/clusterstats.pm +++ b/apps/redis/restapi/mode/clusterstats.pm @@ -1,334 +1,334 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package apps::redis::restapi::mode::clusterstats; - -use base qw(centreon::plugins::templates::counter); - -use strict; -use warnings; -use Digest::MD5 qw(md5_hex); - -my $instance_mode; - -sub custom_usage_perfdata { - my ($self, %options) = @_; - - $self->{output}->perfdata_add(label => $self->{result_values}->{perf}, unit => 'B', - value => $self->{result_values}->{used}, - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{result_values}->{label}, total => $self->{result_values}->{total}, cast_int => 1), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{result_values}->{label}, total => $self->{result_values}->{total}, cast_int => 1), - min => 0, max => $self->{result_values}->{total}); -} - -sub custom_usage_threshold { - my ($self, %options) = @_; - - my ($exit, $threshold_value); - $threshold_value = $self->{result_values}->{used}; - $threshold_value = $self->{result_values}->{free} if (defined($instance_mode->{option_results}->{free})); - if ($instance_mode->{option_results}->{units} eq '%') { - $threshold_value = $self->{result_values}->{prct_used}; - $threshold_value = $self->{result_values}->{prct_free} if (defined($instance_mode->{option_results}->{free})); - } - $exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{result_values}->{label}, exit_litteral => 'critical' }, { label => 'warning-' . $self->{result_values}->{label}, exit_litteral => 'warning' } ]); - return $exit; -} - -sub custom_usage_output { - my ($self, %options) = @_; - - my ($used_value, $used_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{used}); - my ($free_value, $free_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{free}); - my ($total_value, $total_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{total}); - - my $msg = sprintf("%s usage: Total: %s Used: %s (%.2f%%) Free: %s (%.2f%%)", $self->{result_values}->{display}, - $total_value . " " . $total_unit, - $used_value . " " . $used_unit, $self->{result_values}->{prct_used}, - $free_value . " " . $free_unit, $self->{result_values}->{prct_free}); - return $msg; -} - -sub custom_usage_calc { - my ($self, %options) = @_; - - $self->{result_values}->{label} = $options{extra_options}->{label}; - $self->{result_values}->{perf} = $options{extra_options}->{perf}; - $self->{result_values}->{display} = $options{extra_options}->{display}; - $self->{result_values}->{free} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{free}}; - $self->{result_values}->{total} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{total}}; - - if ($self->{result_values}->{total} != 0) { - $self->{result_values}->{used} = $self->{result_values}->{total} - $self->{result_values}->{free}; - $self->{result_values}->{prct_used} = $self->{result_values}->{used} * 100 / $self->{result_values}->{total}; - $self->{result_values}->{prct_free} = 100 - $self->{result_values}->{prct_used}; - } else { - $self->{result_values}->{used} = '0'; - $self->{result_values}->{prct_used} = '0'; - $self->{result_values}->{prct_free} = '0'; - } - - return 0; -} - -sub prefix_output { - my ($self, %options) = @_; - - return "Cluster '" . $options{instance_value}->{name} . "' "; -} - -sub set_counters { - my ($self, %options) = @_; - - $self->{maps_counters_type} = [ - { name => 'cluster', type => 1, cb_prefix_output => 'prefix_output', message_multiple => 'All cluster counters are ok' }, - ]; - - $self->{maps_counters}->{cluster} = [ - { label => 'cpu-system', set => { - key_values => [ { name => 'cpu_system' } ], - output_template => 'Cpu system: %.2f %%', - perfdatas => [ - { label => 'cpu_system', value => 'cpu_system_absolute', template => '%.2f', - min => 0, max => 100, unit => '%' }, - ], - } - }, - { label => 'cpu-user', set => { - key_values => [ { name => 'cpu_user' } ], - output_template => 'Cpu user: %.2f %%', - perfdatas => [ - { label => 'cpu_user', value => 'cpu_user_absolute', template => '%.2f', - min => 0, max => 100, unit => '%' }, - ], - } - }, - { label => 'memory', set => { - key_values => [ { name => 'free_memory' }, { name => 'total_memory' } ], - closure_custom_calc => $self->can('custom_usage_calc'), - closure_custom_calc_extra_options => { display => 'Ram', label => 'memory', perf => 'memory', - free => 'free_memory', total => 'total_memory' }, - closure_custom_output => $self->can('custom_usage_output'), - closure_custom_perfdata => $self->can('custom_usage_perfdata'), - closure_custom_threshold_check => $self->can('custom_usage_threshold'), - } - }, - { label => 'persistent-storage', set => { - key_values => [ { name => 'persistent_storage_free' }, { name => 'persistent_storage_size' } ], - closure_custom_calc => $self->can('custom_usage_calc'), - closure_custom_calc_extra_options => { display => 'Persistent storage', label => 'persistent-storage', perf => 'persistent_storage', - free => 'persistent_storage_free', total => 'persistent_storage_size' }, - closure_custom_output => $self->can('custom_usage_output'), - closure_custom_perfdata => $self->can('custom_usage_perfdata'), - closure_custom_threshold_check => $self->can('custom_usage_threshold'), - } - }, - { label => 'ephemeral-storage', set => { - key_values => [ { name => 'ephemeral_storage_free' }, { name => 'ephemeral_storage_size' } ], - closure_custom_calc => $self->can('custom_usage_calc'), - closure_custom_calc_extra_options => { display => 'Ephemeral storage', label => 'ephemeral-storage', perf => 'ephemeral_storage', - free => 'ephemeral_storage_free', total => 'ephemeral_storage_size' }, - closure_custom_output => $self->can('custom_usage_output'), - closure_custom_perfdata => $self->can('custom_usage_perfdata'), - closure_custom_threshold_check => $self->can('custom_usage_threshold'), - } - }, - { label => 'flash-storage', set => { - key_values => [ { name => 'bigstore_free' }, { name => 'bigstore_size' } ], - closure_custom_calc => $self->can('custom_usage_calc'), - closure_custom_calc_extra_options => { display => 'Flash storage', label => 'flash-storage', perf => 'flash_storage', - free => 'bigstore_free', total => 'bigstore_size' }, - closure_custom_output => $self->can('custom_usage_output'), - closure_custom_perfdata => $self->can('custom_usage_perfdata'), - closure_custom_threshold_check => $self->can('custom_usage_threshold'), - } - }, - { label => 'flash-iops', set => { - key_values => [ { name => 'bigstore_iops' } ], - output_template => 'Flash IOPS: %s ops/s', - perfdatas => [ - { label => 'flash_iops', value => 'bigstore_iops_absolute', template => '%s', - min => 0, unit => 'ops/s' }, - ], - } - }, - { label => 'flash-throughput', set => { - key_values => [ { name => 'bigstore_throughput' } ], - output_template => 'Flash throughput: %s %s/s', - output_change_bytes => 1, - perfdatas => [ - { label => 'flash_throughput', value => 'bigstore_throughput_absolute', template => '%s', - min => 0, unit => 'B/s' }, - ], - } - }, - { label => 'connections', set => { - key_values => [ { name => 'conns' } ], - output_template => 'Connections: %s', - perfdatas => [ - { label => 'connections', value => 'conns_absolute', template => '%s', - min => 0 }, - ], - } - }, - { label => 'requests', set => { - key_values => [ { name => 'total_req' } ], - output_template => 'Requests rate: %s ops/s', - perfdatas => [ - { label => 'requests', value => 'total_req_absolute', template => '%s', - min => 0, unit => 'ops/s' }, - ], - } - }, - { label => 'traffic-in', set => { - key_values => [ { name => 'ingress' } ], - output_template => 'Traffic In: %s %s/s', - output_change_bytes => 2, - perfdatas => [ - { label => 'traffic_in', value => 'ingress_absolute', template => '%d', min => 0, unit => 'b/s' }, - ], - }, - }, - { label => 'traffic-out', set => { - key_values => [ { name => 'egress' } ], - output_template => 'Traffic Out: %s %s/s', - output_change_bytes => 2, - perfdatas => [ - { label => 'traffic_out', value => 'egress_absolute', template => '%d', min => 0, unit => 'b/s' }, - ], - }, - }, - ]; -} - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options); - bless $self, $class; - - $self->{version} = '1.0'; - $options{options}->add_options(arguments => - { - "units:s" => { name => 'units', default => '%' }, - "free" => { name => 'free' }, - }); - - return $self; -} - -sub check_options { - my ($self, %options) = @_; - $self->SUPER::check_options(%options); - - $instance_mode = $self; -} - -sub manage_selection { - my ($self, %options) = @_; - - my $result = $options{custom}->get(path => '/v1/cluster/stats/last?interval='.$options{custom}->get_interval()); - my $result2 = $options{custom}->get(path => '/v1/cluster'); - my $result3 = $options{custom}->get(path => '/v1/nodes'); - - my $total_memory = 0; - my $persistent_storage_size = 0; - my $ephemeral_storage_size = 0; - my $bigstore_size = 0; - foreach my $node (keys $result3) { - if (defined($result3->{$node}->{total_memory})) { - $total_memory = $total_memory + $result3->{$node}->{total_memory}; - } - if (defined($result3->{$node}->{persistent_storage_size})) { - $persistent_storage_size = $persistent_storage_size + $result3->{$node}->{persistent_storage_size}; - } - if (defined($result3->{$node}->{ephemeral_storage_size})) { - $ephemeral_storage_size = $ephemeral_storage_size + $result3->{$node}->{ephemeral_storage_size}; - } - if (defined($result3->{$node}->{bigstore_size})) { - $bigstore_size = $bigstore_size + $result3->{$node}->{bigstore_size}; - } - } - - $self->{cluster}->{$result2->{name}} = { - name => $result2->{name}, - cpu_system => $result->{cpu_system} * 100, - cpu_user => $result->{cpu_user} * 100, - free_memory => $result->{free_memory}, - total_memory => $total_memory, - persistent_storage_free => $result->{persistent_storage_free}, - persistent_storage_size => $persistent_storage_size, - ephemeral_storage_free => $result->{ephemeral_storage_free}, - ephemeral_storage_size => $ephemeral_storage_size, - bigstore_free => $result->{bigstore_free}, - bigstore_size => $bigstore_size, - bigstore_iops => $result->{bigstore_iops}, - bigstore_kv_ops => $result->{bigstore_kv_ops}, - bigstore_throughput => $result->{bigstore_throughput}, - conns => $result->{conns}, - total_req => $result->{total_req}, - ingress => $result->{ingress_bytes} * 8, - egress => $result->{egress_bytes} * 8, - }; -} - -1; - -__END__ - -=head1 MODE - -Check RedisLabs Enterprise Cluster statistics. - -=over 8 - -=item B<--filter-counters> - -Only display some counters (regexp can be used). -Example: --filter-counters='^cpu' - -=item B<--units> - -Units of thresholds (Default: '%') ('%', 'B'). - -=item B<--free> - -Thresholds are on free space left. - -=item B<--warning-*> - -Threshold warning. -Can be: 'cpu-system', 'cpu-user', -'requests', 'memory', 'flash-storage', -'persistent-storage', 'ephemeral-storage', -'flash-iops', 'flash-throughput', 'connections', -'traffic-in', 'traffic-out'. - -=item B<--critical-*> - -Threshold critical. -Can be: 'cpu-system', 'cpu-user', -'requests', 'memory', 'flash-storage', -'persistent-storage', 'ephemeral-storage', -'flash-iops', 'flash-throughput', 'connections', -'traffic-in', 'traffic-out'. - -=back - -=cut +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::restapi::mode::clusterstats; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use Digest::MD5 qw(md5_hex); + +my $instance_mode; + +sub custom_usage_perfdata { + my ($self, %options) = @_; + + $self->{output}->perfdata_add(label => $self->{result_values}->{perf}, unit => 'B', + value => $self->{result_values}->{used}, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{result_values}->{label}, total => $self->{result_values}->{total}, cast_int => 1), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{result_values}->{label}, total => $self->{result_values}->{total}, cast_int => 1), + min => 0, max => $self->{result_values}->{total}); +} + +sub custom_usage_threshold { + my ($self, %options) = @_; + + my ($exit, $threshold_value); + $threshold_value = $self->{result_values}->{used}; + $threshold_value = $self->{result_values}->{free} if (defined($instance_mode->{option_results}->{free})); + if ($instance_mode->{option_results}->{units} eq '%') { + $threshold_value = $self->{result_values}->{prct_used}; + $threshold_value = $self->{result_values}->{prct_free} if (defined($instance_mode->{option_results}->{free})); + } + $exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{result_values}->{label}, exit_litteral => 'critical' }, { label => 'warning-' . $self->{result_values}->{label}, exit_litteral => 'warning' } ]); + return $exit; +} + +sub custom_usage_output { + my ($self, %options) = @_; + + my ($used_value, $used_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{used}); + my ($free_value, $free_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{free}); + my ($total_value, $total_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{total}); + + my $msg = sprintf("%s usage: Total: %s Used: %s (%.2f%%) Free: %s (%.2f%%)", $self->{result_values}->{display}, + $total_value . " " . $total_unit, + $used_value . " " . $used_unit, $self->{result_values}->{prct_used}, + $free_value . " " . $free_unit, $self->{result_values}->{prct_free}); + return $msg; +} + +sub custom_usage_calc { + my ($self, %options) = @_; + + $self->{result_values}->{label} = $options{extra_options}->{label}; + $self->{result_values}->{perf} = $options{extra_options}->{perf}; + $self->{result_values}->{display} = $options{extra_options}->{display}; + $self->{result_values}->{free} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{free}}; + $self->{result_values}->{total} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{total}}; + + if ($self->{result_values}->{total} != 0) { + $self->{result_values}->{used} = $self->{result_values}->{total} - $self->{result_values}->{free}; + $self->{result_values}->{prct_used} = $self->{result_values}->{used} * 100 / $self->{result_values}->{total}; + $self->{result_values}->{prct_free} = 100 - $self->{result_values}->{prct_used}; + } else { + $self->{result_values}->{used} = '0'; + $self->{result_values}->{prct_used} = '0'; + $self->{result_values}->{prct_free} = '0'; + } + + return 0; +} + +sub prefix_output { + my ($self, %options) = @_; + + return "Cluster '" . $options{instance_value}->{name} . "' "; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'cluster', type => 1, cb_prefix_output => 'prefix_output', message_multiple => 'All cluster counters are ok' }, + ]; + + $self->{maps_counters}->{cluster} = [ + { label => 'cpu-system', set => { + key_values => [ { name => 'cpu_system' } ], + output_template => 'Cpu system: %.2f %%', + perfdatas => [ + { label => 'cpu_system', value => 'cpu_system_absolute', template => '%.2f', + min => 0, max => 100, unit => '%' }, + ], + } + }, + { label => 'cpu-user', set => { + key_values => [ { name => 'cpu_user' } ], + output_template => 'Cpu user: %.2f %%', + perfdatas => [ + { label => 'cpu_user', value => 'cpu_user_absolute', template => '%.2f', + min => 0, max => 100, unit => '%' }, + ], + } + }, + { label => 'memory', set => { + key_values => [ { name => 'free_memory' }, { name => 'total_memory' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_calc_extra_options => { display => 'Ram', label => 'memory', perf => 'memory', + free => 'free_memory', total => 'total_memory' }, + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + { label => 'persistent-storage', set => { + key_values => [ { name => 'persistent_storage_free' }, { name => 'persistent_storage_size' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_calc_extra_options => { display => 'Persistent storage', label => 'persistent-storage', perf => 'persistent_storage', + free => 'persistent_storage_free', total => 'persistent_storage_size' }, + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + { label => 'ephemeral-storage', set => { + key_values => [ { name => 'ephemeral_storage_free' }, { name => 'ephemeral_storage_size' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_calc_extra_options => { display => 'Ephemeral storage', label => 'ephemeral-storage', perf => 'ephemeral_storage', + free => 'ephemeral_storage_free', total => 'ephemeral_storage_size' }, + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + { label => 'flash-storage', set => { + key_values => [ { name => 'bigstore_free' }, { name => 'bigstore_size' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_calc_extra_options => { display => 'Flash storage', label => 'flash-storage', perf => 'flash_storage', + free => 'bigstore_free', total => 'bigstore_size' }, + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + { label => 'flash-iops', set => { + key_values => [ { name => 'bigstore_iops' } ], + output_template => 'Flash IOPS: %s ops/s', + perfdatas => [ + { label => 'flash_iops', value => 'bigstore_iops_absolute', template => '%s', + min => 0, unit => 'ops/s' }, + ], + } + }, + { label => 'flash-throughput', set => { + key_values => [ { name => 'bigstore_throughput' } ], + output_template => 'Flash throughput: %s %s/s', + output_change_bytes => 1, + perfdatas => [ + { label => 'flash_throughput', value => 'bigstore_throughput_absolute', template => '%s', + min => 0, unit => 'B/s' }, + ], + } + }, + { label => 'connections', set => { + key_values => [ { name => 'conns' } ], + output_template => 'Connections: %s', + perfdatas => [ + { label => 'connections', value => 'conns_absolute', template => '%s', + min => 0 }, + ], + } + }, + { label => 'requests', set => { + key_values => [ { name => 'total_req' } ], + output_template => 'Requests rate: %s ops/s', + perfdatas => [ + { label => 'requests', value => 'total_req_absolute', template => '%s', + min => 0, unit => 'ops/s' }, + ], + } + }, + { label => 'traffic-in', set => { + key_values => [ { name => 'ingress' } ], + output_template => 'Traffic In: %s %s/s', + output_change_bytes => 2, + perfdatas => [ + { label => 'traffic_in', value => 'ingress_absolute', template => '%d', min => 0, unit => 'b/s' }, + ], + }, + }, + { label => 'traffic-out', set => { + key_values => [ { name => 'egress' } ], + output_template => 'Traffic Out: %s %s/s', + output_change_bytes => 2, + perfdatas => [ + { label => 'traffic_out', value => 'egress_absolute', template => '%d', min => 0, unit => 'b/s' }, + ], + }, + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "units:s" => { name => 'units', default => '%' }, + "free" => { name => 'free' }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; +} + +sub manage_selection { + my ($self, %options) = @_; + + my $result = $options{custom}->get(path => '/v1/cluster/stats/last?interval='.$options{custom}->get_interval()); + my $result2 = $options{custom}->get(path => '/v1/cluster'); + my $result3 = $options{custom}->get(path => '/v1/nodes'); + + my $total_memory = 0; + my $persistent_storage_size = 0; + my $ephemeral_storage_size = 0; + my $bigstore_size = 0; + foreach my $node (keys $result3) { + if (defined($result3->{$node}->{total_memory})) { + $total_memory = $total_memory + $result3->{$node}->{total_memory}; + } + if (defined($result3->{$node}->{persistent_storage_size})) { + $persistent_storage_size = $persistent_storage_size + $result3->{$node}->{persistent_storage_size}; + } + if (defined($result3->{$node}->{ephemeral_storage_size})) { + $ephemeral_storage_size = $ephemeral_storage_size + $result3->{$node}->{ephemeral_storage_size}; + } + if (defined($result3->{$node}->{bigstore_size})) { + $bigstore_size = $bigstore_size + $result3->{$node}->{bigstore_size}; + } + } + + $self->{cluster}->{$result2->{name}} = { + name => $result2->{name}, + cpu_system => $result->{cpu_system} * 100, + cpu_user => $result->{cpu_user} * 100, + free_memory => $result->{free_memory}, + total_memory => $total_memory, + persistent_storage_free => $result->{persistent_storage_free}, + persistent_storage_size => $persistent_storage_size, + ephemeral_storage_free => $result->{ephemeral_storage_free}, + ephemeral_storage_size => $ephemeral_storage_size, + bigstore_free => $result->{bigstore_free}, + bigstore_size => $bigstore_size, + bigstore_iops => $result->{bigstore_iops}, + bigstore_kv_ops => $result->{bigstore_kv_ops}, + bigstore_throughput => $result->{bigstore_throughput}, + conns => $result->{conns}, + total_req => $result->{total_req}, + ingress => $result->{ingress_bytes} * 8, + egress => $result->{egress_bytes} * 8, + }; +} + +1; + +__END__ + +=head1 MODE + +Check RedisLabs Enterprise Cluster statistics. + +=over 8 + +=item B<--filter-counters> + +Only display some counters (regexp can be used). +Example: --filter-counters='^cpu' + +=item B<--units> + +Units of thresholds (Default: '%') ('%', 'B'). + +=item B<--free> + +Thresholds are on free space left. + +=item B<--warning-*> + +Threshold warning. +Can be: 'cpu-system', 'cpu-user', +'requests', 'memory', 'flash-storage', +'persistent-storage', 'ephemeral-storage', +'flash-iops', 'flash-throughput', 'connections', +'traffic-in', 'traffic-out'. + +=item B<--critical-*> + +Threshold critical. +Can be: 'cpu-system', 'cpu-user', +'requests', 'memory', 'flash-storage', +'persistent-storage', 'ephemeral-storage', +'flash-iops', 'flash-throughput', 'connections', +'traffic-in', 'traffic-out'. + +=back + +=cut diff --git a/apps/redis/restapi/mode/databasesstats.pm b/apps/redis/restapi/mode/databasesstats.pm index c271338c3..0ac53b24a 100644 --- a/apps/redis/restapi/mode/databasesstats.pm +++ b/apps/redis/restapi/mode/databasesstats.pm @@ -1,610 +1,610 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package apps::redis::restapi::mode::databasesstats; - -use base qw(centreon::plugins::templates::counter); - -use strict; -use warnings; -use Digest::MD5 qw(md5_hex); - -my $instance_mode; - -sub custom_usage_perfdata { - my ($self, %options) = @_; - - $self->{output}->perfdata_add(label => $self->{result_values}->{perf}, unit => 'B', - value => $self->{result_values}->{used}, - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{result_values}->{label}, total => $self->{result_values}->{total}, cast_int => 1), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{result_values}->{label}, total => $self->{result_values}->{total}, cast_int => 1), - min => 0, max => $self->{result_values}->{total}); -} - -sub custom_usage_threshold { - my ($self, %options) = @_; - - my ($exit, $threshold_value); - $threshold_value = $self->{result_values}->{used}; - $threshold_value = $self->{result_values}->{free} if (defined($instance_mode->{option_results}->{free})); - if ($instance_mode->{option_results}->{units} eq '%') { - $threshold_value = $self->{result_values}->{prct_used}; - $threshold_value = $self->{result_values}->{prct_free} if (defined($instance_mode->{option_results}->{free})); - } - $exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{result_values}->{label}, exit_litteral => 'critical' }, { label => 'warning-' . $self->{result_values}->{label}, exit_litteral => 'warning' } ]); - return $exit; -} - -sub custom_usage_output { - my ($self, %options) = @_; - - my ($used_value, $used_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{used}); - my ($free_value, $free_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{free}); - my ($total_value, $total_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{total}); - - my $msg = sprintf("%s usage: Total: %s Used: %s (%.2f%%) Free: %s (%.2f%%)", $self->{result_values}->{display}, - $total_value . " " . $total_unit, - $used_value . " " . $used_unit, $self->{result_values}->{prct_used}, - $free_value . " " . $free_unit, $self->{result_values}->{prct_free}); - return $msg; -} - -sub custom_usage_calc { - my ($self, %options) = @_; - - $self->{result_values}->{label} = $options{extra_options}->{label}; - $self->{result_values}->{perf} = $options{extra_options}->{perf}; - $self->{result_values}->{display} = $options{extra_options}->{display}; - $self->{result_values}->{used} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{used}}; - $self->{result_values}->{total} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{total}}; - - if ($self->{result_values}->{total} != 0) { - $self->{result_values}->{free} = $self->{result_values}->{total} - $self->{result_values}->{used}; - $self->{result_values}->{prct_used} = $self->{result_values}->{used} * 100 / $self->{result_values}->{total}; - $self->{result_values}->{prct_free} = 100 - $self->{result_values}->{prct_used}; - } else { - $self->{result_values}->{used} = '0'; - $self->{result_values}->{prct_used} = '0'; - $self->{result_values}->{prct_free} = '0'; - } - - return 0; -} - -sub custom_status_threshold { - my ($self, %options) = @_; - my $status = 'ok'; - my $message; - - eval { - local $SIG{__WARN__} = sub { $message = $_[0]; }; - local $SIG{__DIE__} = sub { $message = $_[0]; }; - - if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && - eval "$instance_mode->{option_results}->{critical_status}") { - $status = 'critical'; - } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && - eval "$instance_mode->{option_results}->{warning_status}") { - $status = 'warning'; - } - }; - if (defined($message)) { - $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); - } - - return $status; -} - -sub custom_status_output { - my ($self, %options) = @_; - - my $msg = sprintf("Status is '%s' [type: %s] [shard list: %s] [backup status: %s] [export status: %s] [import status: %s]", - $self->{result_values}->{status}, - $self->{result_values}->{type}, - $self->{result_values}->{shard_list}, - $self->{result_values}->{backup_status}, - $self->{result_values}->{export_status}, - $self->{result_values}->{import_status}); - return $msg; -} - -sub custom_status_calc { - my ($self, %options) = @_; - - $self->{result_values}->{type} = $options{new_datas}->{$self->{instance} . '_type'}; - $self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_status'}; - $self->{result_values}->{backup_status} = $options{new_datas}->{$self->{instance} . '_backup_status'}; - $self->{result_values}->{export_status} = $options{new_datas}->{$self->{instance} . '_export_status'}; - $self->{result_values}->{import_status} = $options{new_datas}->{$self->{instance} . '_import_status'}; - $self->{result_values}->{shard_list} = $options{new_datas}->{$self->{instance} . '_shard_list'}; - $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'}; - return 0; -} - -sub custom_cpu_output { - my ($self, %options) = @_; - - my $msg = sprintf("%s CPU usage (user/system): %s/%s %%", - $self->{result_values}->{cpu}, - $self->{result_values}->{user}, - $self->{result_values}->{system}); - return $msg; -} - -sub custom_cpu_calc { - my ($self, %options) = @_; - - $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{display}}; - $self->{result_values}->{cpu} = $options{extra_options}->{cpu}; - $self->{result_values}->{user} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{user}}; - $self->{result_values}->{system} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{system}}; - return 0; -} - -sub custom_operations_output { - my ($self, %options) = @_; - - my $msg = sprintf("%s operations rates (hits/misses/requests/responses): %s/%s/%s/%s ops/s", - $self->{result_values}->{operation}, - $self->{result_values}->{hits}, - $self->{result_values}->{misses}, - $self->{result_values}->{req}, - $self->{result_values}->{res}); - return $msg; -} - -sub custom_operations_calc { - my ($self, %options) = @_; - - $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{display}}; - $self->{result_values}->{operation} = $options{extra_options}->{operation}; - $self->{result_values}->{hits} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{hits}}; - $self->{result_values}->{misses} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{misses}}; - $self->{result_values}->{req} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{req}}; - $self->{result_values}->{res} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{res}}; - return 0; -} - -sub prefix_output { - my ($self, %options) = @_; - - return "Database '" . $options{instance_value}->{display} . "' "; -} - -sub set_counters { - my ($self, %options) = @_; - - $self->{maps_counters_type} = [ - { name => 'databases', type => 1, cb_prefix_output => 'prefix_output', message_multiple => 'All databases counters are ok' }, - ]; - - $self->{maps_counters}->{databases} = [ - { label => 'status', threshold => 0, set => { - key_values => [ { name => 'status' }, { name => 'type' }, { name => 'backup_status' }, - { name => 'export_status' }, { name => 'import_status' }, { name => 'shard_list' }, { name => 'display' } ], - closure_custom_calc => $self->can('custom_status_calc'), - closure_custom_output => $self->can('custom_status_output'), - closure_custom_perfdata => sub { return 0; }, - closure_custom_threshold_check => $self->can('custom_status_threshold'), - } - }, - { label => 'total-cpu', set => { - key_values => [ { name => 'shard_cpu_user' }, { name => 'shard_cpu_system' }, { name => 'display' } ], - closure_custom_calc => $self->can('custom_cpu_calc'), - closure_custom_calc_extra_options => { cpu => 'Total', user => 'shard_cpu_user', - system => 'shard_cpu_system', display => 'display' }, - closure_custom_output => $self->can('custom_cpu_output'), - perfdatas => [ - { label => 'total_cpu_user', value => 'user', template => '%s', - min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, - { label => 'total_cpu_system', value => 'system', template => '%s', - min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, - ], - } - }, - { label => 'fork-cpu', set => { - key_values => [ { name => 'fork_cpu_user' }, { name => 'fork_cpu_system' }, { name => 'display' } ], - closure_custom_calc => $self->can('custom_cpu_calc'), - closure_custom_calc_extra_options => { cpu => 'Fork', user => 'fork_cpu_user', - system => 'fork_cpu_system', display => 'display' }, - closure_custom_output => $self->can('custom_cpu_output'), - perfdatas => [ - { label => 'fork_cpu_user', value => 'user', template => '%s', - min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, - { label => 'fork_cpu_system', value => 'system', template => '%s', - min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, - ], - } - }, - { label => 'main-thread-cpu', set => { - key_values => [ { name => 'main_thread_cpu_user' }, { name => 'main_thread_cpu_system' }, { name => 'display' } ], - closure_custom_calc => $self->can('custom_cpu_calc'), - closure_custom_calc_extra_options => { cpu => 'Main thread', user => 'main_thread_cpu_user', - system => 'main_thread_cpu_system', display => 'display' }, - closure_custom_output => $self->can('custom_cpu_output'), - perfdatas => [ - { label => 'main_thread_cpu_user', value => 'user', template => '%s', - min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, - { label => 'main_thread_cpu_system', value => 'system', template => '%s', - min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, - ], - } - }, - { label => 'memory', set => { - key_values => [ { name => 'used_memory' }, { name => 'memory_size' } ], - closure_custom_calc => $self->can('custom_usage_calc'), - closure_custom_calc_extra_options => { display => 'Memory', label => 'memory', perf => 'memory', - used => 'used_memory', total => 'memory_size' }, - closure_custom_output => $self->can('custom_usage_output'), - closure_custom_perfdata => $self->can('custom_usage_perfdata'), - closure_custom_threshold_check => $self->can('custom_usage_threshold'), - } - }, - { label => 'mem-frag-ratio', set => { - key_values => [ { name => 'mem_frag_ratio' }, { name => 'display' } ], - output_template => 'Memory fragmentation ratio: %s', - perfdatas => [ - { label => 'mem_frag_ratio', value => 'mem_frag_ratio_absolute', template => '%s', - min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'connections', set => { - key_values => [ { name => 'conns' }, { name => 'display' } ], - output_template => 'Connections: %s', - perfdatas => [ - { label => 'connections', value => 'conns_absolute', template => '%s', - min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'total-rates', set => { - key_values => [ { name => 'total_hits' }, { name => 'total_misses' }, - { name => 'total_req' }, { name => 'total_res' }, { name => 'display' } ], - closure_custom_calc => $self->can('custom_operations_calc'), - closure_custom_calc_extra_options => { operation => 'Total', hits => 'total_hits', misses => 'total_misses', - req => 'total_req', res => 'total_res', display => 'display' }, - closure_custom_output => $self->can('custom_operations_output'), - perfdatas => [ - { label => 'total_hits', value => 'hits', template => '%s', - min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, - { label => 'total_misses', value => 'misses', template => '%s', - min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, - { label => 'total_req', value => 'req', template => '%s', - min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, - { label => 'total_res', value => 'res', template => '%s', - min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, - ], - } - }, - { label => 'latency', set => { - key_values => [ { name => 'avg_latency' }, { name => 'display' } ], - output_template => 'Average latency: %.2f ms', - perfdatas => [ - { label => 'latency', value => 'avg_latency_absolute', template => '%.2f', - min => 0, unit => 'ms', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'other-rates', set => { - key_values => [ { name => 'other_hits' }, { name => 'other_misses' }, - { name => 'other_req' }, { name => 'other_res' }, { name => 'display' } ], - closure_custom_calc => $self->can('custom_operations_calc'), - closure_custom_calc_extra_options => { operation => 'Other', hits => 'other_hits', misses => 'other_misses', - req => 'other_req', res => 'other_res', display => 'display' }, - closure_custom_output => $self->can('custom_operations_output'), - perfdatas => [ - { label => 'other_req', value => 'req', template => '%s', - min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, - { label => 'other_res', value => 'res', template => '%s', - min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, - ], - } - }, - { label => 'other-latency', set => { - key_values => [ { name => 'avg_other_latency' }, { name => 'display' } ], - output_template => 'Other latency: %.2f ms', - perfdatas => [ - { label => 'other_latency', value => 'avg_other_latency_absolute', template => '%.2f', - min => 0, unit => 'ms', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'keys', set => { - key_values => [ { name => 'no_of_keys' }, { name => 'display' } ], - output_template => 'Total keys: %s', - perfdatas => [ - { label => 'keys', value => 'no_of_keys_absolute', template => '%s', - min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'evicted-objects', set => { - key_values => [ { name => 'evicted_objects' }, { name => 'display' } ], - output_template => 'Evicted objects rate: %s evictions/sec', - perfdatas => [ - { label => 'evicted_objects', value => 'evicted_objects_absolute', template => '%s', - min => 0, unit => 'evictions/sec', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'expired-objects', set => { - key_values => [ { name => 'expired_objects' }, { name => 'display' } ], - output_template => 'Expired objects rate: %s expirations/sec', - perfdatas => [ - { label => 'expired_objects', value => 'expired_objects_absolute', template => '%s', - min => 0, unit => 'expirations/sec', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'read-rates', set => { - key_values => [ { name => 'read_hits' }, { name => 'read_misses' }, - { name => 'read_req' }, { name => 'read_res' }, { name => 'display' } ], - closure_custom_calc => $self->can('custom_operations_calc'), - closure_custom_calc_extra_options => { operation => 'Read', hits => 'read_hits', misses => 'read_misses', - req => 'read_req', res => 'read_res', display => 'display' }, - closure_custom_output => $self->can('custom_operations_output'), - perfdatas => [ - { label => 'read_hits', value => 'hits', template => '%s', - min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, - { label => 'read_misses', value => 'misses', template => '%s', - min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, - { label => 'read_req', value => 'req', template => '%s', - min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, - { label => 'read_res', value => 'res', template => '%s', - min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, - ], - } - }, - { label => 'read-latency', set => { - key_values => [ { name => 'avg_read_latency' }, { name => 'display' } ], - output_template => 'Read latency: %.2f ms', - perfdatas => [ - { label => 'read_latency', value => 'avg_read_latency_absolute', template => '%.2f', - min => 0, unit => 'ms', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'write-rates', set => { - key_values => [ { name => 'write_hits' }, { name => 'write_misses' }, - { name => 'write_req' }, { name => 'write_res' }, { name => 'display' } ], - closure_custom_calc => $self->can('custom_operations_calc'), - closure_custom_calc_extra_options => { operation => 'Write', hits => 'write_hits', misses => 'write_misses', - req => 'write_req', res => 'write_res', display => 'display' }, - closure_custom_output => $self->can('custom_operations_output'), - perfdatas => [ - { label => 'write_hits', value => 'hits', template => '%s', - min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, - { label => 'write_misses', value => 'misses', template => '%s', - min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, - { label => 'write_req', value => 'req', template => '%s', - min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, - { label => 'write_res', value => 'res', template => '%s', - min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, - ], - } - }, - { label => 'write-latency', set => { - key_values => [ { name => 'avg_write_latency' }, { name => 'display' } ], - output_template => 'Write latency: %.2f ms', - perfdatas => [ - { label => 'write_latency', value => 'avg_write_latency_absolute', template => '%.2f', - min => 0, unit => 'ms', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'traffic-in', set => { - key_values => [ { name => 'ingress' }, { name => 'display' } ], - output_template => 'Traffic In: %s %s/s', - output_change_bytes => 2, - perfdatas => [ - { label => 'traffic_in', value => 'ingress_absolute', template => '%d', - min => 0, unit => 'b/s', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - }, - }, - { label => 'traffic-out', set => { - key_values => [ { name => 'egress' }, { name => 'display' } ], - output_template => 'Traffic Out: %s %s/s', - output_change_bytes => 2, - perfdatas => [ - { label => 'traffic_out', value => 'egress_absolute', template => '%d', - min => 0, unit => 'b/s', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - }, - }, - ]; -} - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options); - bless $self, $class; - - $self->{version} = '1.0'; - $options{options}->add_options(arguments => - { - "filter-database:s" => { name => 'filter_database' }, - "units:s" => { name => 'units', default => '%' }, - "free" => { name => 'free' }, - "warning-status:s" => { name => 'warning_status', default => '' }, - "critical-status:s" => { name => 'critical_status', default => '%{status} =~ /creation-failed/i | %{backup_status} =~ /failed/i | - %{export_status} =~ /failed/i | %{import_status} =~ /failed/i' }, - }); - - return $self; -} - -sub check_options { - my ($self, %options) = @_; - $self->SUPER::check_options(%options); - - $instance_mode = $self; - $self->change_macros(); -} - -sub change_macros { - my ($self, %options) = @_; - - foreach (('warning_status', 'critical_status')) { - if (defined($self->{option_results}->{$_})) { - $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; - } - } -} - -sub manage_selection { - my ($self, %options) = @_; - - my $result = $options{custom}->get(path => '/v1/bdbs/stats/last?interval='.$options{custom}->get_interval()); - my $result2 = $options{custom}->get(path => '/v1/bdbs'); - - foreach my $database (keys $result) { - if (defined($self->{option_results}->{filter_database}) && $self->{option_results}->{filter_database} ne '' && - $database !~ /$self->{option_results}->{filter_database}/) { - $self->{output}->output_add(long_msg => "skipping database '" . $database . "': no matching filter.", debug => 1); - next; - } - - my $shard_list = '-'; - if (@{$result2->{$database}->{shard_list}}) { - $shard_list = join(", ", @{$result2->{$database}->{shard_list}}); - } - - $self->{databases}->{$database} = { - display => $result2->{$database}->{name}, - status => defined($result2->{$database}->{status}) ? $result2->{$database}->{status} : '-', - type => defined($result2->{$database}->{type}) ? $result2->{$database}->{type} : '-', - backup_status => defined($result2->{$database}->{backup_status}) ? $result2->{$database}->{backup_status} : '-', - export_status => defined($result2->{$database}->{export_status}) ? $result2->{$database}->{export_status} : '-', - import_status => defined($result2->{$database}->{import_status}) ? $result2->{$database}->{import_status} : '-', - shard_list => $shard_list, - shard_cpu_user => $result->{$database}->{shard_cpu_user} * 100, - shard_cpu_system => $result->{$database}->{shard_cpu_system} * 100, - main_thread_cpu_user => $result->{$database}->{main_thread_cpu_user} * 100, - main_thread_cpu_system => $result->{$database}->{main_thread_cpu_system} * 100, - fork_cpu_user => $result->{$database}->{fork_cpu_user} * 100, - fork_cpu_system => $result->{$database}->{fork_cpu_system} * 100, - used_memory => $result->{$database}->{used_memory}, - memory_size => $result2->{$database}->{memory_size}, - mem_frag_ratio => $result->{$database}->{mem_frag_ratio}, - conns => $result->{$database}->{conns}, - total_req => defined($result->{$database}->{total_req}) ? $result->{$database}->{total_req} : $result->{$database}->{instantaneous_ops_per_sec}, - total_res => $result->{$database}->{total_res}, - total_hits => $result->{$database}->{read_hits} + $result->{$database}->{write_hits}, - total_misses => $result->{$database}->{read_misses} + $result->{$database}->{write_misses}, - avg_latency => defined($result2->{$database}->{avg_latency}) ? $result->{$database}->{avg_latency} * 1000 : '0', - other_req => $result->{$database}->{other_req}, - other_res => $result->{$database}->{other_res}, - other_hits => '-', - other_misses => '-', - avg_other_latency => defined($result2->{$database}->{avg_other_latency}) ? $result->{$database}->{avg_other_latency} * 1000 : '0', - no_of_keys => $result->{$database}->{no_of_keys}, - evicted_objects => $result->{$database}->{evicted_objects}, - expired_objects => $result->{$database}->{expired_objects}, - read_hits => $result->{$database}->{read_hits}, - read_misses => $result->{$database}->{read_misses}, - read_req => $result->{$database}->{read_req}, - read_res => $result->{$database}->{read_res}, - write_hits => $result->{$database}->{write_hits}, - write_misses => $result->{$database}->{write_misses}, - write_req => $result->{$database}->{write_req}, - write_res => $result->{$database}->{write_res}, - avg_read_latency => defined($result2->{$database}->{avg_read_latency}) ? $result->{$database}->{avg_read_latency} * 1000 : '0', - avg_write_latency => defined($result2->{$database}->{avg_write_latency}) ? $result->{$database}->{avg_write_latency} * 1000 : '0', - ingress => $result->{$database}->{ingress_bytes} * 8, - egress => $result->{$database}->{egress_bytes} * 8, - }; - - if (scalar(keys %{$self->{databases}}) <= 0) { - $self->{output}->add_option_msg(short_msg => 'No databases detected, check your filter ? '); - $self->{output}->option_exit(); - } - } -} - -1; - -__END__ - -=head1 MODE - -Check RedisLabs Enterprise Cluster databases statistics. - -=over 8 - -=item B<--filter-counters> - -Only display some counters (regexp can be used). -Example: --filter-counters='rate|latency' - -=item B<--warning-status> - -Set warning threshold for status. -Can used special variables like: %{status}, %{type}, -%{backup_status}, %{export_status}, %{shard_list}. -'status' can be: 'pending', 'active', 'active-change-pending', -'delete-pending', 'import-pending', 'creation-failed', 'recovery'. -'type' can be: 'redis', 'memcached'. -'backup_status' can be: 'exporting', 'succeeded', 'failed'. -'export_status' can be: 'exporting', 'succeeded', 'failed'. -'import_status' can be: 'idle', 'initializing', 'importing', -'succeeded', 'failed'. - -=item B<--critical-status> - -Set critical threshold for status (Default: '%{status} =~ /creation-failed/i | -%{backup_status} =~ /failed/i | %{export_status} =~ /failed/i | -%{import_status} =~ /failed/i'). -Can used special variables like: %{status}, %{type}, -%{backup_status}, %{export_status}, %{shard_list}. -'status' can be: 'pending', 'active', 'active-change-pending', -'delete-pending', 'import-pending', 'creation-failed', 'recovery'. -'type' can be: 'redis', 'memcached'. -'backup_status' can be: 'exporting', 'succeeded', 'failed'. -'' can be: 'exporting', 'succeeded', 'failed'. -'import_status' can be: 'idle', 'initializing', 'importing', -'succeeded', 'failed'. - -=item B<--warning-*> - -Threshold warning. -Can be: 'total-cpu', 'fork-cpu', 'main-thread-cpu', -'memory', 'mem-frag-ratio', 'connections', -'total-rates', 'latency', 'other-rates', 'other-latency', -'keys', 'evicted-objects', 'expired-objects', -'read-rates', 'read-latency', -'write-rates', 'write-latency', -'traffic-in', 'traffic-out'. - -=item B<--critical-*> - -Threshold critical. -Can be: 'total-cpu', 'fork-cpu', 'main-thread-cpu', -'memory', 'mem-frag-ratio', 'connections', -'total-rates', 'latency', 'other-rates', 'other-latency', -'keys', 'evicted-objects', 'expired-objects', -'read-rates', 'read-latency', -'write-rates', 'write-latency', -'traffic-in', 'traffic-out'. - -=back - -=cut +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::restapi::mode::databasesstats; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use Digest::MD5 qw(md5_hex); + +my $instance_mode; + +sub custom_usage_perfdata { + my ($self, %options) = @_; + + $self->{output}->perfdata_add(label => $self->{result_values}->{perf}, unit => 'B', + value => $self->{result_values}->{used}, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{result_values}->{label}, total => $self->{result_values}->{total}, cast_int => 1), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{result_values}->{label}, total => $self->{result_values}->{total}, cast_int => 1), + min => 0, max => $self->{result_values}->{total}); +} + +sub custom_usage_threshold { + my ($self, %options) = @_; + + my ($exit, $threshold_value); + $threshold_value = $self->{result_values}->{used}; + $threshold_value = $self->{result_values}->{free} if (defined($instance_mode->{option_results}->{free})); + if ($instance_mode->{option_results}->{units} eq '%') { + $threshold_value = $self->{result_values}->{prct_used}; + $threshold_value = $self->{result_values}->{prct_free} if (defined($instance_mode->{option_results}->{free})); + } + $exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{result_values}->{label}, exit_litteral => 'critical' }, { label => 'warning-' . $self->{result_values}->{label}, exit_litteral => 'warning' } ]); + return $exit; +} + +sub custom_usage_output { + my ($self, %options) = @_; + + my ($used_value, $used_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{used}); + my ($free_value, $free_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{free}); + my ($total_value, $total_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{total}); + + my $msg = sprintf("%s usage: Total: %s Used: %s (%.2f%%) Free: %s (%.2f%%)", $self->{result_values}->{display}, + $total_value . " " . $total_unit, + $used_value . " " . $used_unit, $self->{result_values}->{prct_used}, + $free_value . " " . $free_unit, $self->{result_values}->{prct_free}); + return $msg; +} + +sub custom_usage_calc { + my ($self, %options) = @_; + + $self->{result_values}->{label} = $options{extra_options}->{label}; + $self->{result_values}->{perf} = $options{extra_options}->{perf}; + $self->{result_values}->{display} = $options{extra_options}->{display}; + $self->{result_values}->{used} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{used}}; + $self->{result_values}->{total} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{total}}; + + if ($self->{result_values}->{total} != 0) { + $self->{result_values}->{free} = $self->{result_values}->{total} - $self->{result_values}->{used}; + $self->{result_values}->{prct_used} = $self->{result_values}->{used} * 100 / $self->{result_values}->{total}; + $self->{result_values}->{prct_free} = 100 - $self->{result_values}->{prct_used}; + } else { + $self->{result_values}->{used} = '0'; + $self->{result_values}->{prct_used} = '0'; + $self->{result_values}->{prct_free} = '0'; + } + + return 0; +} + +sub custom_status_threshold { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && + eval "$instance_mode->{option_results}->{critical_status}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && + eval "$instance_mode->{option_results}->{warning_status}") { + $status = 'warning'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_status_output { + my ($self, %options) = @_; + + my $msg = sprintf("Status is '%s' [type: %s] [shard list: %s] [backup status: %s] [export status: %s] [import status: %s]", + $self->{result_values}->{status}, + $self->{result_values}->{type}, + $self->{result_values}->{shard_list}, + $self->{result_values}->{backup_status}, + $self->{result_values}->{export_status}, + $self->{result_values}->{import_status}); + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{type} = $options{new_datas}->{$self->{instance} . '_type'}; + $self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_status'}; + $self->{result_values}->{backup_status} = $options{new_datas}->{$self->{instance} . '_backup_status'}; + $self->{result_values}->{export_status} = $options{new_datas}->{$self->{instance} . '_export_status'}; + $self->{result_values}->{import_status} = $options{new_datas}->{$self->{instance} . '_import_status'}; + $self->{result_values}->{shard_list} = $options{new_datas}->{$self->{instance} . '_shard_list'}; + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'}; + return 0; +} + +sub custom_cpu_output { + my ($self, %options) = @_; + + my $msg = sprintf("%s CPU usage (user/system): %s/%s %%", + $self->{result_values}->{cpu}, + $self->{result_values}->{user}, + $self->{result_values}->{system}); + return $msg; +} + +sub custom_cpu_calc { + my ($self, %options) = @_; + + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{display}}; + $self->{result_values}->{cpu} = $options{extra_options}->{cpu}; + $self->{result_values}->{user} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{user}}; + $self->{result_values}->{system} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{system}}; + return 0; +} + +sub custom_operations_output { + my ($self, %options) = @_; + + my $msg = sprintf("%s operations rates (hits/misses/requests/responses): %s/%s/%s/%s ops/s", + $self->{result_values}->{operation}, + $self->{result_values}->{hits}, + $self->{result_values}->{misses}, + $self->{result_values}->{req}, + $self->{result_values}->{res}); + return $msg; +} + +sub custom_operations_calc { + my ($self, %options) = @_; + + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{display}}; + $self->{result_values}->{operation} = $options{extra_options}->{operation}; + $self->{result_values}->{hits} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{hits}}; + $self->{result_values}->{misses} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{misses}}; + $self->{result_values}->{req} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{req}}; + $self->{result_values}->{res} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{res}}; + return 0; +} + +sub prefix_output { + my ($self, %options) = @_; + + return "Database '" . $options{instance_value}->{display} . "' "; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'databases', type => 1, cb_prefix_output => 'prefix_output', message_multiple => 'All databases counters are ok' }, + ]; + + $self->{maps_counters}->{databases} = [ + { label => 'status', threshold => 0, set => { + key_values => [ { name => 'status' }, { name => 'type' }, { name => 'backup_status' }, + { name => 'export_status' }, { name => 'import_status' }, { name => 'shard_list' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_status_calc'), + closure_custom_output => $self->can('custom_status_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + { label => 'total-cpu', set => { + key_values => [ { name => 'shard_cpu_user' }, { name => 'shard_cpu_system' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_cpu_calc'), + closure_custom_calc_extra_options => { cpu => 'Total', user => 'shard_cpu_user', + system => 'shard_cpu_system', display => 'display' }, + closure_custom_output => $self->can('custom_cpu_output'), + perfdatas => [ + { label => 'total_cpu_user', value => 'user', template => '%s', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, + { label => 'total_cpu_system', value => 'system', template => '%s', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, + ], + } + }, + { label => 'fork-cpu', set => { + key_values => [ { name => 'fork_cpu_user' }, { name => 'fork_cpu_system' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_cpu_calc'), + closure_custom_calc_extra_options => { cpu => 'Fork', user => 'fork_cpu_user', + system => 'fork_cpu_system', display => 'display' }, + closure_custom_output => $self->can('custom_cpu_output'), + perfdatas => [ + { label => 'fork_cpu_user', value => 'user', template => '%s', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, + { label => 'fork_cpu_system', value => 'system', template => '%s', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, + ], + } + }, + { label => 'main-thread-cpu', set => { + key_values => [ { name => 'main_thread_cpu_user' }, { name => 'main_thread_cpu_system' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_cpu_calc'), + closure_custom_calc_extra_options => { cpu => 'Main thread', user => 'main_thread_cpu_user', + system => 'main_thread_cpu_system', display => 'display' }, + closure_custom_output => $self->can('custom_cpu_output'), + perfdatas => [ + { label => 'main_thread_cpu_user', value => 'user', template => '%s', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, + { label => 'main_thread_cpu_system', value => 'system', template => '%s', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, + ], + } + }, + { label => 'memory', set => { + key_values => [ { name => 'used_memory' }, { name => 'memory_size' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_calc_extra_options => { display => 'Memory', label => 'memory', perf => 'memory', + used => 'used_memory', total => 'memory_size' }, + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + { label => 'mem-frag-ratio', set => { + key_values => [ { name => 'mem_frag_ratio' }, { name => 'display' } ], + output_template => 'Memory fragmentation ratio: %s', + perfdatas => [ + { label => 'mem_frag_ratio', value => 'mem_frag_ratio_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'connections', set => { + key_values => [ { name => 'conns' }, { name => 'display' } ], + output_template => 'Connections: %s', + perfdatas => [ + { label => 'connections', value => 'conns_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'total-rates', set => { + key_values => [ { name => 'total_hits' }, { name => 'total_misses' }, + { name => 'total_req' }, { name => 'total_res' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_operations_calc'), + closure_custom_calc_extra_options => { operation => 'Total', hits => 'total_hits', misses => 'total_misses', + req => 'total_req', res => 'total_res', display => 'display' }, + closure_custom_output => $self->can('custom_operations_output'), + perfdatas => [ + { label => 'total_hits', value => 'hits', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + { label => 'total_misses', value => 'misses', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + { label => 'total_req', value => 'req', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + { label => 'total_res', value => 'res', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + ], + } + }, + { label => 'latency', set => { + key_values => [ { name => 'avg_latency' }, { name => 'display' } ], + output_template => 'Average latency: %.2f ms', + perfdatas => [ + { label => 'latency', value => 'avg_latency_absolute', template => '%.2f', + min => 0, unit => 'ms', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'other-rates', set => { + key_values => [ { name => 'other_hits' }, { name => 'other_misses' }, + { name => 'other_req' }, { name => 'other_res' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_operations_calc'), + closure_custom_calc_extra_options => { operation => 'Other', hits => 'other_hits', misses => 'other_misses', + req => 'other_req', res => 'other_res', display => 'display' }, + closure_custom_output => $self->can('custom_operations_output'), + perfdatas => [ + { label => 'other_req', value => 'req', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + { label => 'other_res', value => 'res', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + ], + } + }, + { label => 'other-latency', set => { + key_values => [ { name => 'avg_other_latency' }, { name => 'display' } ], + output_template => 'Other latency: %.2f ms', + perfdatas => [ + { label => 'other_latency', value => 'avg_other_latency_absolute', template => '%.2f', + min => 0, unit => 'ms', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'keys', set => { + key_values => [ { name => 'no_of_keys' }, { name => 'display' } ], + output_template => 'Total keys: %s', + perfdatas => [ + { label => 'keys', value => 'no_of_keys_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'evicted-objects', set => { + key_values => [ { name => 'evicted_objects' }, { name => 'display' } ], + output_template => 'Evicted objects rate: %s evictions/sec', + perfdatas => [ + { label => 'evicted_objects', value => 'evicted_objects_absolute', template => '%s', + min => 0, unit => 'evictions/sec', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'expired-objects', set => { + key_values => [ { name => 'expired_objects' }, { name => 'display' } ], + output_template => 'Expired objects rate: %s expirations/sec', + perfdatas => [ + { label => 'expired_objects', value => 'expired_objects_absolute', template => '%s', + min => 0, unit => 'expirations/sec', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'read-rates', set => { + key_values => [ { name => 'read_hits' }, { name => 'read_misses' }, + { name => 'read_req' }, { name => 'read_res' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_operations_calc'), + closure_custom_calc_extra_options => { operation => 'Read', hits => 'read_hits', misses => 'read_misses', + req => 'read_req', res => 'read_res', display => 'display' }, + closure_custom_output => $self->can('custom_operations_output'), + perfdatas => [ + { label => 'read_hits', value => 'hits', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + { label => 'read_misses', value => 'misses', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + { label => 'read_req', value => 'req', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + { label => 'read_res', value => 'res', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + ], + } + }, + { label => 'read-latency', set => { + key_values => [ { name => 'avg_read_latency' }, { name => 'display' } ], + output_template => 'Read latency: %.2f ms', + perfdatas => [ + { label => 'read_latency', value => 'avg_read_latency_absolute', template => '%.2f', + min => 0, unit => 'ms', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'write-rates', set => { + key_values => [ { name => 'write_hits' }, { name => 'write_misses' }, + { name => 'write_req' }, { name => 'write_res' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_operations_calc'), + closure_custom_calc_extra_options => { operation => 'Write', hits => 'write_hits', misses => 'write_misses', + req => 'write_req', res => 'write_res', display => 'display' }, + closure_custom_output => $self->can('custom_operations_output'), + perfdatas => [ + { label => 'write_hits', value => 'hits', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + { label => 'write_misses', value => 'misses', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + { label => 'write_req', value => 'req', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + { label => 'write_res', value => 'res', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + ], + } + }, + { label => 'write-latency', set => { + key_values => [ { name => 'avg_write_latency' }, { name => 'display' } ], + output_template => 'Write latency: %.2f ms', + perfdatas => [ + { label => 'write_latency', value => 'avg_write_latency_absolute', template => '%.2f', + min => 0, unit => 'ms', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'traffic-in', set => { + key_values => [ { name => 'ingress' }, { name => 'display' } ], + output_template => 'Traffic In: %s %s/s', + output_change_bytes => 2, + perfdatas => [ + { label => 'traffic_in', value => 'ingress_absolute', template => '%d', + min => 0, unit => 'b/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + }, + }, + { label => 'traffic-out', set => { + key_values => [ { name => 'egress' }, { name => 'display' } ], + output_template => 'Traffic Out: %s %s/s', + output_change_bytes => 2, + perfdatas => [ + { label => 'traffic_out', value => 'egress_absolute', template => '%d', + min => 0, unit => 'b/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + }, + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "filter-database:s" => { name => 'filter_database' }, + "units:s" => { name => 'units', default => '%' }, + "free" => { name => 'free' }, + "warning-status:s" => { name => 'warning_status', default => '' }, + "critical-status:s" => { name => 'critical_status', default => '%{status} =~ /creation-failed/i | %{backup_status} =~ /failed/i | + %{export_status} =~ /failed/i | %{import_status} =~ /failed/i' }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; + $self->change_macros(); +} + +sub change_macros { + my ($self, %options) = @_; + + foreach (('warning_status', 'critical_status')) { + if (defined($self->{option_results}->{$_})) { + $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; + } + } +} + +sub manage_selection { + my ($self, %options) = @_; + + my $result = $options{custom}->get(path => '/v1/bdbs/stats/last?interval='.$options{custom}->get_interval()); + my $result2 = $options{custom}->get(path => '/v1/bdbs'); + + foreach my $database (keys $result) { + if (defined($self->{option_results}->{filter_database}) && $self->{option_results}->{filter_database} ne '' && + $database !~ /$self->{option_results}->{filter_database}/) { + $self->{output}->output_add(long_msg => "skipping database '" . $database . "': no matching filter.", debug => 1); + next; + } + + my $shard_list = '-'; + if (@{$result2->{$database}->{shard_list}}) { + $shard_list = join(", ", @{$result2->{$database}->{shard_list}}); + } + + $self->{databases}->{$database} = { + display => $result2->{$database}->{name}, + status => defined($result2->{$database}->{status}) ? $result2->{$database}->{status} : '-', + type => defined($result2->{$database}->{type}) ? $result2->{$database}->{type} : '-', + backup_status => defined($result2->{$database}->{backup_status}) ? $result2->{$database}->{backup_status} : '-', + export_status => defined($result2->{$database}->{export_status}) ? $result2->{$database}->{export_status} : '-', + import_status => defined($result2->{$database}->{import_status}) ? $result2->{$database}->{import_status} : '-', + shard_list => $shard_list, + shard_cpu_user => $result->{$database}->{shard_cpu_user} * 100, + shard_cpu_system => $result->{$database}->{shard_cpu_system} * 100, + main_thread_cpu_user => $result->{$database}->{main_thread_cpu_user} * 100, + main_thread_cpu_system => $result->{$database}->{main_thread_cpu_system} * 100, + fork_cpu_user => $result->{$database}->{fork_cpu_user} * 100, + fork_cpu_system => $result->{$database}->{fork_cpu_system} * 100, + used_memory => $result->{$database}->{used_memory}, + memory_size => $result2->{$database}->{memory_size}, + mem_frag_ratio => $result->{$database}->{mem_frag_ratio}, + conns => $result->{$database}->{conns}, + total_req => defined($result->{$database}->{total_req}) ? $result->{$database}->{total_req} : $result->{$database}->{instantaneous_ops_per_sec}, + total_res => $result->{$database}->{total_res}, + total_hits => $result->{$database}->{read_hits} + $result->{$database}->{write_hits}, + total_misses => $result->{$database}->{read_misses} + $result->{$database}->{write_misses}, + avg_latency => defined($result2->{$database}->{avg_latency}) ? $result->{$database}->{avg_latency} * 1000 : '0', + other_req => $result->{$database}->{other_req}, + other_res => $result->{$database}->{other_res}, + other_hits => '-', + other_misses => '-', + avg_other_latency => defined($result2->{$database}->{avg_other_latency}) ? $result->{$database}->{avg_other_latency} * 1000 : '0', + no_of_keys => $result->{$database}->{no_of_keys}, + evicted_objects => $result->{$database}->{evicted_objects}, + expired_objects => $result->{$database}->{expired_objects}, + read_hits => $result->{$database}->{read_hits}, + read_misses => $result->{$database}->{read_misses}, + read_req => $result->{$database}->{read_req}, + read_res => $result->{$database}->{read_res}, + write_hits => $result->{$database}->{write_hits}, + write_misses => $result->{$database}->{write_misses}, + write_req => $result->{$database}->{write_req}, + write_res => $result->{$database}->{write_res}, + avg_read_latency => defined($result2->{$database}->{avg_read_latency}) ? $result->{$database}->{avg_read_latency} * 1000 : '0', + avg_write_latency => defined($result2->{$database}->{avg_write_latency}) ? $result->{$database}->{avg_write_latency} * 1000 : '0', + ingress => $result->{$database}->{ingress_bytes} * 8, + egress => $result->{$database}->{egress_bytes} * 8, + }; + + if (scalar(keys %{$self->{databases}}) <= 0) { + $self->{output}->add_option_msg(short_msg => 'No databases detected, check your filter ? '); + $self->{output}->option_exit(); + } + } +} + +1; + +__END__ + +=head1 MODE + +Check RedisLabs Enterprise Cluster databases statistics. + +=over 8 + +=item B<--filter-counters> + +Only display some counters (regexp can be used). +Example: --filter-counters='rate|latency' + +=item B<--warning-status> + +Set warning threshold for status. +Can used special variables like: %{status}, %{type}, +%{backup_status}, %{export_status}, %{shard_list}. +'status' can be: 'pending', 'active', 'active-change-pending', +'delete-pending', 'import-pending', 'creation-failed', 'recovery'. +'type' can be: 'redis', 'memcached'. +'backup_status' can be: 'exporting', 'succeeded', 'failed'. +'export_status' can be: 'exporting', 'succeeded', 'failed'. +'import_status' can be: 'idle', 'initializing', 'importing', +'succeeded', 'failed'. + +=item B<--critical-status> + +Set critical threshold for status (Default: '%{status} =~ /creation-failed/i | +%{backup_status} =~ /failed/i | %{export_status} =~ /failed/i | +%{import_status} =~ /failed/i'). +Can used special variables like: %{status}, %{type}, +%{backup_status}, %{export_status}, %{shard_list}. +'status' can be: 'pending', 'active', 'active-change-pending', +'delete-pending', 'import-pending', 'creation-failed', 'recovery'. +'type' can be: 'redis', 'memcached'. +'backup_status' can be: 'exporting', 'succeeded', 'failed'. +'' can be: 'exporting', 'succeeded', 'failed'. +'import_status' can be: 'idle', 'initializing', 'importing', +'succeeded', 'failed'. + +=item B<--warning-*> + +Threshold warning. +Can be: 'total-cpu', 'fork-cpu', 'main-thread-cpu', +'memory', 'mem-frag-ratio', 'connections', +'total-rates', 'latency', 'other-rates', 'other-latency', +'keys', 'evicted-objects', 'expired-objects', +'read-rates', 'read-latency', +'write-rates', 'write-latency', +'traffic-in', 'traffic-out'. + +=item B<--critical-*> + +Threshold critical. +Can be: 'total-cpu', 'fork-cpu', 'main-thread-cpu', +'memory', 'mem-frag-ratio', 'connections', +'total-rates', 'latency', 'other-rates', 'other-latency', +'keys', 'evicted-objects', 'expired-objects', +'read-rates', 'read-latency', +'write-rates', 'write-latency', +'traffic-in', 'traffic-out'. + +=back + +=cut diff --git a/apps/redis/restapi/mode/listdatabases.pm b/apps/redis/restapi/mode/listdatabases.pm index 1b9bfd2a3..aff549709 100644 --- a/apps/redis/restapi/mode/listdatabases.pm +++ b/apps/redis/restapi/mode/listdatabases.pm @@ -1,99 +1,99 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package apps::redis::restapi::mode::listdatabases; - -use base qw(centreon::plugins::mode); - -use strict; -use warnings; - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options); - bless $self, $class; - - $self->{version} = '1.0'; - $options{options}->add_options(arguments => - { - }); - return $self; -} - -sub check_options { - my ($self, %options) = @_; - $self->SUPER::init(%options); -} - -sub manage_selection { - my ($self, %options) = @_; - - $self->{databases} = $options{custom}->get(path => '/v1/bdbs'); -} - -sub run { - my ($self, %options) = @_; - - $self->manage_selection(%options); - foreach my $database_uid (sort keys %{$self->{databases}}) { - $self->{output}->output_add(long_msg => '[uid = ' . $database_uid . "] [name = '" . $self->{databases}->{$database_uid}->{name} . "']" . - " [type = '" . $self->{databases}->{$database_uid}->{type} . "']" . - " [status = '" . $self->{databases}->{$database_uid}->{status} . "']" - ); - } - - $self->{output}->output_add(severity => 'OK', - short_msg => 'List databases:'); - $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); - $self->{output}->exit(); -} - -sub disco_format { - my ($self, %options) = @_; - - $self->{output}->add_disco_format(elements => ['uid', 'name', 'type', 'status']); -} - -sub disco_show { - my ($self, %options) = @_; - - $self->manage_selection(%options); - foreach my $database_uid (sort keys %{$self->{databases}}) { - $self->{output}->add_disco_entry(name => $self->{databases}->{$database_uid}->{name}, - type => $self->{databases}->{$database_uid}->{type}, - status => $self->{databases}->{$database_uid}->{status}, - uid => $database_uid, - ); - } -} - -1; - -__END__ - -=head1 MODE - -List databases. - -=over 8 - -=back - -=cut +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::restapi::mode::listdatabases; + +use base qw(centreon::plugins::mode); + +use strict; +use warnings; + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + }); + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::init(%options); +} + +sub manage_selection { + my ($self, %options) = @_; + + $self->{databases} = $options{custom}->get(path => '/v1/bdbs'); +} + +sub run { + my ($self, %options) = @_; + + $self->manage_selection(%options); + foreach my $database_uid (sort keys %{$self->{databases}}) { + $self->{output}->output_add(long_msg => '[uid = ' . $database_uid . "] [name = '" . $self->{databases}->{$database_uid}->{name} . "']" . + " [type = '" . $self->{databases}->{$database_uid}->{type} . "']" . + " [status = '" . $self->{databases}->{$database_uid}->{status} . "']" + ); + } + + $self->{output}->output_add(severity => 'OK', + short_msg => 'List databases:'); + $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); + $self->{output}->exit(); +} + +sub disco_format { + my ($self, %options) = @_; + + $self->{output}->add_disco_format(elements => ['uid', 'name', 'type', 'status']); +} + +sub disco_show { + my ($self, %options) = @_; + + $self->manage_selection(%options); + foreach my $database_uid (sort keys %{$self->{databases}}) { + $self->{output}->add_disco_entry(name => $self->{databases}->{$database_uid}->{name}, + type => $self->{databases}->{$database_uid}->{type}, + status => $self->{databases}->{$database_uid}->{status}, + uid => $database_uid, + ); + } +} + +1; + +__END__ + +=head1 MODE + +List databases. + +=over 8 + +=back + +=cut diff --git a/apps/redis/restapi/mode/listnodes.pm b/apps/redis/restapi/mode/listnodes.pm index 0600a44ec..90728ebbc 100644 --- a/apps/redis/restapi/mode/listnodes.pm +++ b/apps/redis/restapi/mode/listnodes.pm @@ -1,94 +1,94 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package apps::redis::restapi::mode::listnodes; - -use base qw(centreon::plugins::mode); - -use strict; -use warnings; - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options); - bless $self, $class; - - $self->{version} = '1.0'; - $options{options}->add_options(arguments => - { - }); - return $self; -} - -sub check_options { - my ($self, %options) = @_; - $self->SUPER::init(%options); -} - -sub manage_selection { - my ($self, %options) = @_; - - $self->{nodes} = $options{custom}->get(path => '/v1/nodes'); -} - -sub run { - my ($self, %options) = @_; - - $self->manage_selection(%options); - foreach my $node_uid (sort keys %{$self->{nodes}}) { - $self->{output}->output_add(long_msg => '[uid = ' . $node_uid . "] [status = '" . $self->{nodes}->{$node_uid}->{status} . "']"); - } - - $self->{output}->output_add(severity => 'OK', - short_msg => 'List nodes:'); - $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); - $self->{output}->exit(); -} - -sub disco_format { - my ($self, %options) = @_; - - $self->{output}->add_disco_format(elements => ['uid', 'status']); -} - -sub disco_show { - my ($self, %options) = @_; - - $self->manage_selection(%options); - foreach my $node_uid (sort keys %{$self->{nodes}}) { - $self->{output}->add_disco_entry(status => $self->{nodes}->{$node_uid}->{status}, - uid => $node_uid, - ); - } -} - -1; - -__END__ - -=head1 MODE - -List nodes. - -=over 8 - -=back - -=cut +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::restapi::mode::listnodes; + +use base qw(centreon::plugins::mode); + +use strict; +use warnings; + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + }); + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::init(%options); +} + +sub manage_selection { + my ($self, %options) = @_; + + $self->{nodes} = $options{custom}->get(path => '/v1/nodes'); +} + +sub run { + my ($self, %options) = @_; + + $self->manage_selection(%options); + foreach my $node_uid (sort keys %{$self->{nodes}}) { + $self->{output}->output_add(long_msg => '[uid = ' . $node_uid . "] [status = '" . $self->{nodes}->{$node_uid}->{status} . "']"); + } + + $self->{output}->output_add(severity => 'OK', + short_msg => 'List nodes:'); + $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); + $self->{output}->exit(); +} + +sub disco_format { + my ($self, %options) = @_; + + $self->{output}->add_disco_format(elements => ['uid', 'status']); +} + +sub disco_show { + my ($self, %options) = @_; + + $self->manage_selection(%options); + foreach my $node_uid (sort keys %{$self->{nodes}}) { + $self->{output}->add_disco_entry(status => $self->{nodes}->{$node_uid}->{status}, + uid => $node_uid, + ); + } +} + +1; + +__END__ + +=head1 MODE + +List nodes. + +=over 8 + +=back + +=cut diff --git a/apps/redis/restapi/mode/listshards.pm b/apps/redis/restapi/mode/listshards.pm index ee6813734..be4c82bf6 100644 --- a/apps/redis/restapi/mode/listshards.pm +++ b/apps/redis/restapi/mode/listshards.pm @@ -1,99 +1,99 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package apps::redis::restapi::mode::listshards; - -use base qw(centreon::plugins::mode); - -use strict; -use warnings; - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options); - bless $self, $class; - - $self->{version} = '1.0'; - $options{options}->add_options(arguments => - { - }); - return $self; -} - -sub check_options { - my ($self, %options) = @_; - $self->SUPER::init(%options); -} - -sub manage_selection { - my ($self, %options) = @_; - - $self->{shards} = $options{custom}->get(path => '/v1/shards'); -} - -sub run { - my ($self, %options) = @_; - - $self->manage_selection(%options); - foreach my $shard_uid (sort keys %{$self->{shards}}) { - $self->{output}->output_add(long_msg => '[uid = ' . $shard_uid . "] [role = '" . $self->{shards}->{$shard_uid}->{role} . "']" . - " [detailed_status = '" . $self->{shards}->{$shard_uid}->{detailed_status} . "']" . - " [status = '" . $self->{shards}->{$shard_uid}->{status} . "']" - ); - } - - $self->{output}->output_add(severity => 'OK', - short_msg => 'List shards:'); - $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); - $self->{output}->exit(); -} - -sub disco_format { - my ($self, %options) = @_; - - $self->{output}->add_disco_format(elements => ['uid', 'role', 'detailed_status', 'status']); -} - -sub disco_show { - my ($self, %options) = @_; - - $self->manage_selection(%options); - foreach my $shard_uid (sort keys %{$self->{shards}}) { - $self->{output}->add_disco_entry(role => $self->{shards}->{$shard_uid}->{role}, - detailed_status => $self->{shards}->{$shard_uid}->{detailed_status}, - status => $self->{shards}->{$shard_uid}->{status}, - uid => $shard_uid, - ); - } -} - -1; - -__END__ - -=head1 MODE - -List shards. - -=over 8 - -=back - -=cut +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::restapi::mode::listshards; + +use base qw(centreon::plugins::mode); + +use strict; +use warnings; + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + }); + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::init(%options); +} + +sub manage_selection { + my ($self, %options) = @_; + + $self->{shards} = $options{custom}->get(path => '/v1/shards'); +} + +sub run { + my ($self, %options) = @_; + + $self->manage_selection(%options); + foreach my $shard_uid (sort keys %{$self->{shards}}) { + $self->{output}->output_add(long_msg => '[uid = ' . $shard_uid . "] [role = '" . $self->{shards}->{$shard_uid}->{role} . "']" . + " [detailed_status = '" . $self->{shards}->{$shard_uid}->{detailed_status} . "']" . + " [status = '" . $self->{shards}->{$shard_uid}->{status} . "']" + ); + } + + $self->{output}->output_add(severity => 'OK', + short_msg => 'List shards:'); + $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); + $self->{output}->exit(); +} + +sub disco_format { + my ($self, %options) = @_; + + $self->{output}->add_disco_format(elements => ['uid', 'role', 'detailed_status', 'status']); +} + +sub disco_show { + my ($self, %options) = @_; + + $self->manage_selection(%options); + foreach my $shard_uid (sort keys %{$self->{shards}}) { + $self->{output}->add_disco_entry(role => $self->{shards}->{$shard_uid}->{role}, + detailed_status => $self->{shards}->{$shard_uid}->{detailed_status}, + status => $self->{shards}->{$shard_uid}->{status}, + uid => $shard_uid, + ); + } +} + +1; + +__END__ + +=head1 MODE + +List shards. + +=over 8 + +=back + +=cut diff --git a/apps/redis/restapi/mode/nodesstats.pm b/apps/redis/restapi/mode/nodesstats.pm index ebff496a7..95bf41e78 100644 --- a/apps/redis/restapi/mode/nodesstats.pm +++ b/apps/redis/restapi/mode/nodesstats.pm @@ -1,445 +1,445 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package apps::redis::restapi::mode::nodesstats; - -use base qw(centreon::plugins::templates::counter); - -use strict; -use warnings; -use Digest::MD5 qw(md5_hex); - -my $instance_mode; - -sub custom_usage_perfdata { - my ($self, %options) = @_; - - $self->{output}->perfdata_add(label => $self->{result_values}->{perf}, unit => 'B', - value => $self->{result_values}->{used}, - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{result_values}->{label}, total => $self->{result_values}->{total}, cast_int => 1), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{result_values}->{label}, total => $self->{result_values}->{total}, cast_int => 1), - min => 0, max => $self->{result_values}->{total}); -} - -sub custom_usage_threshold { - my ($self, %options) = @_; - - my ($exit, $threshold_value); - $threshold_value = $self->{result_values}->{used}; - $threshold_value = $self->{result_values}->{free} if (defined($instance_mode->{option_results}->{free})); - if ($instance_mode->{option_results}->{units} eq '%') { - $threshold_value = $self->{result_values}->{prct_used}; - $threshold_value = $self->{result_values}->{prct_free} if (defined($instance_mode->{option_results}->{free})); - } - $exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{result_values}->{label}, exit_litteral => 'critical' }, { label => 'warning-' . $self->{result_values}->{label}, exit_litteral => 'warning' } ]); - return $exit; -} - -sub custom_usage_output { - my ($self, %options) = @_; - - my ($used_value, $used_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{used}); - my ($free_value, $free_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{free}); - my ($total_value, $total_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{total}); - - my $msg = sprintf("%s usage: Total: %s Used: %s (%.2f%%) Free: %s (%.2f%%)", $self->{result_values}->{display}, - $total_value . " " . $total_unit, - $used_value . " " . $used_unit, $self->{result_values}->{prct_used}, - $free_value . " " . $free_unit, $self->{result_values}->{prct_free}); - return $msg; -} - -sub custom_usage_calc { - my ($self, %options) = @_; - - $self->{result_values}->{label} = $options{extra_options}->{label}; - $self->{result_values}->{perf} = $options{extra_options}->{perf}; - $self->{result_values}->{display} = $options{extra_options}->{display}; - $self->{result_values}->{free} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{free}}; - $self->{result_values}->{total} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{total}}; - - if ($self->{result_values}->{total} != 0) { - $self->{result_values}->{used} = $self->{result_values}->{total} - $self->{result_values}->{free}; - $self->{result_values}->{prct_used} = $self->{result_values}->{used} * 100 / $self->{result_values}->{total}; - $self->{result_values}->{prct_free} = 100 - $self->{result_values}->{prct_used}; - } else { - $self->{result_values}->{used} = '0'; - $self->{result_values}->{prct_used} = '0'; - $self->{result_values}->{prct_free} = '0'; - } - - return 0; -} - -sub custom_status_threshold { - my ($self, %options) = @_; - my $status = 'ok'; - my $message; - - eval { - local $SIG{__WARN__} = sub { $message = $_[0]; }; - local $SIG{__DIE__} = sub { $message = $_[0]; }; - - if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && - eval "$instance_mode->{option_results}->{critical_status}") { - $status = 'critical'; - } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && - eval "$instance_mode->{option_results}->{warning_status}") { - $status = 'warning'; - } - }; - if (defined($message)) { - $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); - } - - return $status; -} - -sub custom_status_output { - my ($self, %options) = @_; - - my $msg = sprintf("Status is '%s' [shard list: %s] [int addr: %s] [ext addr: %s]", - $self->{result_values}->{status}, - $self->{result_values}->{shard_list}, - $self->{result_values}->{int_addr}, - $self->{result_values}->{ext_addr}); - return $msg; -} - -sub custom_status_calc { - my ($self, %options) = @_; - - $self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_status'}; - $self->{result_values}->{shard_list} = $options{new_datas}->{$self->{instance} . '_shard_list'}; - $self->{result_values}->{int_addr} = $options{new_datas}->{$self->{instance} . '_int_addr'}; - $self->{result_values}->{ext_addr} = $options{new_datas}->{$self->{instance} . '_ext_addr'}; - return 0; -} - -sub prefix_output { - my ($self, %options) = @_; - - return "Node '" . $options{instance_value}->{display} . "' "; -} - -sub set_counters { - my ($self, %options) = @_; - - $self->{maps_counters_type} = [ - { name => 'nodes', type => 1, cb_prefix_output => 'prefix_output', message_separator => ', ', message_multiple => 'All nodes counters are ok' }, - ]; - - $self->{maps_counters}->{nodes} = [ - { label => 'status', threshold => 0, set => { - key_values => [ { name => 'status' }, { name => 'shard_list' }, { name => 'int_addr' }, { name => 'ext_addr' } ], - closure_custom_calc => $self->can('custom_status_calc'), - closure_custom_output => $self->can('custom_status_output'), - closure_custom_perfdata => sub { return 0; }, - closure_custom_threshold_check => $self->can('custom_status_threshold'), - } - }, - { label => 'shard-count', set => { - key_values => [ { name => 'shard_count' }, { name => 'display' } ], - output_template => 'Shard count: %d', - perfdatas => [ - { label => 'shard_count', value => 'shard_count_absolute', template => '%d', - min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - }, - }, - { label => 'uptime', set => { - key_values => [ { name => 'uptime' }, { name => 'uptime_sec' }, { name => 'display' } ], - output_template => 'Uptime: %s', - perfdatas => [ - { label => 'uptime', value => 'uptime_sec_absolute', template => '%d', - min => 0, unit => 's', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - }, - }, - { label => 'cpu-system', set => { - key_values => [ { name => 'cpu_system' }, { name => 'display' } ], - output_template => 'Cpu system: %.2f %%', - perfdatas => [ - { label => 'cpu_system', value => 'cpu_system_absolute', template => '%.2f', - min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'cpu-user', set => { - key_values => [ { name => 'cpu_user' }, { name => 'display' } ], - output_template => 'Cpu user: %.2f %%', - perfdatas => [ - { label => 'cpu_user', value => 'cpu_user_absolute', template => '%.2f', - min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'memory', set => { - key_values => [ { name => 'free_memory' }, { name => 'total_memory' } ], - closure_custom_calc => $self->can('custom_usage_calc'), - closure_custom_calc_extra_options => { display => 'Ram', label => 'memory', perf => 'memory', - free => 'free_memory', total => 'total_memory' }, - closure_custom_output => $self->can('custom_usage_output'), - closure_custom_perfdata => $self->can('custom_usage_perfdata'), - closure_custom_threshold_check => $self->can('custom_usage_threshold'), - } - }, - { label => 'persistent-storage', set => { - key_values => [ { name => 'persistent_storage_free' }, { name => 'persistent_storage_size' } ], - closure_custom_calc => $self->can('custom_usage_calc'), - closure_custom_calc_extra_options => { display => 'Persistent storage', label => 'persistent-storage', perf => 'persistent_storage', - free => 'persistent_storage_free', total => 'persistent_storage_size' }, - closure_custom_output => $self->can('custom_usage_output'), - closure_custom_perfdata => $self->can('custom_usage_perfdata'), - closure_custom_threshold_check => $self->can('custom_usage_threshold'), - } - }, - { label => 'ephemeral-storage', set => { - key_values => [ { name => 'ephemeral_storage_free' }, { name => 'ephemeral_storage_size' } ], - closure_custom_calc => $self->can('custom_usage_calc'), - closure_custom_calc_extra_options => { display => 'Ephemeral storage', label => 'ephemeral-storage', perf => 'ephemeral_storage', - free => 'ephemeral_storage_free', total => 'ephemeral_storage_size' }, - closure_custom_output => $self->can('custom_usage_output'), - closure_custom_perfdata => $self->can('custom_usage_perfdata'), - closure_custom_threshold_check => $self->can('custom_usage_threshold'), - } - }, - { label => 'flash-storage', set => { - key_values => [ { name => 'bigstore_free' }, { name => 'bigstore_size' } ], - closure_custom_calc => $self->can('custom_usage_calc'), - closure_custom_calc_extra_options => { display => 'Flash storage', label => 'flash-storage', perf => 'flash_storage', - free => 'bigstore_free', total => 'bigstore_size' }, - closure_custom_output => $self->can('custom_usage_output'), - closure_custom_perfdata => $self->can('custom_usage_perfdata'), - closure_custom_threshold_check => $self->can('custom_usage_threshold'), - } - }, - { label => 'flash-iops', set => { - key_values => [ { name => 'bigstore_iops' }, { name => 'display' } ], - output_template => 'Flash IOPS: %s ops/s', - perfdatas => [ - { label => 'flash_iops', value => 'bigstore_iops_absolute', template => '%s', - min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'flash-throughput', set => { - key_values => [ { name => 'bigstore_throughput' }, { name => 'display' } ], - output_template => 'Flash throughput: %s %s/s', - output_change_bytes => 1, - perfdatas => [ - { label => 'flash_throughput', value => 'bigstore_throughput_absolute', template => '%s', - min => 0, unit => 'B/s', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'connections', set => { - key_values => [ { name => 'conns' }, { name => 'display' } ], - output_template => 'Connections: %s', - perfdatas => [ - { label => 'connections', value => 'conns_absolute', template => '%s', - min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'requests', set => { - key_values => [ { name => 'total_req' } ], - output_template => 'Requests rate: %s ops/s', - perfdatas => [ - { label => 'requests', value => 'total_req_absolute', template => '%s', - min => 0, unit => 'ops/s' }, - ], - } - }, - { label => 'traffic-in', set => { - key_values => [ { name => 'ingress' }, { name => 'display' } ], - output_template => 'Traffic In: %s %s/s', - output_change_bytes => 2, - perfdatas => [ - { label => 'traffic_in', value => 'ingress_absolute', template => '%d', - min => 0, unit => 'b/s', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - }, - }, - { label => 'traffic-out', set => { - key_values => [ { name => 'egress' }, { name => 'display' } ], - output_template => 'Traffic Out: %s %s/s', - output_change_bytes => 2, - perfdatas => [ - { label => 'traffic_out', value => 'egress_absolute', template => '%d', - min => 0, unit => 'b/s', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - }, - }, - ]; -} - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options); - bless $self, $class; - - $self->{version} = '1.0'; - $options{options}->add_options(arguments => - { - "filter-node:s" => { name => 'filter_node' }, - "units:s" => { name => 'units', default => '%' }, - "free" => { name => 'free' }, - "warning-status:s" => { name => 'warning_status', default => '' }, - "critical-status:s" => { name => 'critical_status', default => '%{status} =~ /down/i' }, - }); - - return $self; -} - -sub check_options { - my ($self, %options) = @_; - $self->SUPER::check_options(%options); - - $instance_mode = $self; - $self->change_macros(); -} - -sub change_macros { - my ($self, %options) = @_; - - foreach (('warning_status', 'critical_status')) { - if (defined($self->{option_results}->{$_})) { - $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; - } - } -} - -sub manage_selection { - my ($self, %options) = @_; - - my $result = $options{custom}->get(path => '/v1/nodes/stats/last?interval='.$options{custom}->get_interval()); - my $result2 = $options{custom}->get(path => '/v1/nodes'); - - foreach my $node (keys $result) { - if (defined($self->{option_results}->{filter_node}) && $self->{option_results}->{filter_node} ne '' && - $node !~ /$self->{option_results}->{filter_node}/) { - $self->{output}->output_add(long_msg => "skipping node '" . $node . "': no matching filter.", debug => 1); - next; - } - - my $shard_list = '-'; - if (@{$result2->{$node}->{shard_list}}) { - $shard_list = join(", ", @{$result2->{$node}->{shard_list}}); - } - my $ext_addr = '-'; - if (@{$result2->{$node}->{external_addr}}) { - $ext_addr = join(", ", @{$result2->{$node}->{external_addr}}); - } - - $self->{nodes}->{$node} = { - display => $node, - status => defined($result2->{$node}->{status}) ? $result2->{$node}->{status} : '-', - shard_list => $shard_list, - shard_count => $result2->{$node}->{shard_count}, - int_addr => $result2->{$node}->{addr}, - ext_addr => $ext_addr, - uptime => centreon::plugins::misc::change_seconds(value => $result2->{$node}->{uptime}), - uptime_sec => $result2->{$node}->{uptime}, - cpu_system => $result->{$node}->{cpu_system} * 100, - cpu_user => $result->{$node}->{cpu_user} * 100, - free_memory => $result->{$node}->{free_memory}, - total_memory => $result2->{$node}->{total_memory}, - persistent_storage_free => $result->{$node}->{persistent_storage_free}, - persistent_storage_size => $result2->{$node}->{persistent_storage_size}, - ephemeral_storage_free => $result->{$node}->{ephemeral_storage_free}, - ephemeral_storage_size => $result2->{$node}->{ephemeral_storage_size}, - bigstore_free => $result->{$node}->{bigstore_free}, - bigstore_size => $result2->{$node}->{bigstore_size}, - bigstore_iops => $result->{$node}->{bigstore_iops}, - bigstore_throughput => $result->{$node}->{bigstore_throughput}, - conns => $result->{$node}->{conns}, - total_req => $result->{$node}->{total_req}, - ingress => $result->{$node}->{ingress_bytes} * 8, - egress => $result->{$node}->{egress_bytes} * 8, - }; - - if (scalar(keys %{$self->{nodes}}) <= 0) { - $self->{output}->add_option_msg(short_msg => 'No nodes detected, check your filter ? '); - $self->{output}->option_exit(); - } - } -} - -1; - -__END__ - -=head1 MODE - -Check RedisLabs Enterprise Cluster nodes statistics. - -=over 8 - -=item B<--filter-counters> - -Only display some counters (regexp can be used). -Example: --filter-counters='^cpu' - -=item B<--units> - -Units of thresholds (Default: '%') ('%', 'B'). - -=item B<--free> - -Thresholds are on free space left. - -=item B<--warning-status> - -Set warning threshold for status. -Can used special variables like: %{status}, %{shard_list}, -%{int_addr}, %{ext_addr}. -'status' can be: 'active', 'going_offline', 'offline', -'provisioning', 'decommissioning', 'down'. - -=item B<--critical-status> - -Set critical threshold for status (Default: '%{status} =~ /down/i'). -Can used special variables like: %{status}, %{shard_list}, -%{int_addr}, %{ext_addr}. -'status' can be: 'active', 'going_offline', 'offline', -'provisioning', 'decommissioning', 'down'. - -=item B<--warning-*> - -Threshold warning. -Can be: 'cpu-system', 'cpu-user', -'requests', 'memory', 'flash-storage', -'persistent-storage', 'ephemeral-storage', -'flash-iops', 'flash-throughput', 'connections', -'traffic-in', 'traffic-out', 'shard-count', 'uptime'. - -=item B<--critical-*> - -Threshold critical. -Can be: 'cpu-system', 'cpu-user', -'requests', 'memory', 'flash-storage', -'persistent-storage', 'ephemeral-storage', -'flash-iops', 'flash-throughput', 'connections', -'traffic-in', 'traffic-out', 'shard-count', 'uptime'. - -=back - -=cut +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::restapi::mode::nodesstats; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use Digest::MD5 qw(md5_hex); + +my $instance_mode; + +sub custom_usage_perfdata { + my ($self, %options) = @_; + + $self->{output}->perfdata_add(label => $self->{result_values}->{perf}, unit => 'B', + value => $self->{result_values}->{used}, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{result_values}->{label}, total => $self->{result_values}->{total}, cast_int => 1), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{result_values}->{label}, total => $self->{result_values}->{total}, cast_int => 1), + min => 0, max => $self->{result_values}->{total}); +} + +sub custom_usage_threshold { + my ($self, %options) = @_; + + my ($exit, $threshold_value); + $threshold_value = $self->{result_values}->{used}; + $threshold_value = $self->{result_values}->{free} if (defined($instance_mode->{option_results}->{free})); + if ($instance_mode->{option_results}->{units} eq '%') { + $threshold_value = $self->{result_values}->{prct_used}; + $threshold_value = $self->{result_values}->{prct_free} if (defined($instance_mode->{option_results}->{free})); + } + $exit = $self->{perfdata}->threshold_check(value => $threshold_value, threshold => [ { label => 'critical-' . $self->{result_values}->{label}, exit_litteral => 'critical' }, { label => 'warning-' . $self->{result_values}->{label}, exit_litteral => 'warning' } ]); + return $exit; +} + +sub custom_usage_output { + my ($self, %options) = @_; + + my ($used_value, $used_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{used}); + my ($free_value, $free_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{free}); + my ($total_value, $total_unit) = $self->{perfdata}->change_bytes(value => $self->{result_values}->{total}); + + my $msg = sprintf("%s usage: Total: %s Used: %s (%.2f%%) Free: %s (%.2f%%)", $self->{result_values}->{display}, + $total_value . " " . $total_unit, + $used_value . " " . $used_unit, $self->{result_values}->{prct_used}, + $free_value . " " . $free_unit, $self->{result_values}->{prct_free}); + return $msg; +} + +sub custom_usage_calc { + my ($self, %options) = @_; + + $self->{result_values}->{label} = $options{extra_options}->{label}; + $self->{result_values}->{perf} = $options{extra_options}->{perf}; + $self->{result_values}->{display} = $options{extra_options}->{display}; + $self->{result_values}->{free} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{free}}; + $self->{result_values}->{total} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{total}}; + + if ($self->{result_values}->{total} != 0) { + $self->{result_values}->{used} = $self->{result_values}->{total} - $self->{result_values}->{free}; + $self->{result_values}->{prct_used} = $self->{result_values}->{used} * 100 / $self->{result_values}->{total}; + $self->{result_values}->{prct_free} = 100 - $self->{result_values}->{prct_used}; + } else { + $self->{result_values}->{used} = '0'; + $self->{result_values}->{prct_used} = '0'; + $self->{result_values}->{prct_free} = '0'; + } + + return 0; +} + +sub custom_status_threshold { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && + eval "$instance_mode->{option_results}->{critical_status}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && + eval "$instance_mode->{option_results}->{warning_status}") { + $status = 'warning'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_status_output { + my ($self, %options) = @_; + + my $msg = sprintf("Status is '%s' [shard list: %s] [int addr: %s] [ext addr: %s]", + $self->{result_values}->{status}, + $self->{result_values}->{shard_list}, + $self->{result_values}->{int_addr}, + $self->{result_values}->{ext_addr}); + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_status'}; + $self->{result_values}->{shard_list} = $options{new_datas}->{$self->{instance} . '_shard_list'}; + $self->{result_values}->{int_addr} = $options{new_datas}->{$self->{instance} . '_int_addr'}; + $self->{result_values}->{ext_addr} = $options{new_datas}->{$self->{instance} . '_ext_addr'}; + return 0; +} + +sub prefix_output { + my ($self, %options) = @_; + + return "Node '" . $options{instance_value}->{display} . "' "; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'nodes', type => 1, cb_prefix_output => 'prefix_output', message_separator => ', ', message_multiple => 'All nodes counters are ok' }, + ]; + + $self->{maps_counters}->{nodes} = [ + { label => 'status', threshold => 0, set => { + key_values => [ { name => 'status' }, { name => 'shard_list' }, { name => 'int_addr' }, { name => 'ext_addr' } ], + closure_custom_calc => $self->can('custom_status_calc'), + closure_custom_output => $self->can('custom_status_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + { label => 'shard-count', set => { + key_values => [ { name => 'shard_count' }, { name => 'display' } ], + output_template => 'Shard count: %d', + perfdatas => [ + { label => 'shard_count', value => 'shard_count_absolute', template => '%d', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + }, + }, + { label => 'uptime', set => { + key_values => [ { name => 'uptime' }, { name => 'uptime_sec' }, { name => 'display' } ], + output_template => 'Uptime: %s', + perfdatas => [ + { label => 'uptime', value => 'uptime_sec_absolute', template => '%d', + min => 0, unit => 's', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + }, + }, + { label => 'cpu-system', set => { + key_values => [ { name => 'cpu_system' }, { name => 'display' } ], + output_template => 'Cpu system: %.2f %%', + perfdatas => [ + { label => 'cpu_system', value => 'cpu_system_absolute', template => '%.2f', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'cpu-user', set => { + key_values => [ { name => 'cpu_user' }, { name => 'display' } ], + output_template => 'Cpu user: %.2f %%', + perfdatas => [ + { label => 'cpu_user', value => 'cpu_user_absolute', template => '%.2f', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'memory', set => { + key_values => [ { name => 'free_memory' }, { name => 'total_memory' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_calc_extra_options => { display => 'Ram', label => 'memory', perf => 'memory', + free => 'free_memory', total => 'total_memory' }, + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + { label => 'persistent-storage', set => { + key_values => [ { name => 'persistent_storage_free' }, { name => 'persistent_storage_size' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_calc_extra_options => { display => 'Persistent storage', label => 'persistent-storage', perf => 'persistent_storage', + free => 'persistent_storage_free', total => 'persistent_storage_size' }, + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + { label => 'ephemeral-storage', set => { + key_values => [ { name => 'ephemeral_storage_free' }, { name => 'ephemeral_storage_size' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_calc_extra_options => { display => 'Ephemeral storage', label => 'ephemeral-storage', perf => 'ephemeral_storage', + free => 'ephemeral_storage_free', total => 'ephemeral_storage_size' }, + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + { label => 'flash-storage', set => { + key_values => [ { name => 'bigstore_free' }, { name => 'bigstore_size' } ], + closure_custom_calc => $self->can('custom_usage_calc'), + closure_custom_calc_extra_options => { display => 'Flash storage', label => 'flash-storage', perf => 'flash_storage', + free => 'bigstore_free', total => 'bigstore_size' }, + closure_custom_output => $self->can('custom_usage_output'), + closure_custom_perfdata => $self->can('custom_usage_perfdata'), + closure_custom_threshold_check => $self->can('custom_usage_threshold'), + } + }, + { label => 'flash-iops', set => { + key_values => [ { name => 'bigstore_iops' }, { name => 'display' } ], + output_template => 'Flash IOPS: %s ops/s', + perfdatas => [ + { label => 'flash_iops', value => 'bigstore_iops_absolute', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'flash-throughput', set => { + key_values => [ { name => 'bigstore_throughput' }, { name => 'display' } ], + output_template => 'Flash throughput: %s %s/s', + output_change_bytes => 1, + perfdatas => [ + { label => 'flash_throughput', value => 'bigstore_throughput_absolute', template => '%s', + min => 0, unit => 'B/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'connections', set => { + key_values => [ { name => 'conns' }, { name => 'display' } ], + output_template => 'Connections: %s', + perfdatas => [ + { label => 'connections', value => 'conns_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'requests', set => { + key_values => [ { name => 'total_req' } ], + output_template => 'Requests rate: %s ops/s', + perfdatas => [ + { label => 'requests', value => 'total_req_absolute', template => '%s', + min => 0, unit => 'ops/s' }, + ], + } + }, + { label => 'traffic-in', set => { + key_values => [ { name => 'ingress' }, { name => 'display' } ], + output_template => 'Traffic In: %s %s/s', + output_change_bytes => 2, + perfdatas => [ + { label => 'traffic_in', value => 'ingress_absolute', template => '%d', + min => 0, unit => 'b/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + }, + }, + { label => 'traffic-out', set => { + key_values => [ { name => 'egress' }, { name => 'display' } ], + output_template => 'Traffic Out: %s %s/s', + output_change_bytes => 2, + perfdatas => [ + { label => 'traffic_out', value => 'egress_absolute', template => '%d', + min => 0, unit => 'b/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + }, + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "filter-node:s" => { name => 'filter_node' }, + "units:s" => { name => 'units', default => '%' }, + "free" => { name => 'free' }, + "warning-status:s" => { name => 'warning_status', default => '' }, + "critical-status:s" => { name => 'critical_status', default => '%{status} =~ /down/i' }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; + $self->change_macros(); +} + +sub change_macros { + my ($self, %options) = @_; + + foreach (('warning_status', 'critical_status')) { + if (defined($self->{option_results}->{$_})) { + $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; + } + } +} + +sub manage_selection { + my ($self, %options) = @_; + + my $result = $options{custom}->get(path => '/v1/nodes/stats/last?interval='.$options{custom}->get_interval()); + my $result2 = $options{custom}->get(path => '/v1/nodes'); + + foreach my $node (keys $result) { + if (defined($self->{option_results}->{filter_node}) && $self->{option_results}->{filter_node} ne '' && + $node !~ /$self->{option_results}->{filter_node}/) { + $self->{output}->output_add(long_msg => "skipping node '" . $node . "': no matching filter.", debug => 1); + next; + } + + my $shard_list = '-'; + if (@{$result2->{$node}->{shard_list}}) { + $shard_list = join(", ", @{$result2->{$node}->{shard_list}}); + } + my $ext_addr = '-'; + if (@{$result2->{$node}->{external_addr}}) { + $ext_addr = join(", ", @{$result2->{$node}->{external_addr}}); + } + + $self->{nodes}->{$node} = { + display => $node, + status => defined($result2->{$node}->{status}) ? $result2->{$node}->{status} : '-', + shard_list => $shard_list, + shard_count => $result2->{$node}->{shard_count}, + int_addr => $result2->{$node}->{addr}, + ext_addr => $ext_addr, + uptime => centreon::plugins::misc::change_seconds(value => $result2->{$node}->{uptime}), + uptime_sec => $result2->{$node}->{uptime}, + cpu_system => $result->{$node}->{cpu_system} * 100, + cpu_user => $result->{$node}->{cpu_user} * 100, + free_memory => $result->{$node}->{free_memory}, + total_memory => $result2->{$node}->{total_memory}, + persistent_storage_free => $result->{$node}->{persistent_storage_free}, + persistent_storage_size => $result2->{$node}->{persistent_storage_size}, + ephemeral_storage_free => $result->{$node}->{ephemeral_storage_free}, + ephemeral_storage_size => $result2->{$node}->{ephemeral_storage_size}, + bigstore_free => $result->{$node}->{bigstore_free}, + bigstore_size => $result2->{$node}->{bigstore_size}, + bigstore_iops => $result->{$node}->{bigstore_iops}, + bigstore_throughput => $result->{$node}->{bigstore_throughput}, + conns => $result->{$node}->{conns}, + total_req => $result->{$node}->{total_req}, + ingress => $result->{$node}->{ingress_bytes} * 8, + egress => $result->{$node}->{egress_bytes} * 8, + }; + + if (scalar(keys %{$self->{nodes}}) <= 0) { + $self->{output}->add_option_msg(short_msg => 'No nodes detected, check your filter ? '); + $self->{output}->option_exit(); + } + } +} + +1; + +__END__ + +=head1 MODE + +Check RedisLabs Enterprise Cluster nodes statistics. + +=over 8 + +=item B<--filter-counters> + +Only display some counters (regexp can be used). +Example: --filter-counters='^cpu' + +=item B<--units> + +Units of thresholds (Default: '%') ('%', 'B'). + +=item B<--free> + +Thresholds are on free space left. + +=item B<--warning-status> + +Set warning threshold for status. +Can used special variables like: %{status}, %{shard_list}, +%{int_addr}, %{ext_addr}. +'status' can be: 'active', 'going_offline', 'offline', +'provisioning', 'decommissioning', 'down'. + +=item B<--critical-status> + +Set critical threshold for status (Default: '%{status} =~ /down/i'). +Can used special variables like: %{status}, %{shard_list}, +%{int_addr}, %{ext_addr}. +'status' can be: 'active', 'going_offline', 'offline', +'provisioning', 'decommissioning', 'down'. + +=item B<--warning-*> + +Threshold warning. +Can be: 'cpu-system', 'cpu-user', +'requests', 'memory', 'flash-storage', +'persistent-storage', 'ephemeral-storage', +'flash-iops', 'flash-throughput', 'connections', +'traffic-in', 'traffic-out', 'shard-count', 'uptime'. + +=item B<--critical-*> + +Threshold critical. +Can be: 'cpu-system', 'cpu-user', +'requests', 'memory', 'flash-storage', +'persistent-storage', 'ephemeral-storage', +'flash-iops', 'flash-throughput', 'connections', +'traffic-in', 'traffic-out', 'shard-count', 'uptime'. + +=back + +=cut diff --git a/apps/redis/restapi/mode/shardsstats.pm b/apps/redis/restapi/mode/shardsstats.pm index cff2cb218..00e6a139c 100644 --- a/apps/redis/restapi/mode/shardsstats.pm +++ b/apps/redis/restapi/mode/shardsstats.pm @@ -1,472 +1,472 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package apps::redis::restapi::mode::shardsstats; - -use base qw(centreon::plugins::templates::counter); - -use strict; -use warnings; -use Digest::MD5 qw(md5_hex); - -my $instance_mode; - -sub custom_status_threshold { - my ($self, %options) = @_; - my $status = 'ok'; - my $message; - - eval { - local $SIG{__WARN__} = sub { $message = $_[0]; }; - local $SIG{__DIE__} = sub { $message = $_[0]; }; - - if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && - eval "$instance_mode->{option_results}->{critical_status}") { - $status = 'critical'; - } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && - eval "$instance_mode->{option_results}->{warning_status}") { - $status = 'warning'; - } - }; - if (defined($message)) { - $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); - } - - return $status; -} - -sub custom_status_output { - my ($self, %options) = @_; - - my $msg = sprintf("Status is '%s' (%s) [role: %s] [loading status: %s] [backup status: %s]", - $self->{result_values}->{status}, - $self->{result_values}->{detailed_status}, - $self->{result_values}->{role}, - $self->{result_values}->{loading}, - $self->{result_values}->{backup}); - if ($self->{result_values}->{role} eq 'slave') { - $msg .= sprintf(" [sync status: %s]", - $self->{result_values}->{sync}); - } - return $msg; -} - -sub custom_status_calc { - my ($self, %options) = @_; - - $self->{result_values}->{role} = $options{new_datas}->{$self->{instance} . '_role'}; - $self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_status'}; - $self->{result_values}->{detailed_status} = $options{new_datas}->{$self->{instance} . '_detailed_status'}; - $self->{result_values}->{loading} = $options{new_datas}->{$self->{instance} . '_loading'}; - $self->{result_values}->{sync} = $options{new_datas}->{$self->{instance} . '_sync'}; - $self->{result_values}->{backup} = $options{new_datas}->{$self->{instance} . '_backup'}; - return 0; -} - -sub custom_operations_output { - my ($self, %options) = @_; - - my $msg = sprintf("%s operations rates (hits/misses): %s/%s ops/s", - $self->{result_values}->{operation}, - $self->{result_values}->{hits}, - $self->{result_values}->{misses}); - return $msg; -} - -sub custom_operations_calc { - my ($self, %options) = @_; - - $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{display}}; - $self->{result_values}->{operation} = $options{extra_options}->{operation}; - $self->{result_values}->{hits} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{hits}}; - $self->{result_values}->{misses} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{misses}}; - return 0; -} - -sub custom_cpu_output { - my ($self, %options) = @_; - - my $msg = sprintf("%s CPU usage (user/system): %s/%s %%", - $self->{result_values}->{cpu}, - $self->{result_values}->{user}, - $self->{result_values}->{system}); - return $msg; -} - -sub custom_cpu_calc { - my ($self, %options) = @_; - - $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{display}}; - $self->{result_values}->{cpu} = $options{extra_options}->{cpu}; - $self->{result_values}->{user} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{user}}; - $self->{result_values}->{system} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{system}}; - return 0; -} - -sub prefix_output { - my ($self, %options) = @_; - - return "Shard '" . $options{instance_value}->{display} . "' "; -} - -sub set_counters { - my ($self, %options) = @_; - - $self->{maps_counters_type} = [ - { name => 'shards', type => 1, cb_prefix_output => 'prefix_output', message_multiple => 'All shards counters are ok' }, - ]; - - $self->{maps_counters}->{shards} = [ - { label => 'status', threshold => 0, set => { - key_values => [ { name => 'status' }, { name => 'detailed_status' }, { name => 'role' }, - { name => 'loading' }, { name => 'sync' }, { name => 'backup' } ], - closure_custom_calc => $self->can('custom_status_calc'), - closure_custom_output => $self->can('custom_status_output'), - closure_custom_perfdata => sub { return 0; }, - closure_custom_threshold_check => $self->can('custom_status_threshold'), - } - }, - { label => 'total-cpu', set => { - key_values => [ { name => 'shard_cpu_user' }, { name => 'shard_cpu_system' }, { name => 'display' } ], - closure_custom_calc => $self->can('custom_cpu_calc'), - closure_custom_calc_extra_options => { cpu => 'Total', user => 'shard_cpu_user', - system => 'shard_cpu_system', display => 'display' }, - closure_custom_output => $self->can('custom_cpu_output'), - perfdatas => [ - { label => 'total_cpu_user', value => 'user', template => '%s', - min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, - { label => 'total_cpu_system', value => 'system', template => '%s', - min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, - ], - } - }, - { label => 'fork-cpu', set => { - key_values => [ { name => 'fork_cpu_user' }, { name => 'fork_cpu_system' }, { name => 'display' } ], - closure_custom_calc => $self->can('custom_cpu_calc'), - closure_custom_calc_extra_options => { cpu => 'Fork', user => 'fork_cpu_user', - system => 'fork_cpu_system', display => 'display' }, - closure_custom_output => $self->can('custom_cpu_output'), - perfdatas => [ - { label => 'fork_cpu_user', value => 'user', template => '%s', - min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, - { label => 'fork_cpu_system', value => 'system', template => '%s', - min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, - ], - } - }, - { label => 'main-thread-cpu', set => { - key_values => [ { name => 'main_thread_cpu_user' }, { name => 'main_thread_cpu_system' }, { name => 'display' } ], - closure_custom_calc => $self->can('custom_cpu_calc'), - closure_custom_calc_extra_options => { cpu => 'Main thread', user => 'main_thread_cpu_user', - system => 'main_thread_cpu_system', display => 'display' }, - closure_custom_output => $self->can('custom_cpu_output'), - perfdatas => [ - { label => 'main_thread_cpu_user', value => 'user', template => '%s', - min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, - { label => 'main_thread_cpu_system', value => 'system', template => '%s', - min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, - ], - } - }, - { label => 'memory', set => { - key_values => [ { name => 'used_memory' }, { name => 'display' } ], - output_template => 'Memory used: %s %s', - output_change_bytes => 1, - perfdatas => [ - { label => 'memory', value => 'used_memory_absolute', template => '%s', - min => 0, unit => 'B', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'mem-frag-ratio', set => { - key_values => [ { name => 'mem_frag_ratio' }, { name => 'display' } ], - output_template => 'Memory fragmentation ratio: %s', - perfdatas => [ - { label => 'mem_frag_ratio', value => 'mem_frag_ratio_absolute', template => '%s', - min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'connected-clients', set => { - key_values => [ { name => 'connected_clients' }, { name => 'display' } ], - output_template => 'Connected clients: %s', - perfdatas => [ - { label => 'connected_clients', value => 'connected_clients_absolute', template => '%s', - min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'blocked-clients', set => { - key_values => [ { name => 'blocked_clients' }, { name => 'display' } ], - output_template => 'Blocked clients: %s', - perfdatas => [ - { label => 'blocked_clients', value => 'blocked_clients_absolute', template => '%s', - min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'requests', set => { - key_values => [ { name => 'total_req'}, { name => 'display' }], - output_template => 'Requests rate: %s ops/s', - perfdatas => [ - { label => 'requests', value => 'total_req_absolute', template => '%s', - min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'keys', set => { - key_values => [ { name => 'no_of_keys' }, { name => 'display' } ], - output_template => 'Total keys: %s', - perfdatas => [ - { label => 'keys', value => 'no_of_keys_absolute', template => '%s', - min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'volatile-keys', set => { - key_values => [ { name => 'no_of_expires' }, { name => 'display' } ], - output_template => 'Volatile keys: %s', - perfdatas => [ - { label => 'volatile_keys', value => 'no_of_expires_absolute', template => '%s', - min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'evicted-objects', set => { - key_values => [ { name => 'evicted_objects' }, { name => 'display' } ], - output_template => 'Evicted objects rate: %s evictions/sec', - perfdatas => [ - { label => 'evicted_objects', value => 'evicted_objects_absolute', template => '%s', - min => 0, unit => 'evictions/sec', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'expired-objects', set => { - key_values => [ { name => 'expired_objects' }, { name => 'display' } ], - output_template => 'Expired objects rate: %s expirations/sec', - perfdatas => [ - { label => 'expired_objects', value => 'expired_objects_absolute', template => '%s', - min => 0, unit => 'expirations/sec', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'read-rates', set => { - key_values => [ { name => 'read_hits' }, { name => 'read_misses' }, { name => 'display' } ], - closure_custom_calc => $self->can('custom_operations_calc'), - closure_custom_calc_extra_options => { operation => 'Read', hits => 'read_hits', - misses => 'read_misses', display => 'display' }, - closure_custom_output => $self->can('custom_operations_output'), - perfdatas => [ - { label => 'read_hits', value => 'hits', template => '%s', - min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, - { label => 'read_misses', value => 'misses', template => '%s', - min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, - ], - } - }, - { label => 'write-rates', set => { - key_values => [ { name => 'write_hits' }, { name => 'write_misses' }, { name => 'display' } ], - closure_custom_calc => $self->can('custom_operations_calc'), - closure_custom_calc_extra_options => { operation => 'Write', hits => 'write_hits', - misses => 'write_misses', display => 'display' }, - closure_custom_output => $self->can('custom_operations_output'), - perfdatas => [ - { label => 'write_hits', value => 'hits', template => '%s', - min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, - { label => 'write_misses', value => 'misses', template => '%s', - min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, - ], - } - }, - { label => 'rdb-changes-since-last-save', set => { - key_values => [ { name => 'rdb_changes_since_last_save' }, { name => 'display' } ], - output_template => 'Rdb changes since last save: %s', - perfdatas => [ - { label => 'rdb_changes_since_last_save', value => 'rdb_changes_since_last_save_absolute', template => '%s', - min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - { label => 'last-save-time', set => { - key_values => [ { name => 'last_save_time' }, { name => 'last_save_time_sec' }, { name => 'display' } ], - output_template => 'Last same time: %s', - perfdatas => [ - { label => 'last_save_time', value => 'last_save_time_sec_absolute', template => '%s', - min => 0, unit => 's', label_extra_instance => 1, instance_use => 'display_absolute' }, - ], - } - }, - ]; -} - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options); - bless $self, $class; - - $self->{version} = '1.0'; - $options{options}->add_options(arguments => - { - "filter-shard:s" => { name => 'filter_shard' }, - "warning-status:s" => { name => 'warning_status', default => '' }, - "critical-status:s" => { name => 'critical_status', default => '%{status} =~ /inactive/i | %{backup} =~ /failed/i | - %{sync} =~ /link_down/i' }, - }); - - return $self; -} - -sub check_options { - my ($self, %options) = @_; - $self->SUPER::check_options(%options); - - $instance_mode = $self; - $self->change_macros(); -} - -sub change_macros { - my ($self, %options) = @_; - - foreach (('warning_status', 'critical_status')) { - if (defined($self->{option_results}->{$_})) { - $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; - } - } -} - -sub manage_selection { - my ($self, %options) = @_; - - my $result = $options{custom}->get(path => '/v1/shards/stats/last?interval='.$options{custom}->get_interval()); - my $result2 = $options{custom}->get(path => '/v1/shards'); - - foreach my $shard (keys $result) { - if (defined($self->{option_results}->{filter_shard}) && $self->{option_results}->{filter_shard} ne '' && - $shard !~ /$self->{option_results}->{filter_shard}/) { - $self->{output}->output_add(long_msg => "skipping shard '" . $shard . "': no matching filter.", debug => 1); - next; - } - - $self->{shards}->{$shard} = { - display => $shard, - status => defined($result2->{$shard}->{status}) ? $result2->{$shard}->{status} : '-', - detailed_status => defined($result2->{$shard}->{detailed_status}) ? $result2->{$shard}->{detailed_status} : '-', - role => defined($result2->{$shard}->{role}) ? $result2->{$shard}->{role} : '-', - loading => defined($result2->{$shard}->{loading}->{status}) ? $result2->{$shard}->{loading}->{status} : '-', - sync => defined($result2->{$shard}->{sync}->{status}) ? $result2->{$shard}->{sync}->{status} : '-', - backup => defined($result2->{$shard}->{backup}->{status}) ? $result2->{$shard}->{backup}->{status} : '-', - used_memory => $result->{$shard}->{used_memory}, - mem_frag_ratio => $result->{$shard}->{mem_frag_ratio}, - shard_cpu_user => $result->{$shard}->{shard_cpu_user} * 100, - shard_cpu_system => $result->{$shard}->{shard_cpu_system} * 100, - main_thread_cpu_user => $result->{$shard}->{main_thread_cpu_user} * 100, - main_thread_cpu_system => $result->{$shard}->{main_thread_cpu_system} * 100, - fork_cpu_user => $result->{$shard}->{fork_cpu_user} * 100, - fork_cpu_system => $result->{$shard}->{fork_cpu_system} * 100, - connected_clients => $result->{$shard}->{connected_clients}, - blocked_clients => $result->{$shard}->{blocked_clients}, - total_req => defined($result->{$shard}->{total_req}) ? $result->{$shard}->{total_req} : $result->{$shard}->{instantaneous_ops_per_sec}, - no_of_keys => $result->{$shard}->{no_of_keys}, - no_of_expires => $result->{$shard}->{no_of_expires}, - evicted_objects => $result->{$shard}->{evicted_objects}, - expired_objects => $result->{$shard}->{expired_objects}, - read_hits => $result->{$shard}->{read_hits}, - read_misses => $result->{$shard}->{read_misses}, - write_hits => $result->{$shard}->{write_hits}, - write_misses => $result->{$shard}->{write_misses}, - rdb_changes_since_last_save => $result->{$shard}->{rdb_changes_since_last_save}, - last_save_time => centreon::plugins::misc::change_seconds(value => time() - $result->{$shard}->{last_save_time}), - last_save_time_sec => time() - $result->{$shard}->{last_save_time}, - }; - - if (scalar(keys %{$self->{shards}}) <= 0) { - $self->{output}->add_option_msg(short_msg => 'No shards detected, check your filter ? '); - $self->{output}->option_exit(); - } - } -} - -1; - -__END__ - -=head1 MODE - -Check RedisLabs Enterprise Cluster shards statistics. - -=over 8 - -=item B<--filter-counters> - -Only display some counters (regexp can be used). -Example: --filter-counters='clients' - -=item B<--warning-status> - -Set warning threshold for status. -Can used special variables like: %{status}, %{detailed_status}, -%{role}, %{loading}, %{sync}, %{backup}. -'status' can be: 'active', 'inactive', 'trimming'. -'detailed_status' can be: 'ok', 'importing', 'timeout', -'loading', 'busy', 'down', 'trimming', 'unknown'. -'role' can be: 'slave', 'master'. -'loading' can be: 'in_progress', 'idle'. -'sync' can be: 'in_progress', 'idle', 'link_down'. -'backup' can be: 'exporting', 'succeeded', 'failed'. - -=item B<--critical-status> - -Set critical threshold for status (Default: '%{status} =~ /inactive/i | -%{backup} =~ /failed/i | %{sync} =~ /link_down/i'). -Can used special variables like: %{status}, %{detailed_status}, -%{role}, %{loading}, %{sync}, %{backup}. -'status' can be: 'active', 'inactive', 'trimming'. -'detailed_status' can be: 'ok', 'importing', 'timeout', -'loading', 'busy', 'down', 'trimming', 'unknown'. -'role' can be: 'slave', 'master'. -'loading' can be: 'in_progress', 'idle'. -'sync' can be: 'in_progress', 'idle', 'link_down'. -'backup' can be: 'exporting', 'succeeded', 'failed'. - -=item B<--warning-*> - -Threshold warning. -Can be: 'total-cpu', 'fork-cpu', 'main-thread-cpu', -'memory', 'mem-frag-ratio', -'connected-clients', 'blocked-clients', -'request', 'keys', -'evicted-objects', 'expired-objects', -'read-rates', 'write-rates', -'rdb-changes-since-last-save', 'last-save-time', - -=item B<--critical-*> - -Threshold critical. -Can be: 'total-cpu', 'fork-cpu', 'main-thread-cpu', -'memory', 'mem-frag-ratio', -'connected-clients', 'blocked-clients', -'request', 'keys', -'evicted-objects', 'expired-objects', -'read-rates', 'write-rates', -'rdb-changes-since-last-save', 'last-save-time', - -=back - -=cut +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::restapi::mode::shardsstats; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use Digest::MD5 qw(md5_hex); + +my $instance_mode; + +sub custom_status_threshold { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && + eval "$instance_mode->{option_results}->{critical_status}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && + eval "$instance_mode->{option_results}->{warning_status}") { + $status = 'warning'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_status_output { + my ($self, %options) = @_; + + my $msg = sprintf("Status is '%s' (%s) [role: %s] [loading status: %s] [backup status: %s]", + $self->{result_values}->{status}, + $self->{result_values}->{detailed_status}, + $self->{result_values}->{role}, + $self->{result_values}->{loading}, + $self->{result_values}->{backup}); + if ($self->{result_values}->{role} eq 'slave') { + $msg .= sprintf(" [sync status: %s]", + $self->{result_values}->{sync}); + } + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{role} = $options{new_datas}->{$self->{instance} . '_role'}; + $self->{result_values}->{status} = $options{new_datas}->{$self->{instance} . '_status'}; + $self->{result_values}->{detailed_status} = $options{new_datas}->{$self->{instance} . '_detailed_status'}; + $self->{result_values}->{loading} = $options{new_datas}->{$self->{instance} . '_loading'}; + $self->{result_values}->{sync} = $options{new_datas}->{$self->{instance} . '_sync'}; + $self->{result_values}->{backup} = $options{new_datas}->{$self->{instance} . '_backup'}; + return 0; +} + +sub custom_operations_output { + my ($self, %options) = @_; + + my $msg = sprintf("%s operations rates (hits/misses): %s/%s ops/s", + $self->{result_values}->{operation}, + $self->{result_values}->{hits}, + $self->{result_values}->{misses}); + return $msg; +} + +sub custom_operations_calc { + my ($self, %options) = @_; + + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{display}}; + $self->{result_values}->{operation} = $options{extra_options}->{operation}; + $self->{result_values}->{hits} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{hits}}; + $self->{result_values}->{misses} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{misses}}; + return 0; +} + +sub custom_cpu_output { + my ($self, %options) = @_; + + my $msg = sprintf("%s CPU usage (user/system): %s/%s %%", + $self->{result_values}->{cpu}, + $self->{result_values}->{user}, + $self->{result_values}->{system}); + return $msg; +} + +sub custom_cpu_calc { + my ($self, %options) = @_; + + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{display}}; + $self->{result_values}->{cpu} = $options{extra_options}->{cpu}; + $self->{result_values}->{user} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{user}}; + $self->{result_values}->{system} = $options{new_datas}->{$self->{instance} . '_' . $options{extra_options}->{system}}; + return 0; +} + +sub prefix_output { + my ($self, %options) = @_; + + return "Shard '" . $options{instance_value}->{display} . "' "; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'shards', type => 1, cb_prefix_output => 'prefix_output', message_multiple => 'All shards counters are ok' }, + ]; + + $self->{maps_counters}->{shards} = [ + { label => 'status', threshold => 0, set => { + key_values => [ { name => 'status' }, { name => 'detailed_status' }, { name => 'role' }, + { name => 'loading' }, { name => 'sync' }, { name => 'backup' } ], + closure_custom_calc => $self->can('custom_status_calc'), + closure_custom_output => $self->can('custom_status_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + { label => 'total-cpu', set => { + key_values => [ { name => 'shard_cpu_user' }, { name => 'shard_cpu_system' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_cpu_calc'), + closure_custom_calc_extra_options => { cpu => 'Total', user => 'shard_cpu_user', + system => 'shard_cpu_system', display => 'display' }, + closure_custom_output => $self->can('custom_cpu_output'), + perfdatas => [ + { label => 'total_cpu_user', value => 'user', template => '%s', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, + { label => 'total_cpu_system', value => 'system', template => '%s', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, + ], + } + }, + { label => 'fork-cpu', set => { + key_values => [ { name => 'fork_cpu_user' }, { name => 'fork_cpu_system' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_cpu_calc'), + closure_custom_calc_extra_options => { cpu => 'Fork', user => 'fork_cpu_user', + system => 'fork_cpu_system', display => 'display' }, + closure_custom_output => $self->can('custom_cpu_output'), + perfdatas => [ + { label => 'fork_cpu_user', value => 'user', template => '%s', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, + { label => 'fork_cpu_system', value => 'system', template => '%s', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, + ], + } + }, + { label => 'main-thread-cpu', set => { + key_values => [ { name => 'main_thread_cpu_user' }, { name => 'main_thread_cpu_system' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_cpu_calc'), + closure_custom_calc_extra_options => { cpu => 'Main thread', user => 'main_thread_cpu_user', + system => 'main_thread_cpu_system', display => 'display' }, + closure_custom_output => $self->can('custom_cpu_output'), + perfdatas => [ + { label => 'main_thread_cpu_user', value => 'user', template => '%s', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, + { label => 'main_thread_cpu_system', value => 'system', template => '%s', + min => 0, max => 100, unit => '%', label_extra_instance => 1, instance_use => 'display' }, + ], + } + }, + { label => 'memory', set => { + key_values => [ { name => 'used_memory' }, { name => 'display' } ], + output_template => 'Memory used: %s %s', + output_change_bytes => 1, + perfdatas => [ + { label => 'memory', value => 'used_memory_absolute', template => '%s', + min => 0, unit => 'B', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'mem-frag-ratio', set => { + key_values => [ { name => 'mem_frag_ratio' }, { name => 'display' } ], + output_template => 'Memory fragmentation ratio: %s', + perfdatas => [ + { label => 'mem_frag_ratio', value => 'mem_frag_ratio_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'connected-clients', set => { + key_values => [ { name => 'connected_clients' }, { name => 'display' } ], + output_template => 'Connected clients: %s', + perfdatas => [ + { label => 'connected_clients', value => 'connected_clients_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'blocked-clients', set => { + key_values => [ { name => 'blocked_clients' }, { name => 'display' } ], + output_template => 'Blocked clients: %s', + perfdatas => [ + { label => 'blocked_clients', value => 'blocked_clients_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'requests', set => { + key_values => [ { name => 'total_req'}, { name => 'display' }], + output_template => 'Requests rate: %s ops/s', + perfdatas => [ + { label => 'requests', value => 'total_req_absolute', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'keys', set => { + key_values => [ { name => 'no_of_keys' }, { name => 'display' } ], + output_template => 'Total keys: %s', + perfdatas => [ + { label => 'keys', value => 'no_of_keys_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'volatile-keys', set => { + key_values => [ { name => 'no_of_expires' }, { name => 'display' } ], + output_template => 'Volatile keys: %s', + perfdatas => [ + { label => 'volatile_keys', value => 'no_of_expires_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'evicted-objects', set => { + key_values => [ { name => 'evicted_objects' }, { name => 'display' } ], + output_template => 'Evicted objects rate: %s evictions/sec', + perfdatas => [ + { label => 'evicted_objects', value => 'evicted_objects_absolute', template => '%s', + min => 0, unit => 'evictions/sec', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'expired-objects', set => { + key_values => [ { name => 'expired_objects' }, { name => 'display' } ], + output_template => 'Expired objects rate: %s expirations/sec', + perfdatas => [ + { label => 'expired_objects', value => 'expired_objects_absolute', template => '%s', + min => 0, unit => 'expirations/sec', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'read-rates', set => { + key_values => [ { name => 'read_hits' }, { name => 'read_misses' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_operations_calc'), + closure_custom_calc_extra_options => { operation => 'Read', hits => 'read_hits', + misses => 'read_misses', display => 'display' }, + closure_custom_output => $self->can('custom_operations_output'), + perfdatas => [ + { label => 'read_hits', value => 'hits', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + { label => 'read_misses', value => 'misses', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + ], + } + }, + { label => 'write-rates', set => { + key_values => [ { name => 'write_hits' }, { name => 'write_misses' }, { name => 'display' } ], + closure_custom_calc => $self->can('custom_operations_calc'), + closure_custom_calc_extra_options => { operation => 'Write', hits => 'write_hits', + misses => 'write_misses', display => 'display' }, + closure_custom_output => $self->can('custom_operations_output'), + perfdatas => [ + { label => 'write_hits', value => 'hits', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + { label => 'write_misses', value => 'misses', template => '%s', + min => 0, unit => 'ops/s', label_extra_instance => 1, instance_use => 'display' }, + ], + } + }, + { label => 'rdb-changes-since-last-save', set => { + key_values => [ { name => 'rdb_changes_since_last_save' }, { name => 'display' } ], + output_template => 'Rdb changes since last save: %s', + perfdatas => [ + { label => 'rdb_changes_since_last_save', value => 'rdb_changes_since_last_save_absolute', template => '%s', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'last-save-time', set => { + key_values => [ { name => 'last_save_time' }, { name => 'last_save_time_sec' }, { name => 'display' } ], + output_template => 'Last same time: %s', + perfdatas => [ + { label => 'last_save_time', value => 'last_save_time_sec_absolute', template => '%s', + min => 0, unit => 's', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "filter-shard:s" => { name => 'filter_shard' }, + "warning-status:s" => { name => 'warning_status', default => '' }, + "critical-status:s" => { name => 'critical_status', default => '%{status} =~ /inactive/i | %{backup} =~ /failed/i | + %{sync} =~ /link_down/i' }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; + $self->change_macros(); +} + +sub change_macros { + my ($self, %options) = @_; + + foreach (('warning_status', 'critical_status')) { + if (defined($self->{option_results}->{$_})) { + $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; + } + } +} + +sub manage_selection { + my ($self, %options) = @_; + + my $result = $options{custom}->get(path => '/v1/shards/stats/last?interval='.$options{custom}->get_interval()); + my $result2 = $options{custom}->get(path => '/v1/shards'); + + foreach my $shard (keys $result) { + if (defined($self->{option_results}->{filter_shard}) && $self->{option_results}->{filter_shard} ne '' && + $shard !~ /$self->{option_results}->{filter_shard}/) { + $self->{output}->output_add(long_msg => "skipping shard '" . $shard . "': no matching filter.", debug => 1); + next; + } + + $self->{shards}->{$shard} = { + display => $shard, + status => defined($result2->{$shard}->{status}) ? $result2->{$shard}->{status} : '-', + detailed_status => defined($result2->{$shard}->{detailed_status}) ? $result2->{$shard}->{detailed_status} : '-', + role => defined($result2->{$shard}->{role}) ? $result2->{$shard}->{role} : '-', + loading => defined($result2->{$shard}->{loading}->{status}) ? $result2->{$shard}->{loading}->{status} : '-', + sync => defined($result2->{$shard}->{sync}->{status}) ? $result2->{$shard}->{sync}->{status} : '-', + backup => defined($result2->{$shard}->{backup}->{status}) ? $result2->{$shard}->{backup}->{status} : '-', + used_memory => $result->{$shard}->{used_memory}, + mem_frag_ratio => $result->{$shard}->{mem_frag_ratio}, + shard_cpu_user => $result->{$shard}->{shard_cpu_user} * 100, + shard_cpu_system => $result->{$shard}->{shard_cpu_system} * 100, + main_thread_cpu_user => $result->{$shard}->{main_thread_cpu_user} * 100, + main_thread_cpu_system => $result->{$shard}->{main_thread_cpu_system} * 100, + fork_cpu_user => $result->{$shard}->{fork_cpu_user} * 100, + fork_cpu_system => $result->{$shard}->{fork_cpu_system} * 100, + connected_clients => $result->{$shard}->{connected_clients}, + blocked_clients => $result->{$shard}->{blocked_clients}, + total_req => defined($result->{$shard}->{total_req}) ? $result->{$shard}->{total_req} : $result->{$shard}->{instantaneous_ops_per_sec}, + no_of_keys => $result->{$shard}->{no_of_keys}, + no_of_expires => $result->{$shard}->{no_of_expires}, + evicted_objects => $result->{$shard}->{evicted_objects}, + expired_objects => $result->{$shard}->{expired_objects}, + read_hits => $result->{$shard}->{read_hits}, + read_misses => $result->{$shard}->{read_misses}, + write_hits => $result->{$shard}->{write_hits}, + write_misses => $result->{$shard}->{write_misses}, + rdb_changes_since_last_save => $result->{$shard}->{rdb_changes_since_last_save}, + last_save_time => centreon::plugins::misc::change_seconds(value => time() - $result->{$shard}->{last_save_time}), + last_save_time_sec => time() - $result->{$shard}->{last_save_time}, + }; + + if (scalar(keys %{$self->{shards}}) <= 0) { + $self->{output}->add_option_msg(short_msg => 'No shards detected, check your filter ? '); + $self->{output}->option_exit(); + } + } +} + +1; + +__END__ + +=head1 MODE + +Check RedisLabs Enterprise Cluster shards statistics. + +=over 8 + +=item B<--filter-counters> + +Only display some counters (regexp can be used). +Example: --filter-counters='clients' + +=item B<--warning-status> + +Set warning threshold for status. +Can used special variables like: %{status}, %{detailed_status}, +%{role}, %{loading}, %{sync}, %{backup}. +'status' can be: 'active', 'inactive', 'trimming'. +'detailed_status' can be: 'ok', 'importing', 'timeout', +'loading', 'busy', 'down', 'trimming', 'unknown'. +'role' can be: 'slave', 'master'. +'loading' can be: 'in_progress', 'idle'. +'sync' can be: 'in_progress', 'idle', 'link_down'. +'backup' can be: 'exporting', 'succeeded', 'failed'. + +=item B<--critical-status> + +Set critical threshold for status (Default: '%{status} =~ /inactive/i | +%{backup} =~ /failed/i | %{sync} =~ /link_down/i'). +Can used special variables like: %{status}, %{detailed_status}, +%{role}, %{loading}, %{sync}, %{backup}. +'status' can be: 'active', 'inactive', 'trimming'. +'detailed_status' can be: 'ok', 'importing', 'timeout', +'loading', 'busy', 'down', 'trimming', 'unknown'. +'role' can be: 'slave', 'master'. +'loading' can be: 'in_progress', 'idle'. +'sync' can be: 'in_progress', 'idle', 'link_down'. +'backup' can be: 'exporting', 'succeeded', 'failed'. + +=item B<--warning-*> + +Threshold warning. +Can be: 'total-cpu', 'fork-cpu', 'main-thread-cpu', +'memory', 'mem-frag-ratio', +'connected-clients', 'blocked-clients', +'request', 'keys', +'evicted-objects', 'expired-objects', +'read-rates', 'write-rates', +'rdb-changes-since-last-save', 'last-save-time', + +=item B<--critical-*> + +Threshold critical. +Can be: 'total-cpu', 'fork-cpu', 'main-thread-cpu', +'memory', 'mem-frag-ratio', +'connected-clients', 'blocked-clients', +'request', 'keys', +'evicted-objects', 'expired-objects', +'read-rates', 'write-rates', +'rdb-changes-since-last-save', 'last-save-time', + +=back + +=cut diff --git a/apps/redis/restapi/plugin.pm b/apps/redis/restapi/plugin.pm index 2d94ada50..5e0395f1b 100644 --- a/apps/redis/restapi/plugin.pm +++ b/apps/redis/restapi/plugin.pm @@ -1,54 +1,54 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package apps::redis::restapi::plugin; - -use strict; -use warnings; -use base qw(centreon::plugins::script_custom); - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options); - bless $self, $class; - - $self->{version} = '0.1'; - %{$self->{modes}} = ( - 'databases-stats' => 'apps::redis::restapi::mode::databasesstats', - 'cluster-stats' => 'apps::redis::restapi::mode::clusterstats', - 'list-databases' => 'apps::redis::restapi::mode::listdatabases', - 'list-nodes' => 'apps::redis::restapi::mode::listnodes', - 'list-shards' => 'apps::redis::restapi::mode::listshards', - 'nodes-stats' => 'apps::redis::restapi::mode::nodesstats', - 'shards-stats' => 'apps::redis::restapi::mode::shardsstats', - ); - $self->{custom_modes}{api} = 'apps::redis::restapi::custom::api'; - return $self; -} - -1; - -__END__ - -=head1 PLUGIN DESCRIPTION - -Check RedisLabs Enterprise Cluster through HTTP/REST API. - -=cut +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::redis::restapi::plugin; + +use strict; +use warnings; +use base qw(centreon::plugins::script_custom); + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '0.1'; + %{$self->{modes}} = ( + 'databases-stats' => 'apps::redis::restapi::mode::databasesstats', + 'cluster-stats' => 'apps::redis::restapi::mode::clusterstats', + 'list-databases' => 'apps::redis::restapi::mode::listdatabases', + 'list-nodes' => 'apps::redis::restapi::mode::listnodes', + 'list-shards' => 'apps::redis::restapi::mode::listshards', + 'nodes-stats' => 'apps::redis::restapi::mode::nodesstats', + 'shards-stats' => 'apps::redis::restapi::mode::shardsstats', + ); + $self->{custom_modes}{api} = 'apps::redis::restapi::custom::api'; + return $self; +} + +1; + +__END__ + +=head1 PLUGIN DESCRIPTION + +Check RedisLabs Enterprise Cluster through HTTP/REST API. + +=cut diff --git a/apps/rrdcached/mode/stats.pm b/apps/rrdcached/mode/stats.pm index ac8eb8b65..bb104f56f 100644 --- a/apps/rrdcached/mode/stats.pm +++ b/apps/rrdcached/mode/stats.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/rrdcached/plugin.pm b/apps/rrdcached/plugin.pm index 55413f40c..2b57cc3d6 100644 --- a/apps/rrdcached/plugin.pm +++ b/apps/rrdcached/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/selenium/mode/scenario.pm b/apps/selenium/mode/scenario.pm index 0c744f213..01d82ecd4 100644 --- a/apps/selenium/mode/scenario.pm +++ b/apps/selenium/mode/scenario.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/selenium/plugin.pm b/apps/selenium/plugin.pm index 1a24bd221..4486ee574 100644 --- a/apps/selenium/plugin.pm +++ b/apps/selenium/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/sendmail/snmp/plugin.pm b/apps/sendmail/snmp/plugin.pm index 47ada3585..448e0971d 100644 --- a/apps/sendmail/snmp/plugin.pm +++ b/apps/sendmail/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/tomcat/jmx/mode/connectorusage.pm b/apps/tomcat/jmx/mode/connectorusage.pm index 4ab1dedbc..7a856e122 100644 --- a/apps/tomcat/jmx/mode/connectorusage.pm +++ b/apps/tomcat/jmx/mode/connectorusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/tomcat/jmx/mode/datasourceusage.pm b/apps/tomcat/jmx/mode/datasourceusage.pm index e43485452..898f3a565 100644 --- a/apps/tomcat/jmx/mode/datasourceusage.pm +++ b/apps/tomcat/jmx/mode/datasourceusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/tomcat/jmx/mode/listdatasources.pm b/apps/tomcat/jmx/mode/listdatasources.pm index babbeec93..928840c20 100644 --- a/apps/tomcat/jmx/mode/listdatasources.pm +++ b/apps/tomcat/jmx/mode/listdatasources.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/tomcat/jmx/mode/listwebapps.pm b/apps/tomcat/jmx/mode/listwebapps.pm index d42afc749..192b5af29 100644 --- a/apps/tomcat/jmx/mode/listwebapps.pm +++ b/apps/tomcat/jmx/mode/listwebapps.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/tomcat/jmx/mode/webappssessions.pm b/apps/tomcat/jmx/mode/webappssessions.pm index 165826a02..e704d3c26 100644 --- a/apps/tomcat/jmx/mode/webappssessions.pm +++ b/apps/tomcat/jmx/mode/webappssessions.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/tomcat/jmx/plugin.pm b/apps/tomcat/jmx/plugin.pm index 2d732e713..135658b3f 100644 --- a/apps/tomcat/jmx/plugin.pm +++ b/apps/tomcat/jmx/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/tomcat/web/mode/applications.pm b/apps/tomcat/web/mode/applications.pm index f3cf4eb8a..df77f68d7 100644 --- a/apps/tomcat/web/mode/applications.pm +++ b/apps/tomcat/web/mode/applications.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/tomcat/web/mode/listapplication.pm b/apps/tomcat/web/mode/listapplication.pm index 2a4efb2d2..fb7db50bb 100644 --- a/apps/tomcat/web/mode/listapplication.pm +++ b/apps/tomcat/web/mode/listapplication.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/tomcat/web/mode/memory.pm b/apps/tomcat/web/mode/memory.pm index e2896cf72..5b9f7c2fe 100644 --- a/apps/tomcat/web/mode/memory.pm +++ b/apps/tomcat/web/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/tomcat/web/mode/requestinfo.pm b/apps/tomcat/web/mode/requestinfo.pm index 423afef5e..27c693147 100644 --- a/apps/tomcat/web/mode/requestinfo.pm +++ b/apps/tomcat/web/mode/requestinfo.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/tomcat/web/mode/sessions.pm b/apps/tomcat/web/mode/sessions.pm index 10fa12070..6b0f7faa2 100644 --- a/apps/tomcat/web/mode/sessions.pm +++ b/apps/tomcat/web/mode/sessions.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/tomcat/web/mode/threads.pm b/apps/tomcat/web/mode/threads.pm index 4063863fe..00e624a0d 100644 --- a/apps/tomcat/web/mode/threads.pm +++ b/apps/tomcat/web/mode/threads.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/tomcat/web/mode/traffic.pm b/apps/tomcat/web/mode/traffic.pm index eecf4001d..eb4089ed5 100644 --- a/apps/tomcat/web/mode/traffic.pm +++ b/apps/tomcat/web/mode/traffic.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/tomcat/web/plugin.pm b/apps/tomcat/web/plugin.pm index e73ae1d39..d2d4daaf0 100644 --- a/apps/tomcat/web/plugin.pm +++ b/apps/tomcat/web/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/toshiba/storemate/sql/mode/maintenanceplan.pm b/apps/toshiba/storemate/sql/mode/maintenanceplan.pm index 9046b7a60..3bd18ebb1 100644 --- a/apps/toshiba/storemate/sql/mode/maintenanceplan.pm +++ b/apps/toshiba/storemate/sql/mode/maintenanceplan.pm @@ -1,214 +1,214 @@ -# -# Copyright 2017 Centreon (http://www.centreon.com/) -# -# Centreon is a full-fledged industry-strength solution that meets -# the needs in IT infrastructure and application monitoring for -# service performance. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -package apps::toshiba::storemate::sql::mode::maintenanceplan; - -use base qw(centreon::plugins::templates::counter); - -use strict; -use warnings; -use centreon::plugins::misc; -use centreon::plugins::statefile; - -my $instance_mode; - -sub custom_status_threshold { - my ($self, %options) = @_; - my $status = 'ok'; - my $message; - - eval { - local $SIG{__WARN__} = sub { $message = $_[0]; }; - local $SIG{__DIE__} = sub { $message = $_[0]; }; - - if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && - eval "$instance_mode->{option_results}->{critical_status}") { - $status = 'critical'; - } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && - eval "$instance_mode->{option_results}->{warning_status}") { - $status = 'warning'; - } - }; - if (defined($message)) { - $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); - } - - return $status; -} - -sub custom_status_output { - my ($self, %options) = @_; - - my $msg = sprintf("alarm [workstation: %s] [text: %s] %s", $self->{result_values}->{workstation_id}, - $self->{result_values}->{description}, $self->{result_values}->{generation_time}); - return $msg; -} - -sub custom_status_calc { - my ($self, %options) = @_; - - $self->{result_values}->{description} = $options{new_datas}->{$self->{instance} . '_description'}; - $self->{result_values}->{workstation_id} = $options{new_datas}->{$self->{instance} . '_workstation_id'}; - $self->{result_values}->{since} = $options{new_datas}->{$self->{instance} . '_since'}; - $self->{result_values}->{generation_time} = $options{new_datas}->{$self->{instance} . '_generation_time'}; - return 0; -} - -sub set_counters { - my ($self, %options) = @_; - - $self->{maps_counters_type} = [ - { name => 'alarms', type => 2, message_multiple => '0 problem(s) detected', display_counter_problem => { label => 'alerts', min => 0 }, - group => [ { name => 'alarm', skipped_code => { -11 => 1 } } ] - } - ]; - - $self->{maps_counters}->{alarm} = [ - { label => 'status', threshold => 0, set => { - key_values => [ { name => 'description' }, { name => 'workstation_id' }, { name => 'since' }, { name => 'generation_time' } ], - closure_custom_calc => $self->can('custom_status_calc'), - closure_custom_output => $self->can('custom_status_output'), - closure_custom_perfdata => sub { return 0; }, - closure_custom_threshold_check => $self->can('custom_status_threshold'), - } - }, - ]; -} - -sub new { - my ($class, %options) = @_; - my $self = $class->SUPER::new(package => __PACKAGE__, %options); - bless $self, $class; - - $self->{version} = '1.0'; - $options{options}->add_options(arguments => - { - "database:s" => { name => 'database', default => 'Framework' }, - "warning-status:s" => { name => 'warning_status', default => '' }, - "critical-status:s" => { name => 'critical_status', default => '1 == 1' }, - "memory" => { name => 'memory' }, - "timezone:s" => { name => 'timezone' }, - }); - - centreon::plugins::misc::mymodule_load(output => $self->{output}, module => 'DateTime', - error_msg => "Cannot load module 'DateTime'."); - $self->{statefile_cache} = centreon::plugins::statefile->new(%options); - return $self; -} - -sub check_options { - my ($self, %options) = @_; - $self->SUPER::check_options(%options); - - $instance_mode = $self; - $self->change_macros(); - if (defined($self->{option_results}->{memory})) { - $self->{statefile_cache}->check_options(%options); - } - - $self->{option_results}->{timezone} = 'GMT' if (!defined($self->{option_results}->{timezone}) || $self->{option_results}->{timezone} eq ''); -} - -sub change_macros { - my ($self, %options) = @_; - - foreach (('warning_status', 'critical_status')) { - if (defined($self->{option_results}->{$_})) { - $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; - } - } -} - -sub manage_selection { - my ($self, %options) = @_; - - $self->{sql} = $options{sql}; - $self->{sql}->connect(); - $self->{sql}->query(query => "SELECT CONVERT(varchar, LOGDATE, 120) as LOGDATE, WORKSTATION_ID, USER_ID, DESCRIPTION, DESCRIPTION_PARAMETERS - FROM " . $self->{option_results}->{database} . ".dbo.log - WHERE (TYPE <> 1) AND (DESCRIPTION_PARAMETERS LIKE N'\%FO\%') AND (TASKNAME = 'FOCleanup')"); - $self->{alarms}->{global} = { alarm => {} }; - my $last_time; - if (defined($self->{option_results}->{memory})) { - $self->{statefile_cache}->read(statefile => 'cache_toshiba_storemate_' . $self->{mode} . '_' . $self->{sql}->get_unique_id4save()); - $last_time = $self->{statefile_cache}->get(name => 'last_time'); - } - - my ($i, $current_time) = (1, time()); - while (my $row = $self->{sql}->fetchrow_hashref()) { - # date form: 2017-09-22 01:01:08.133 - $row->{LOGDATE} =~ /^(\d+)-(\d+)-(\d+)\s+(\d+)[:\/](\d+)[:\/](\d+)/; - - my $dt = DateTime->new(year => $1, month => $2, day => $3, hour => $4, minute => $5, second => $6, - time_zone => $self->{option_results}->{timezone}); - - next if (defined($self->{option_results}->{memory}) && defined($last_time) && $last_time > $dt->epoch); - - my $diff_time = $current_time - $dt->epoch; - - $self->{alarms}->{global}->{alarm}->{$i} = { - description => $row->{DESCRIPTION}, - workstation_id => $row->{WORKSTATION_ID}, - since => $diff_time, generation_time => centreon::plugins::misc::change_seconds(value => $diff_time) - }; - $i++; - } - - if (defined($self->{option_results}->{memory})) { - $self->{statefile_cache}->write(data => { last_time => $current_time }); - } -} - -1; - -__END__ - -=head1 MODE - -Check the maintenance plan error logs. - -=over 8 - -=item B<--database> - -Database name (default: 'Framework'). - -=item B<--warning-status> - -Set warning threshold for status (Default: '') -Can used special variables like: %{description}, %{workstation_id}, %{since} - -=item B<--critical-status> - -Set critical threshold for status (Default: '1 == 1'. We match all errors). -Can used special variables like: %{description}, %{workstation_id}, %{since} - -=item B<--timezone> - -Timezone of time options. Default is 'GMT'. - -=item B<--memory> - -Only check new alarms. - -=back - -=cut - +# +# Copyright 2018 Centreon (http://www.centreon.com/) +# +# Centreon is a full-fledged industry-strength solution that meets +# the needs in IT infrastructure and application monitoring for +# service performance. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +package apps::toshiba::storemate::sql::mode::maintenanceplan; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use centreon::plugins::misc; +use centreon::plugins::statefile; + +my $instance_mode; + +sub custom_status_threshold { + my ($self, %options) = @_; + my $status = 'ok'; + my $message; + + eval { + local $SIG{__WARN__} = sub { $message = $_[0]; }; + local $SIG{__DIE__} = sub { $message = $_[0]; }; + + if (defined($instance_mode->{option_results}->{critical_status}) && $instance_mode->{option_results}->{critical_status} ne '' && + eval "$instance_mode->{option_results}->{critical_status}") { + $status = 'critical'; + } elsif (defined($instance_mode->{option_results}->{warning_status}) && $instance_mode->{option_results}->{warning_status} ne '' && + eval "$instance_mode->{option_results}->{warning_status}") { + $status = 'warning'; + } + }; + if (defined($message)) { + $self->{output}->output_add(long_msg => 'filter status issue: ' . $message); + } + + return $status; +} + +sub custom_status_output { + my ($self, %options) = @_; + + my $msg = sprintf("alarm [workstation: %s] [text: %s] %s", $self->{result_values}->{workstation_id}, + $self->{result_values}->{description}, $self->{result_values}->{generation_time}); + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{description} = $options{new_datas}->{$self->{instance} . '_description'}; + $self->{result_values}->{workstation_id} = $options{new_datas}->{$self->{instance} . '_workstation_id'}; + $self->{result_values}->{since} = $options{new_datas}->{$self->{instance} . '_since'}; + $self->{result_values}->{generation_time} = $options{new_datas}->{$self->{instance} . '_generation_time'}; + return 0; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'alarms', type => 2, message_multiple => '0 problem(s) detected', display_counter_problem => { label => 'alerts', min => 0 }, + group => [ { name => 'alarm', skipped_code => { -11 => 1 } } ] + } + ]; + + $self->{maps_counters}->{alarm} = [ + { label => 'status', threshold => 0, set => { + key_values => [ { name => 'description' }, { name => 'workstation_id' }, { name => 'since' }, { name => 'generation_time' } ], + closure_custom_calc => $self->can('custom_status_calc'), + closure_custom_output => $self->can('custom_status_output'), + closure_custom_perfdata => sub { return 0; }, + closure_custom_threshold_check => $self->can('custom_status_threshold'), + } + }, + ]; +} + +sub new { + my ($class, %options) = @_; + my $self = $class->SUPER::new(package => __PACKAGE__, %options); + bless $self, $class; + + $self->{version} = '1.0'; + $options{options}->add_options(arguments => + { + "database:s" => { name => 'database', default => 'Framework' }, + "warning-status:s" => { name => 'warning_status', default => '' }, + "critical-status:s" => { name => 'critical_status', default => '1 == 1' }, + "memory" => { name => 'memory' }, + "timezone:s" => { name => 'timezone' }, + }); + + centreon::plugins::misc::mymodule_load(output => $self->{output}, module => 'DateTime', + error_msg => "Cannot load module 'DateTime'."); + $self->{statefile_cache} = centreon::plugins::statefile->new(%options); + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $instance_mode = $self; + $self->change_macros(); + if (defined($self->{option_results}->{memory})) { + $self->{statefile_cache}->check_options(%options); + } + + $self->{option_results}->{timezone} = 'GMT' if (!defined($self->{option_results}->{timezone}) || $self->{option_results}->{timezone} eq ''); +} + +sub change_macros { + my ($self, %options) = @_; + + foreach (('warning_status', 'critical_status')) { + if (defined($self->{option_results}->{$_})) { + $self->{option_results}->{$_} =~ s/%\{(.*?)\}/\$self->{result_values}->{$1}/g; + } + } +} + +sub manage_selection { + my ($self, %options) = @_; + + $self->{sql} = $options{sql}; + $self->{sql}->connect(); + $self->{sql}->query(query => "SELECT CONVERT(varchar, LOGDATE, 120) as LOGDATE, WORKSTATION_ID, USER_ID, DESCRIPTION, DESCRIPTION_PARAMETERS + FROM " . $self->{option_results}->{database} . ".dbo.log + WHERE (TYPE <> 1) AND (DESCRIPTION_PARAMETERS LIKE N'\%FO\%') AND (TASKNAME = 'FOCleanup')"); + $self->{alarms}->{global} = { alarm => {} }; + my $last_time; + if (defined($self->{option_results}->{memory})) { + $self->{statefile_cache}->read(statefile => 'cache_toshiba_storemate_' . $self->{mode} . '_' . $self->{sql}->get_unique_id4save()); + $last_time = $self->{statefile_cache}->get(name => 'last_time'); + } + + my ($i, $current_time) = (1, time()); + while (my $row = $self->{sql}->fetchrow_hashref()) { + # date form: 2017-09-22 01:01:08.133 + $row->{LOGDATE} =~ /^(\d+)-(\d+)-(\d+)\s+(\d+)[:\/](\d+)[:\/](\d+)/; + + my $dt = DateTime->new(year => $1, month => $2, day => $3, hour => $4, minute => $5, second => $6, + time_zone => $self->{option_results}->{timezone}); + + next if (defined($self->{option_results}->{memory}) && defined($last_time) && $last_time > $dt->epoch); + + my $diff_time = $current_time - $dt->epoch; + + $self->{alarms}->{global}->{alarm}->{$i} = { + description => $row->{DESCRIPTION}, + workstation_id => $row->{WORKSTATION_ID}, + since => $diff_time, generation_time => centreon::plugins::misc::change_seconds(value => $diff_time) + }; + $i++; + } + + if (defined($self->{option_results}->{memory})) { + $self->{statefile_cache}->write(data => { last_time => $current_time }); + } +} + +1; + +__END__ + +=head1 MODE + +Check the maintenance plan error logs. + +=over 8 + +=item B<--database> + +Database name (default: 'Framework'). + +=item B<--warning-status> + +Set warning threshold for status (Default: '') +Can used special variables like: %{description}, %{workstation_id}, %{since} + +=item B<--critical-status> + +Set critical threshold for status (Default: '1 == 1'. We match all errors). +Can used special variables like: %{description}, %{workstation_id}, %{since} + +=item B<--timezone> + +Timezone of time options. Default is 'GMT'. + +=item B<--memory> + +Only check new alarms. + +=back + +=cut + diff --git a/apps/toshiba/storemate/sql/mode/posstatus.pm b/apps/toshiba/storemate/sql/mode/posstatus.pm index b6069e951..b8dfff454 100644 --- a/apps/toshiba/storemate/sql/mode/posstatus.pm +++ b/apps/toshiba/storemate/sql/mode/posstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/varnish/local/mode/backend.pm b/apps/varnish/local/mode/backend.pm index 13e3d0985..b2b826192 100644 --- a/apps/varnish/local/mode/backend.pm +++ b/apps/varnish/local/mode/backend.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/varnish/local/mode/bans.pm b/apps/varnish/local/mode/bans.pm index e6b9de3bb..180c82bd0 100644 --- a/apps/varnish/local/mode/bans.pm +++ b/apps/varnish/local/mode/bans.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/varnish/local/mode/cache.pm b/apps/varnish/local/mode/cache.pm index 219a6c6db..6c99ac2cf 100644 --- a/apps/varnish/local/mode/cache.pm +++ b/apps/varnish/local/mode/cache.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/varnish/local/mode/clients.pm b/apps/varnish/local/mode/clients.pm index ec7d3d086..e5d8463f5 100644 --- a/apps/varnish/local/mode/clients.pm +++ b/apps/varnish/local/mode/clients.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/varnish/local/mode/connections.pm b/apps/varnish/local/mode/connections.pm index 3bd7e8470..657d12177 100644 --- a/apps/varnish/local/mode/connections.pm +++ b/apps/varnish/local/mode/connections.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/varnish/local/mode/dns.pm b/apps/varnish/local/mode/dns.pm index e8e145b5c..4b070fa88 100644 --- a/apps/varnish/local/mode/dns.pm +++ b/apps/varnish/local/mode/dns.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/varnish/local/mode/esi.pm b/apps/varnish/local/mode/esi.pm index f07b1b30c..30f3a1216 100644 --- a/apps/varnish/local/mode/esi.pm +++ b/apps/varnish/local/mode/esi.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/varnish/local/mode/fetch.pm b/apps/varnish/local/mode/fetch.pm index a20b75b2d..55d5c1522 100644 --- a/apps/varnish/local/mode/fetch.pm +++ b/apps/varnish/local/mode/fetch.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/varnish/local/mode/hcb.pm b/apps/varnish/local/mode/hcb.pm index e1a61c1b7..a3bc7dec1 100644 --- a/apps/varnish/local/mode/hcb.pm +++ b/apps/varnish/local/mode/hcb.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/varnish/local/mode/n.pm b/apps/varnish/local/mode/n.pm index aca112e6c..7bf1af9da 100644 --- a/apps/varnish/local/mode/n.pm +++ b/apps/varnish/local/mode/n.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/varnish/local/mode/objects.pm b/apps/varnish/local/mode/objects.pm index 48404d76e..673c3fc4c 100644 --- a/apps/varnish/local/mode/objects.pm +++ b/apps/varnish/local/mode/objects.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/varnish/local/mode/sessions.pm b/apps/varnish/local/mode/sessions.pm index c7a74c2a7..b2de79a7e 100644 --- a/apps/varnish/local/mode/sessions.pm +++ b/apps/varnish/local/mode/sessions.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/varnish/local/mode/shm.pm b/apps/varnish/local/mode/shm.pm index 552d85592..cdbc57c8a 100644 --- a/apps/varnish/local/mode/shm.pm +++ b/apps/varnish/local/mode/shm.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/varnish/local/mode/sms.pm b/apps/varnish/local/mode/sms.pm index 52937036d..bf98c4564 100644 --- a/apps/varnish/local/mode/sms.pm +++ b/apps/varnish/local/mode/sms.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/varnish/local/mode/threads.pm b/apps/varnish/local/mode/threads.pm index fb72a38f1..d1db3c13a 100644 --- a/apps/varnish/local/mode/threads.pm +++ b/apps/varnish/local/mode/threads.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/varnish/local/mode/totals.pm b/apps/varnish/local/mode/totals.pm index d202ebe0a..a86023084 100644 --- a/apps/varnish/local/mode/totals.pm +++ b/apps/varnish/local/mode/totals.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/varnish/local/mode/uptime.pm b/apps/varnish/local/mode/uptime.pm index c798a5344..cd62cd27d 100644 --- a/apps/varnish/local/mode/uptime.pm +++ b/apps/varnish/local/mode/uptime.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/varnish/local/mode/vcl.pm b/apps/varnish/local/mode/vcl.pm index eb6a90bb5..dcdb007e2 100644 --- a/apps/varnish/local/mode/vcl.pm +++ b/apps/varnish/local/mode/vcl.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/varnish/local/mode/workers.pm b/apps/varnish/local/mode/workers.pm index 4533557a5..63b0bf488 100644 --- a/apps/varnish/local/mode/workers.pm +++ b/apps/varnish/local/mode/workers.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/varnish/local/plugin.pm b/apps/varnish/local/plugin.pm index d646541d2..c1910fe08 100644 --- a/apps/varnish/local/plugin.pm +++ b/apps/varnish/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/video/openheadend/snmp/mode/nodeusage.pm b/apps/video/openheadend/snmp/mode/nodeusage.pm index a39ec6a14..5bbb6baa7 100644 --- a/apps/video/openheadend/snmp/mode/nodeusage.pm +++ b/apps/video/openheadend/snmp/mode/nodeusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/video/openheadend/snmp/mode/operationstatus.pm b/apps/video/openheadend/snmp/mode/operationstatus.pm index 36c0163ef..d06772292 100644 --- a/apps/video/openheadend/snmp/mode/operationstatus.pm +++ b/apps/video/openheadend/snmp/mode/operationstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/video/openheadend/snmp/plugin.pm b/apps/video/openheadend/snmp/plugin.pm index 9681d37e6..eea343628 100644 --- a/apps/video/openheadend/snmp/plugin.pm +++ b/apps/video/openheadend/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/video/zixi/restapi/custom/api.pm b/apps/video/zixi/restapi/custom/api.pm index ede50ee12..1962596e4 100644 --- a/apps/video/zixi/restapi/custom/api.pm +++ b/apps/video/zixi/restapi/custom/api.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/video/zixi/restapi/mode/broadcasterinputusage.pm b/apps/video/zixi/restapi/mode/broadcasterinputusage.pm index 755669d8a..fad853e39 100644 --- a/apps/video/zixi/restapi/mode/broadcasterinputusage.pm +++ b/apps/video/zixi/restapi/mode/broadcasterinputusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/video/zixi/restapi/mode/broadcasterlicenseusage.pm b/apps/video/zixi/restapi/mode/broadcasterlicenseusage.pm index 720c193d6..e6c33a7ca 100644 --- a/apps/video/zixi/restapi/mode/broadcasterlicenseusage.pm +++ b/apps/video/zixi/restapi/mode/broadcasterlicenseusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/video/zixi/restapi/mode/broadcasteroutputusage.pm b/apps/video/zixi/restapi/mode/broadcasteroutputusage.pm index 9973a7637..2b2d9afca 100644 --- a/apps/video/zixi/restapi/mode/broadcasteroutputusage.pm +++ b/apps/video/zixi/restapi/mode/broadcasteroutputusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/video/zixi/restapi/mode/broadcastersystemusage.pm b/apps/video/zixi/restapi/mode/broadcastersystemusage.pm index 75bef28f9..16f094557 100644 --- a/apps/video/zixi/restapi/mode/broadcastersystemusage.pm +++ b/apps/video/zixi/restapi/mode/broadcastersystemusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/video/zixi/restapi/mode/feederinputusage.pm b/apps/video/zixi/restapi/mode/feederinputusage.pm index 559a86cd4..f240b28d4 100644 --- a/apps/video/zixi/restapi/mode/feederinputusage.pm +++ b/apps/video/zixi/restapi/mode/feederinputusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/video/zixi/restapi/mode/feederoutputusage.pm b/apps/video/zixi/restapi/mode/feederoutputusage.pm index a4fc8339a..dac1a713d 100644 --- a/apps/video/zixi/restapi/mode/feederoutputusage.pm +++ b/apps/video/zixi/restapi/mode/feederoutputusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/video/zixi/restapi/plugin.pm b/apps/video/zixi/restapi/plugin.pm index feaa65522..6ee9fa7fe 100644 --- a/apps/video/zixi/restapi/plugin.pm +++ b/apps/video/zixi/restapi/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/custom/connector.pm b/apps/vmware/connector/custom/connector.pm index 6b39120ba..77f575207 100644 --- a/apps/vmware/connector/custom/connector.pm +++ b/apps/vmware/connector/custom/connector.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/alarmdatacenter.pm b/apps/vmware/connector/mode/alarmdatacenter.pm index 446d85430..3720e352e 100644 --- a/apps/vmware/connector/mode/alarmdatacenter.pm +++ b/apps/vmware/connector/mode/alarmdatacenter.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/alarmhost.pm b/apps/vmware/connector/mode/alarmhost.pm index c4d6e3e7c..1f4a85e61 100644 --- a/apps/vmware/connector/mode/alarmhost.pm +++ b/apps/vmware/connector/mode/alarmhost.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/countvmhost.pm b/apps/vmware/connector/mode/countvmhost.pm index ebc36ca17..295f8a728 100644 --- a/apps/vmware/connector/mode/countvmhost.pm +++ b/apps/vmware/connector/mode/countvmhost.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/cpuhost.pm b/apps/vmware/connector/mode/cpuhost.pm index a147e8514..34f01fba6 100644 --- a/apps/vmware/connector/mode/cpuhost.pm +++ b/apps/vmware/connector/mode/cpuhost.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/cpuvm.pm b/apps/vmware/connector/mode/cpuvm.pm index e84484611..bbbc41133 100644 --- a/apps/vmware/connector/mode/cpuvm.pm +++ b/apps/vmware/connector/mode/cpuvm.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/datastorecountvm.pm b/apps/vmware/connector/mode/datastorecountvm.pm index 452172b05..8d4f14de3 100644 --- a/apps/vmware/connector/mode/datastorecountvm.pm +++ b/apps/vmware/connector/mode/datastorecountvm.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/datastorehost.pm b/apps/vmware/connector/mode/datastorehost.pm index 85eefe645..fc3fdd31a 100644 --- a/apps/vmware/connector/mode/datastorehost.pm +++ b/apps/vmware/connector/mode/datastorehost.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/datastoreio.pm b/apps/vmware/connector/mode/datastoreio.pm index e34e8eeda..802076b15 100644 --- a/apps/vmware/connector/mode/datastoreio.pm +++ b/apps/vmware/connector/mode/datastoreio.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/datastoreiops.pm b/apps/vmware/connector/mode/datastoreiops.pm index 6cb6bd4fe..ec7e944ab 100644 --- a/apps/vmware/connector/mode/datastoreiops.pm +++ b/apps/vmware/connector/mode/datastoreiops.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/datastoresnapshot.pm b/apps/vmware/connector/mode/datastoresnapshot.pm index e93be3ed9..c72703afc 100644 --- a/apps/vmware/connector/mode/datastoresnapshot.pm +++ b/apps/vmware/connector/mode/datastoresnapshot.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/datastoreusage.pm b/apps/vmware/connector/mode/datastoreusage.pm index 3544cf10d..6d53665ef 100644 --- a/apps/vmware/connector/mode/datastoreusage.pm +++ b/apps/vmware/connector/mode/datastoreusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/datastorevm.pm b/apps/vmware/connector/mode/datastorevm.pm index 0f116c456..4a5c5971b 100644 --- a/apps/vmware/connector/mode/datastorevm.pm +++ b/apps/vmware/connector/mode/datastorevm.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/devicevm.pm b/apps/vmware/connector/mode/devicevm.pm index 2fb64b89e..f418250db 100644 --- a/apps/vmware/connector/mode/devicevm.pm +++ b/apps/vmware/connector/mode/devicevm.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/getmap.pm b/apps/vmware/connector/mode/getmap.pm index af2286615..f3d5e45cd 100644 --- a/apps/vmware/connector/mode/getmap.pm +++ b/apps/vmware/connector/mode/getmap.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/healthhost.pm b/apps/vmware/connector/mode/healthhost.pm index 0c2e0401a..9c488f261 100644 --- a/apps/vmware/connector/mode/healthhost.pm +++ b/apps/vmware/connector/mode/healthhost.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/limitvm.pm b/apps/vmware/connector/mode/limitvm.pm index 0338fc9a4..46b60366a 100644 --- a/apps/vmware/connector/mode/limitvm.pm +++ b/apps/vmware/connector/mode/limitvm.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/listclusters.pm b/apps/vmware/connector/mode/listclusters.pm index 8ca4bf352..36b122b28 100644 --- a/apps/vmware/connector/mode/listclusters.pm +++ b/apps/vmware/connector/mode/listclusters.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/listdatacenters.pm b/apps/vmware/connector/mode/listdatacenters.pm index 30a443427..e776f934d 100644 --- a/apps/vmware/connector/mode/listdatacenters.pm +++ b/apps/vmware/connector/mode/listdatacenters.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/listdatastores.pm b/apps/vmware/connector/mode/listdatastores.pm index b268fb96f..6d9ff3ba0 100644 --- a/apps/vmware/connector/mode/listdatastores.pm +++ b/apps/vmware/connector/mode/listdatastores.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/listnichost.pm b/apps/vmware/connector/mode/listnichost.pm index 150d40014..5288edc5d 100644 --- a/apps/vmware/connector/mode/listnichost.pm +++ b/apps/vmware/connector/mode/listnichost.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/maintenancehost.pm b/apps/vmware/connector/mode/maintenancehost.pm index 5f2de2d7c..0400b40d7 100644 --- a/apps/vmware/connector/mode/maintenancehost.pm +++ b/apps/vmware/connector/mode/maintenancehost.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/memoryhost.pm b/apps/vmware/connector/mode/memoryhost.pm index 462da960f..25ac497b7 100644 --- a/apps/vmware/connector/mode/memoryhost.pm +++ b/apps/vmware/connector/mode/memoryhost.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/memoryvm.pm b/apps/vmware/connector/mode/memoryvm.pm index cab36f82a..db483c6ee 100644 --- a/apps/vmware/connector/mode/memoryvm.pm +++ b/apps/vmware/connector/mode/memoryvm.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/nethost.pm b/apps/vmware/connector/mode/nethost.pm index 20871363c..1e91d2a22 100644 --- a/apps/vmware/connector/mode/nethost.pm +++ b/apps/vmware/connector/mode/nethost.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/servicehost.pm b/apps/vmware/connector/mode/servicehost.pm index 4716dfd2b..d0d3a0e1e 100644 --- a/apps/vmware/connector/mode/servicehost.pm +++ b/apps/vmware/connector/mode/servicehost.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/snapshotvm.pm b/apps/vmware/connector/mode/snapshotvm.pm index dc8e95da5..51d5be7e0 100644 --- a/apps/vmware/connector/mode/snapshotvm.pm +++ b/apps/vmware/connector/mode/snapshotvm.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/statconnectors.pm b/apps/vmware/connector/mode/statconnectors.pm index 3f052e700..7d845b654 100644 --- a/apps/vmware/connector/mode/statconnectors.pm +++ b/apps/vmware/connector/mode/statconnectors.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/statushost.pm b/apps/vmware/connector/mode/statushost.pm index 279452b39..4305db752 100644 --- a/apps/vmware/connector/mode/statushost.pm +++ b/apps/vmware/connector/mode/statushost.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/statusvm.pm b/apps/vmware/connector/mode/statusvm.pm index 4503faea6..f8caec5fa 100644 --- a/apps/vmware/connector/mode/statusvm.pm +++ b/apps/vmware/connector/mode/statusvm.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/swaphost.pm b/apps/vmware/connector/mode/swaphost.pm index ada26cb89..a1854e15d 100644 --- a/apps/vmware/connector/mode/swaphost.pm +++ b/apps/vmware/connector/mode/swaphost.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/swapvm.pm b/apps/vmware/connector/mode/swapvm.pm index 3670ae3a6..acee5260c 100644 --- a/apps/vmware/connector/mode/swapvm.pm +++ b/apps/vmware/connector/mode/swapvm.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/thinprovisioningvm.pm b/apps/vmware/connector/mode/thinprovisioningvm.pm index 4e8037488..81cf0ef6e 100644 --- a/apps/vmware/connector/mode/thinprovisioningvm.pm +++ b/apps/vmware/connector/mode/thinprovisioningvm.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/timehost.pm b/apps/vmware/connector/mode/timehost.pm index 7d008d17d..afb8f5a2d 100644 --- a/apps/vmware/connector/mode/timehost.pm +++ b/apps/vmware/connector/mode/timehost.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/toolsvm.pm b/apps/vmware/connector/mode/toolsvm.pm index 7f94b8edf..5945444bf 100644 --- a/apps/vmware/connector/mode/toolsvm.pm +++ b/apps/vmware/connector/mode/toolsvm.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/uptimehost.pm b/apps/vmware/connector/mode/uptimehost.pm index cf19b5e17..63ecefb67 100644 --- a/apps/vmware/connector/mode/uptimehost.pm +++ b/apps/vmware/connector/mode/uptimehost.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/mode/vmoperationcluster.pm b/apps/vmware/connector/mode/vmoperationcluster.pm index 39de95f46..ff0f2eaa8 100644 --- a/apps/vmware/connector/mode/vmoperationcluster.pm +++ b/apps/vmware/connector/mode/vmoperationcluster.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/connector/plugin.pm b/apps/vmware/connector/plugin.pm index 96f78c16d..12e4d7518 100644 --- a/apps/vmware/connector/plugin.pm +++ b/apps/vmware/connector/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/wsman/mode/components/cim_card.pm b/apps/vmware/wsman/mode/components/cim_card.pm index 93c93557c..8de69d5d3 100644 --- a/apps/vmware/wsman/mode/components/cim_card.pm +++ b/apps/vmware/wsman/mode/components/cim_card.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/wsman/mode/components/cim_computersystem.pm b/apps/vmware/wsman/mode/components/cim_computersystem.pm index 75abc89fd..b1b336415 100644 --- a/apps/vmware/wsman/mode/components/cim_computersystem.pm +++ b/apps/vmware/wsman/mode/components/cim_computersystem.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/wsman/mode/components/cim_memory.pm b/apps/vmware/wsman/mode/components/cim_memory.pm index 072d33637..6e6a769cb 100644 --- a/apps/vmware/wsman/mode/components/cim_memory.pm +++ b/apps/vmware/wsman/mode/components/cim_memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/wsman/mode/components/cim_numericsensor.pm b/apps/vmware/wsman/mode/components/cim_numericsensor.pm index a81655b1f..aa1091f84 100644 --- a/apps/vmware/wsman/mode/components/cim_numericsensor.pm +++ b/apps/vmware/wsman/mode/components/cim_numericsensor.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/wsman/mode/components/cim_processor.pm b/apps/vmware/wsman/mode/components/cim_processor.pm index 990774d16..aa9d8bfe5 100644 --- a/apps/vmware/wsman/mode/components/cim_processor.pm +++ b/apps/vmware/wsman/mode/components/cim_processor.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/wsman/mode/components/cim_recordlog.pm b/apps/vmware/wsman/mode/components/cim_recordlog.pm index 7c57647d8..aeb8bef96 100644 --- a/apps/vmware/wsman/mode/components/cim_recordlog.pm +++ b/apps/vmware/wsman/mode/components/cim_recordlog.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/wsman/mode/components/omc_discretesensor.pm b/apps/vmware/wsman/mode/components/omc_discretesensor.pm index cafc5ff37..a06cbb532 100644 --- a/apps/vmware/wsman/mode/components/omc_discretesensor.pm +++ b/apps/vmware/wsman/mode/components/omc_discretesensor.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/wsman/mode/components/omc_fan.pm b/apps/vmware/wsman/mode/components/omc_fan.pm index 53e30c7e2..450bbc924 100644 --- a/apps/vmware/wsman/mode/components/omc_fan.pm +++ b/apps/vmware/wsman/mode/components/omc_fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/wsman/mode/components/omc_psu.pm b/apps/vmware/wsman/mode/components/omc_psu.pm index 74f95893c..9469980a1 100644 --- a/apps/vmware/wsman/mode/components/omc_psu.pm +++ b/apps/vmware/wsman/mode/components/omc_psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/wsman/mode/components/resources.pm b/apps/vmware/wsman/mode/components/resources.pm index 93530bc9a..684ae4f01 100644 --- a/apps/vmware/wsman/mode/components/resources.pm +++ b/apps/vmware/wsman/mode/components/resources.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/wsman/mode/components/vmware_battery.pm b/apps/vmware/wsman/mode/components/vmware_battery.pm index 3981080e3..351ef832a 100644 --- a/apps/vmware/wsman/mode/components/vmware_battery.pm +++ b/apps/vmware/wsman/mode/components/vmware_battery.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/wsman/mode/components/vmware_controller.pm b/apps/vmware/wsman/mode/components/vmware_controller.pm index 09cf24fe6..e357353e3 100644 --- a/apps/vmware/wsman/mode/components/vmware_controller.pm +++ b/apps/vmware/wsman/mode/components/vmware_controller.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/wsman/mode/components/vmware_sassataport.pm b/apps/vmware/wsman/mode/components/vmware_sassataport.pm index 99d89d6bd..498620248 100644 --- a/apps/vmware/wsman/mode/components/vmware_sassataport.pm +++ b/apps/vmware/wsman/mode/components/vmware_sassataport.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/wsman/mode/components/vmware_storageextent.pm b/apps/vmware/wsman/mode/components/vmware_storageextent.pm index 200e1304d..ab43bf72e 100644 --- a/apps/vmware/wsman/mode/components/vmware_storageextent.pm +++ b/apps/vmware/wsman/mode/components/vmware_storageextent.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/wsman/mode/components/vmware_storagevolume.pm b/apps/vmware/wsman/mode/components/vmware_storagevolume.pm index fc504f09f..4f545af15 100644 --- a/apps/vmware/wsman/mode/components/vmware_storagevolume.pm +++ b/apps/vmware/wsman/mode/components/vmware_storagevolume.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/wsman/mode/hardware.pm b/apps/vmware/wsman/mode/hardware.pm index 2cab3ff84..8766683f6 100644 --- a/apps/vmware/wsman/mode/hardware.pm +++ b/apps/vmware/wsman/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vmware/wsman/plugin.pm b/apps/vmware/wsman/plugin.pm index 270171165..2af739ed3 100644 --- a/apps/vmware/wsman/plugin.pm +++ b/apps/vmware/wsman/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/voip/asterisk/ami/custom/api.pm b/apps/voip/asterisk/ami/custom/api.pm index 0db61b7e2..826ad0ee2 100644 --- a/apps/voip/asterisk/ami/custom/api.pm +++ b/apps/voip/asterisk/ami/custom/api.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/voip/asterisk/ami/mode/channelusage.pm b/apps/voip/asterisk/ami/mode/channelusage.pm index e3f2b4e2a..6586c628e 100644 --- a/apps/voip/asterisk/ami/mode/channelusage.pm +++ b/apps/voip/asterisk/ami/mode/channelusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/voip/asterisk/ami/mode/dahdistatus.pm b/apps/voip/asterisk/ami/mode/dahdistatus.pm index 9c48d8ae8..18e884e17 100644 --- a/apps/voip/asterisk/ami/mode/dahdistatus.pm +++ b/apps/voip/asterisk/ami/mode/dahdistatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/voip/asterisk/ami/mode/sippeersusage.pm b/apps/voip/asterisk/ami/mode/sippeersusage.pm index c926ceeb3..0e5bf94f4 100644 --- a/apps/voip/asterisk/ami/mode/sippeersusage.pm +++ b/apps/voip/asterisk/ami/mode/sippeersusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/voip/asterisk/ami/plugin.pm b/apps/voip/asterisk/ami/plugin.pm index 543256fa8..8da88ebfd 100644 --- a/apps/voip/asterisk/ami/plugin.pm +++ b/apps/voip/asterisk/ami/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/voip/asterisk/snmp/mode/channelusage.pm b/apps/voip/asterisk/snmp/mode/channelusage.pm index 1fb70b503..c10c3e9a9 100644 --- a/apps/voip/asterisk/snmp/mode/channelusage.pm +++ b/apps/voip/asterisk/snmp/mode/channelusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/voip/asterisk/snmp/plugin.pm b/apps/voip/asterisk/snmp/plugin.pm index 61a0bb3b5..4cb14fd9a 100644 --- a/apps/voip/asterisk/snmp/plugin.pm +++ b/apps/voip/asterisk/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/voip/cisco/meetingplace/mode/audiolicenses.pm b/apps/voip/cisco/meetingplace/mode/audiolicenses.pm index 2240a24fd..0a85927e7 100644 --- a/apps/voip/cisco/meetingplace/mode/audiolicenses.pm +++ b/apps/voip/cisco/meetingplace/mode/audiolicenses.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/voip/cisco/meetingplace/mode/audioports.pm b/apps/voip/cisco/meetingplace/mode/audioports.pm index 493596c11..1318d26c0 100644 --- a/apps/voip/cisco/meetingplace/mode/audioports.pm +++ b/apps/voip/cisco/meetingplace/mode/audioports.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/voip/cisco/meetingplace/mode/videolicenses.pm b/apps/voip/cisco/meetingplace/mode/videolicenses.pm index bd989022b..11f17bdb5 100644 --- a/apps/voip/cisco/meetingplace/mode/videolicenses.pm +++ b/apps/voip/cisco/meetingplace/mode/videolicenses.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/voip/cisco/meetingplace/mode/videoports.pm b/apps/voip/cisco/meetingplace/mode/videoports.pm index e47e1ae3a..9a58960de 100644 --- a/apps/voip/cisco/meetingplace/mode/videoports.pm +++ b/apps/voip/cisco/meetingplace/mode/videoports.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/voip/cisco/meetingplace/plugin.pm b/apps/voip/cisco/meetingplace/plugin.pm index 69b198035..1f8a6c5cd 100644 --- a/apps/voip/cisco/meetingplace/plugin.pm +++ b/apps/voip/cisco/meetingplace/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vtom/restapi/custom/api.pm b/apps/vtom/restapi/custom/api.pm index 0d6f5c908..ae61f8d69 100644 --- a/apps/vtom/restapi/custom/api.pm +++ b/apps/vtom/restapi/custom/api.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vtom/restapi/mode/jobstatus.pm b/apps/vtom/restapi/mode/jobstatus.pm index f03ebc442..1e9ba496b 100644 --- a/apps/vtom/restapi/mode/jobstatus.pm +++ b/apps/vtom/restapi/mode/jobstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/apps/vtom/restapi/plugin.pm b/apps/vtom/restapi/plugin.pm index e5ec58f29..329554c8c 100644 --- a/apps/vtom/restapi/plugin.pm +++ b/apps/vtom/restapi/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/adic/tape/snmp/mode/components/component.pm b/centreon/common/adic/tape/snmp/mode/components/component.pm index eb8b4e283..0f089b9b5 100644 --- a/centreon/common/adic/tape/snmp/mode/components/component.pm +++ b/centreon/common/adic/tape/snmp/mode/components/component.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/adic/tape/snmp/mode/components/fan.pm b/centreon/common/adic/tape/snmp/mode/components/fan.pm index 731d37f24..c5a0827e3 100644 --- a/centreon/common/adic/tape/snmp/mode/components/fan.pm +++ b/centreon/common/adic/tape/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/adic/tape/snmp/mode/components/global.pm b/centreon/common/adic/tape/snmp/mode/components/global.pm index b88c2a3fe..96f977f0c 100644 --- a/centreon/common/adic/tape/snmp/mode/components/global.pm +++ b/centreon/common/adic/tape/snmp/mode/components/global.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/adic/tape/snmp/mode/components/physicaldrive.pm b/centreon/common/adic/tape/snmp/mode/components/physicaldrive.pm index 00498c4e0..ccf4b7774 100644 --- a/centreon/common/adic/tape/snmp/mode/components/physicaldrive.pm +++ b/centreon/common/adic/tape/snmp/mode/components/physicaldrive.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/adic/tape/snmp/mode/components/subsystem.pm b/centreon/common/adic/tape/snmp/mode/components/subsystem.pm index d2570cd4a..bbf47579e 100644 --- a/centreon/common/adic/tape/snmp/mode/components/subsystem.pm +++ b/centreon/common/adic/tape/snmp/mode/components/subsystem.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/adic/tape/snmp/mode/components/temperature.pm b/centreon/common/adic/tape/snmp/mode/components/temperature.pm index d46cb34d7..da6be5675 100644 --- a/centreon/common/adic/tape/snmp/mode/components/temperature.pm +++ b/centreon/common/adic/tape/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/adic/tape/snmp/mode/hardware.pm b/centreon/common/adic/tape/snmp/mode/hardware.pm index d6016aced..97dbade84 100644 --- a/centreon/common/adic/tape/snmp/mode/hardware.pm +++ b/centreon/common/adic/tape/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/airespace/snmp/mode/apchannelinterference.pm b/centreon/common/airespace/snmp/mode/apchannelinterference.pm index 68343be2f..7dbfa21cd 100644 --- a/centreon/common/airespace/snmp/mode/apchannelinterference.pm +++ b/centreon/common/airespace/snmp/mode/apchannelinterference.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/airespace/snmp/mode/apchannelnoise.pm b/centreon/common/airespace/snmp/mode/apchannelnoise.pm index c355e6c34..60d59ba8a 100644 --- a/centreon/common/airespace/snmp/mode/apchannelnoise.pm +++ b/centreon/common/airespace/snmp/mode/apchannelnoise.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/airespace/snmp/mode/apstatus.pm b/centreon/common/airespace/snmp/mode/apstatus.pm index 4b5debcaf..cd041f281 100644 --- a/centreon/common/airespace/snmp/mode/apstatus.pm +++ b/centreon/common/airespace/snmp/mode/apstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/airespace/snmp/mode/apusers.pm b/centreon/common/airespace/snmp/mode/apusers.pm index 5e82930bc..19845ab47 100644 --- a/centreon/common/airespace/snmp/mode/apusers.pm +++ b/centreon/common/airespace/snmp/mode/apusers.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/airespace/snmp/mode/components/psu.pm b/centreon/common/airespace/snmp/mode/components/psu.pm index 17e3c2147..b607aca22 100644 --- a/centreon/common/airespace/snmp/mode/components/psu.pm +++ b/centreon/common/airespace/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/airespace/snmp/mode/cpu.pm b/centreon/common/airespace/snmp/mode/cpu.pm index 5d041de92..929f8b8ff 100644 --- a/centreon/common/airespace/snmp/mode/cpu.pm +++ b/centreon/common/airespace/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/airespace/snmp/mode/hardware.pm b/centreon/common/airespace/snmp/mode/hardware.pm index 3b7803d7c..280397c61 100644 --- a/centreon/common/airespace/snmp/mode/hardware.pm +++ b/centreon/common/airespace/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/airespace/snmp/mode/memory.pm b/centreon/common/airespace/snmp/mode/memory.pm index 5baf520b8..13d630be3 100644 --- a/centreon/common/airespace/snmp/mode/memory.pm +++ b/centreon/common/airespace/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/aruba/snmp/mode/apconnections.pm b/centreon/common/aruba/snmp/mode/apconnections.pm index a86309e55..f30e66b0b 100644 --- a/centreon/common/aruba/snmp/mode/apconnections.pm +++ b/centreon/common/aruba/snmp/mode/apconnections.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/aruba/snmp/mode/apusers.pm b/centreon/common/aruba/snmp/mode/apusers.pm index 35f4d6ab7..b89dee2ce 100644 --- a/centreon/common/aruba/snmp/mode/apusers.pm +++ b/centreon/common/aruba/snmp/mode/apusers.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/aruba/snmp/mode/components/fan.pm b/centreon/common/aruba/snmp/mode/components/fan.pm index 992fcd1dd..0ac295fb6 100644 --- a/centreon/common/aruba/snmp/mode/components/fan.pm +++ b/centreon/common/aruba/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/aruba/snmp/mode/components/module.pm b/centreon/common/aruba/snmp/mode/components/module.pm index 782bd95ff..0a9b3903b 100644 --- a/centreon/common/aruba/snmp/mode/components/module.pm +++ b/centreon/common/aruba/snmp/mode/components/module.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/aruba/snmp/mode/components/psu.pm b/centreon/common/aruba/snmp/mode/components/psu.pm index 5423e90c6..6cca3f133 100644 --- a/centreon/common/aruba/snmp/mode/components/psu.pm +++ b/centreon/common/aruba/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/aruba/snmp/mode/cpu.pm b/centreon/common/aruba/snmp/mode/cpu.pm index 4ea578031..c9cc7b3b6 100644 --- a/centreon/common/aruba/snmp/mode/cpu.pm +++ b/centreon/common/aruba/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/aruba/snmp/mode/hardware.pm b/centreon/common/aruba/snmp/mode/hardware.pm index d1fe31874..03d5f6af4 100644 --- a/centreon/common/aruba/snmp/mode/hardware.pm +++ b/centreon/common/aruba/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/aruba/snmp/mode/memory.pm b/centreon/common/aruba/snmp/mode/memory.pm index 9049a090b..5bdf9d5da 100644 --- a/centreon/common/aruba/snmp/mode/memory.pm +++ b/centreon/common/aruba/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/aruba/snmp/mode/storage.pm b/centreon/common/aruba/snmp/mode/storage.pm index c7bd3d7d4..cc3c6450f 100644 --- a/centreon/common/aruba/snmp/mode/storage.pm +++ b/centreon/common/aruba/snmp/mode/storage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/bluearc/snmp/mode/clusterstatus.pm b/centreon/common/bluearc/snmp/mode/clusterstatus.pm index 0702fe339..49065c69b 100644 --- a/centreon/common/bluearc/snmp/mode/clusterstatus.pm +++ b/centreon/common/bluearc/snmp/mode/clusterstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/bluearc/snmp/mode/components/battery.pm b/centreon/common/bluearc/snmp/mode/components/battery.pm index 06badc5ec..48dcd51e2 100644 --- a/centreon/common/bluearc/snmp/mode/components/battery.pm +++ b/centreon/common/bluearc/snmp/mode/components/battery.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/bluearc/snmp/mode/components/fan.pm b/centreon/common/bluearc/snmp/mode/components/fan.pm index bff546d2d..f7f31a7e7 100644 --- a/centreon/common/bluearc/snmp/mode/components/fan.pm +++ b/centreon/common/bluearc/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/bluearc/snmp/mode/components/psu.pm b/centreon/common/bluearc/snmp/mode/components/psu.pm index 9cc7dc28d..b1d17f5b9 100644 --- a/centreon/common/bluearc/snmp/mode/components/psu.pm +++ b/centreon/common/bluearc/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/bluearc/snmp/mode/components/sysdrive.pm b/centreon/common/bluearc/snmp/mode/components/sysdrive.pm index 1fe8e3236..3d8d9db56 100644 --- a/centreon/common/bluearc/snmp/mode/components/sysdrive.pm +++ b/centreon/common/bluearc/snmp/mode/components/sysdrive.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/bluearc/snmp/mode/components/temperature.pm b/centreon/common/bluearc/snmp/mode/components/temperature.pm index 2cd345b10..8503d438b 100644 --- a/centreon/common/bluearc/snmp/mode/components/temperature.pm +++ b/centreon/common/bluearc/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/bluearc/snmp/mode/hardware.pm b/centreon/common/bluearc/snmp/mode/hardware.pm index 4a951e44e..9ff3bcd5e 100644 --- a/centreon/common/bluearc/snmp/mode/hardware.pm +++ b/centreon/common/bluearc/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/bluearc/snmp/mode/volumeusage.pm b/centreon/common/bluearc/snmp/mode/volumeusage.pm index ca58c68d7..a67da34a7 100644 --- a/centreon/common/bluearc/snmp/mode/volumeusage.pm +++ b/centreon/common/bluearc/snmp/mode/volumeusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/broadcom/fastpath/snmp/mode/components/fan.pm b/centreon/common/broadcom/fastpath/snmp/mode/components/fan.pm index ab37053e9..64794878c 100644 --- a/centreon/common/broadcom/fastpath/snmp/mode/components/fan.pm +++ b/centreon/common/broadcom/fastpath/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/broadcom/fastpath/snmp/mode/components/psu.pm b/centreon/common/broadcom/fastpath/snmp/mode/components/psu.pm index 6b8767ece..fd5c5b7c2 100644 --- a/centreon/common/broadcom/fastpath/snmp/mode/components/psu.pm +++ b/centreon/common/broadcom/fastpath/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/broadcom/fastpath/snmp/mode/components/temperature.pm b/centreon/common/broadcom/fastpath/snmp/mode/components/temperature.pm index bf85207ee..fc0d19f7c 100644 --- a/centreon/common/broadcom/fastpath/snmp/mode/components/temperature.pm +++ b/centreon/common/broadcom/fastpath/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/broadcom/fastpath/snmp/mode/cpu.pm b/centreon/common/broadcom/fastpath/snmp/mode/cpu.pm index bdcde39c0..24c767e26 100644 --- a/centreon/common/broadcom/fastpath/snmp/mode/cpu.pm +++ b/centreon/common/broadcom/fastpath/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/broadcom/fastpath/snmp/mode/hardware.pm b/centreon/common/broadcom/fastpath/snmp/mode/hardware.pm index 6257ea940..1f84731c1 100644 --- a/centreon/common/broadcom/fastpath/snmp/mode/hardware.pm +++ b/centreon/common/broadcom/fastpath/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/broadcom/fastpath/snmp/mode/memory.pm b/centreon/common/broadcom/fastpath/snmp/mode/memory.pm index 3bee13503..2ed09c737 100644 --- a/centreon/common/broadcom/fastpath/snmp/mode/memory.pm +++ b/centreon/common/broadcom/fastpath/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/cisco/smallbusiness/snmp/mode/components/fan.pm b/centreon/common/cisco/smallbusiness/snmp/mode/components/fan.pm index 71d8a46e8..9181e2a81 100644 --- a/centreon/common/cisco/smallbusiness/snmp/mode/components/fan.pm +++ b/centreon/common/cisco/smallbusiness/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/cisco/smallbusiness/snmp/mode/components/psu.pm b/centreon/common/cisco/smallbusiness/snmp/mode/components/psu.pm index 6a09cb3c2..aa566b2a5 100644 --- a/centreon/common/cisco/smallbusiness/snmp/mode/components/psu.pm +++ b/centreon/common/cisco/smallbusiness/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/cisco/smallbusiness/snmp/mode/cpu.pm b/centreon/common/cisco/smallbusiness/snmp/mode/cpu.pm index 9c8acff8f..625ed8fbc 100644 --- a/centreon/common/cisco/smallbusiness/snmp/mode/cpu.pm +++ b/centreon/common/cisco/smallbusiness/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/cisco/smallbusiness/snmp/mode/environment.pm b/centreon/common/cisco/smallbusiness/snmp/mode/environment.pm index 6436d3162..140967790 100644 --- a/centreon/common/cisco/smallbusiness/snmp/mode/environment.pm +++ b/centreon/common/cisco/smallbusiness/snmp/mode/environment.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/cisco/standard/snmp/mode/components/fan.pm b/centreon/common/cisco/standard/snmp/mode/components/fan.pm index 416965cc9..348106cb7 100644 --- a/centreon/common/cisco/standard/snmp/mode/components/fan.pm +++ b/centreon/common/cisco/standard/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/cisco/standard/snmp/mode/components/module.pm b/centreon/common/cisco/standard/snmp/mode/components/module.pm index ecad5af5a..bb2151d01 100644 --- a/centreon/common/cisco/standard/snmp/mode/components/module.pm +++ b/centreon/common/cisco/standard/snmp/mode/components/module.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/cisco/standard/snmp/mode/components/physical.pm b/centreon/common/cisco/standard/snmp/mode/components/physical.pm index 0da5d95c5..3343c35bc 100644 --- a/centreon/common/cisco/standard/snmp/mode/components/physical.pm +++ b/centreon/common/cisco/standard/snmp/mode/components/physical.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/cisco/standard/snmp/mode/components/psu.pm b/centreon/common/cisco/standard/snmp/mode/components/psu.pm index 96a4ff343..9cccf4b3c 100644 --- a/centreon/common/cisco/standard/snmp/mode/components/psu.pm +++ b/centreon/common/cisco/standard/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/cisco/standard/snmp/mode/components/sensor.pm b/centreon/common/cisco/standard/snmp/mode/components/sensor.pm index 26d33e60a..00286287b 100644 --- a/centreon/common/cisco/standard/snmp/mode/components/sensor.pm +++ b/centreon/common/cisco/standard/snmp/mode/components/sensor.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/cisco/standard/snmp/mode/components/temperature.pm b/centreon/common/cisco/standard/snmp/mode/components/temperature.pm index db0d0144c..e7ca7ea8c 100644 --- a/centreon/common/cisco/standard/snmp/mode/components/temperature.pm +++ b/centreon/common/cisco/standard/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/cisco/standard/snmp/mode/components/voltage.pm b/centreon/common/cisco/standard/snmp/mode/components/voltage.pm index a9356749c..3fc120699 100644 --- a/centreon/common/cisco/standard/snmp/mode/components/voltage.pm +++ b/centreon/common/cisco/standard/snmp/mode/components/voltage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/cisco/standard/snmp/mode/cpu.pm b/centreon/common/cisco/standard/snmp/mode/cpu.pm index 93022f4e4..660bc7524 100644 --- a/centreon/common/cisco/standard/snmp/mode/cpu.pm +++ b/centreon/common/cisco/standard/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/cisco/standard/snmp/mode/environment.pm b/centreon/common/cisco/standard/snmp/mode/environment.pm index 788eb64e7..2c76d957a 100644 --- a/centreon/common/cisco/standard/snmp/mode/environment.pm +++ b/centreon/common/cisco/standard/snmp/mode/environment.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/cisco/standard/snmp/mode/hsrp.pm b/centreon/common/cisco/standard/snmp/mode/hsrp.pm index 0f60753ab..849a92b4c 100644 --- a/centreon/common/cisco/standard/snmp/mode/hsrp.pm +++ b/centreon/common/cisco/standard/snmp/mode/hsrp.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/cisco/standard/snmp/mode/ipsectunnel.pm b/centreon/common/cisco/standard/snmp/mode/ipsectunnel.pm index 4f0315396..7e3b09c5a 100644 --- a/centreon/common/cisco/standard/snmp/mode/ipsectunnel.pm +++ b/centreon/common/cisco/standard/snmp/mode/ipsectunnel.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/cisco/standard/snmp/mode/ipsla.pm b/centreon/common/cisco/standard/snmp/mode/ipsla.pm index 462bc97ee..f48b1d88a 100644 --- a/centreon/common/cisco/standard/snmp/mode/ipsla.pm +++ b/centreon/common/cisco/standard/snmp/mode/ipsla.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/cisco/standard/snmp/mode/memory.pm b/centreon/common/cisco/standard/snmp/mode/memory.pm index 49ee66df6..91955cc11 100644 --- a/centreon/common/cisco/standard/snmp/mode/memory.pm +++ b/centreon/common/cisco/standard/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/cisco/standard/snmp/mode/memoryflash.pm b/centreon/common/cisco/standard/snmp/mode/memoryflash.pm index 46cadf45c..e3111dd0a 100644 --- a/centreon/common/cisco/standard/snmp/mode/memoryflash.pm +++ b/centreon/common/cisco/standard/snmp/mode/memoryflash.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/cisco/standard/snmp/mode/qosusage.pm b/centreon/common/cisco/standard/snmp/mode/qosusage.pm index 7856ed772..a5cbd75b0 100644 --- a/centreon/common/cisco/standard/snmp/mode/qosusage.pm +++ b/centreon/common/cisco/standard/snmp/mode/qosusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/cisco/standard/snmp/mode/sessions.pm b/centreon/common/cisco/standard/snmp/mode/sessions.pm index 4fa82c317..5e3a42390 100644 --- a/centreon/common/cisco/standard/snmp/mode/sessions.pm +++ b/centreon/common/cisco/standard/snmp/mode/sessions.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/cisco/standard/snmp/mode/stack.pm b/centreon/common/cisco/standard/snmp/mode/stack.pm index b466ce403..142dccb13 100644 --- a/centreon/common/cisco/standard/snmp/mode/stack.pm +++ b/centreon/common/cisco/standard/snmp/mode/stack.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/dell/fastpath/snmp/mode/components/fan.pm b/centreon/common/dell/fastpath/snmp/mode/components/fan.pm index 564834bf9..b0cc0f8e0 100644 --- a/centreon/common/dell/fastpath/snmp/mode/components/fan.pm +++ b/centreon/common/dell/fastpath/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/dell/fastpath/snmp/mode/components/psu.pm b/centreon/common/dell/fastpath/snmp/mode/components/psu.pm index e5b675f6b..1e9d1da10 100644 --- a/centreon/common/dell/fastpath/snmp/mode/components/psu.pm +++ b/centreon/common/dell/fastpath/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/dell/fastpath/snmp/mode/components/temperature.pm b/centreon/common/dell/fastpath/snmp/mode/components/temperature.pm index d72626baa..b136205f7 100644 --- a/centreon/common/dell/fastpath/snmp/mode/components/temperature.pm +++ b/centreon/common/dell/fastpath/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/dell/fastpath/snmp/mode/cpu.pm b/centreon/common/dell/fastpath/snmp/mode/cpu.pm index 8a61c0251..1bacca4fe 100644 --- a/centreon/common/dell/fastpath/snmp/mode/cpu.pm +++ b/centreon/common/dell/fastpath/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/dell/fastpath/snmp/mode/environment.pm b/centreon/common/dell/fastpath/snmp/mode/environment.pm index 569c85100..933153972 100644 --- a/centreon/common/dell/fastpath/snmp/mode/environment.pm +++ b/centreon/common/dell/fastpath/snmp/mode/environment.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/dell/fastpath/snmp/mode/memory.pm b/centreon/common/dell/fastpath/snmp/mode/memory.pm index 43d53bd20..19a5e9043 100644 --- a/centreon/common/dell/fastpath/snmp/mode/memory.pm +++ b/centreon/common/dell/fastpath/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/dell/powerconnect3000/mode/globalstatus.pm b/centreon/common/dell/powerconnect3000/mode/globalstatus.pm index 867795a9d..1c7e787d4 100644 --- a/centreon/common/dell/powerconnect3000/mode/globalstatus.pm +++ b/centreon/common/dell/powerconnect3000/mode/globalstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/emc/navisphere/custom/custom.pm b/centreon/common/emc/navisphere/custom/custom.pm index 15a6d55a6..0ae82b639 100644 --- a/centreon/common/emc/navisphere/custom/custom.pm +++ b/centreon/common/emc/navisphere/custom/custom.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/emc/navisphere/mode/cache.pm b/centreon/common/emc/navisphere/mode/cache.pm index 3b69d816f..dc6e5881d 100644 --- a/centreon/common/emc/navisphere/mode/cache.pm +++ b/centreon/common/emc/navisphere/mode/cache.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/emc/navisphere/mode/controller.pm b/centreon/common/emc/navisphere/mode/controller.pm index b6d21fd61..993da6a8b 100644 --- a/centreon/common/emc/navisphere/mode/controller.pm +++ b/centreon/common/emc/navisphere/mode/controller.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/emc/navisphere/mode/disk.pm b/centreon/common/emc/navisphere/mode/disk.pm index 60807d710..3a5dc378f 100644 --- a/centreon/common/emc/navisphere/mode/disk.pm +++ b/centreon/common/emc/navisphere/mode/disk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/emc/navisphere/mode/faults.pm b/centreon/common/emc/navisphere/mode/faults.pm index a44312c22..0058f849e 100644 --- a/centreon/common/emc/navisphere/mode/faults.pm +++ b/centreon/common/emc/navisphere/mode/faults.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/emc/navisphere/mode/hbastate.pm b/centreon/common/emc/navisphere/mode/hbastate.pm index bff9b80db..17395f794 100644 --- a/centreon/common/emc/navisphere/mode/hbastate.pm +++ b/centreon/common/emc/navisphere/mode/hbastate.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/emc/navisphere/mode/listluns.pm b/centreon/common/emc/navisphere/mode/listluns.pm index bbed8effb..55ba755fd 100644 --- a/centreon/common/emc/navisphere/mode/listluns.pm +++ b/centreon/common/emc/navisphere/mode/listluns.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/emc/navisphere/mode/portstate.pm b/centreon/common/emc/navisphere/mode/portstate.pm index 1e58257ed..7222f1c0d 100644 --- a/centreon/common/emc/navisphere/mode/portstate.pm +++ b/centreon/common/emc/navisphere/mode/portstate.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/emc/navisphere/mode/sp.pm b/centreon/common/emc/navisphere/mode/sp.pm index 96279f5dc..e8cc2a3f5 100644 --- a/centreon/common/emc/navisphere/mode/sp.pm +++ b/centreon/common/emc/navisphere/mode/sp.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/emc/navisphere/mode/spcomponents/battery.pm b/centreon/common/emc/navisphere/mode/spcomponents/battery.pm index 58f098057..7054c88f2 100644 --- a/centreon/common/emc/navisphere/mode/spcomponents/battery.pm +++ b/centreon/common/emc/navisphere/mode/spcomponents/battery.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/emc/navisphere/mode/spcomponents/cable.pm b/centreon/common/emc/navisphere/mode/spcomponents/cable.pm index d95c68379..f4bc68a92 100644 --- a/centreon/common/emc/navisphere/mode/spcomponents/cable.pm +++ b/centreon/common/emc/navisphere/mode/spcomponents/cable.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/emc/navisphere/mode/spcomponents/cpu.pm b/centreon/common/emc/navisphere/mode/spcomponents/cpu.pm index 4531f2949..cee3b2552 100644 --- a/centreon/common/emc/navisphere/mode/spcomponents/cpu.pm +++ b/centreon/common/emc/navisphere/mode/spcomponents/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/emc/navisphere/mode/spcomponents/fan.pm b/centreon/common/emc/navisphere/mode/spcomponents/fan.pm index f5955a41c..eeba54cda 100644 --- a/centreon/common/emc/navisphere/mode/spcomponents/fan.pm +++ b/centreon/common/emc/navisphere/mode/spcomponents/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/emc/navisphere/mode/spcomponents/iomodule.pm b/centreon/common/emc/navisphere/mode/spcomponents/iomodule.pm index 4a0ef0aa0..db0ec630e 100644 --- a/centreon/common/emc/navisphere/mode/spcomponents/iomodule.pm +++ b/centreon/common/emc/navisphere/mode/spcomponents/iomodule.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/emc/navisphere/mode/spcomponents/lcc.pm b/centreon/common/emc/navisphere/mode/spcomponents/lcc.pm index 9d3a6c78a..62a7b3715 100644 --- a/centreon/common/emc/navisphere/mode/spcomponents/lcc.pm +++ b/centreon/common/emc/navisphere/mode/spcomponents/lcc.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/emc/navisphere/mode/spcomponents/memory.pm b/centreon/common/emc/navisphere/mode/spcomponents/memory.pm index ae55fa5dd..20afaf144 100644 --- a/centreon/common/emc/navisphere/mode/spcomponents/memory.pm +++ b/centreon/common/emc/navisphere/mode/spcomponents/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/emc/navisphere/mode/spcomponents/psu.pm b/centreon/common/emc/navisphere/mode/spcomponents/psu.pm index 228dc75da..26f502e81 100644 --- a/centreon/common/emc/navisphere/mode/spcomponents/psu.pm +++ b/centreon/common/emc/navisphere/mode/spcomponents/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/emc/navisphere/mode/spcomponents/sp.pm b/centreon/common/emc/navisphere/mode/spcomponents/sp.pm index 6e23726ef..f2175c71f 100644 --- a/centreon/common/emc/navisphere/mode/spcomponents/sp.pm +++ b/centreon/common/emc/navisphere/mode/spcomponents/sp.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/emc/navisphere/mode/spinfo.pm b/centreon/common/emc/navisphere/mode/spinfo.pm index e86523ab7..0c255a764 100644 --- a/centreon/common/emc/navisphere/mode/spinfo.pm +++ b/centreon/common/emc/navisphere/mode/spinfo.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/force10/snmp/mode/components/fan.pm b/centreon/common/force10/snmp/mode/components/fan.pm index d31eb1a81..3b79c74a8 100644 --- a/centreon/common/force10/snmp/mode/components/fan.pm +++ b/centreon/common/force10/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/force10/snmp/mode/components/psu.pm b/centreon/common/force10/snmp/mode/components/psu.pm index cda2a3959..61cc38fc4 100644 --- a/centreon/common/force10/snmp/mode/components/psu.pm +++ b/centreon/common/force10/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/force10/snmp/mode/components/temperature.pm b/centreon/common/force10/snmp/mode/components/temperature.pm index a9d221a18..fc9fc3a6d 100644 --- a/centreon/common/force10/snmp/mode/components/temperature.pm +++ b/centreon/common/force10/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/force10/snmp/mode/cpu.pm b/centreon/common/force10/snmp/mode/cpu.pm index b09866d71..041e7735c 100644 --- a/centreon/common/force10/snmp/mode/cpu.pm +++ b/centreon/common/force10/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/force10/snmp/mode/hardware.pm b/centreon/common/force10/snmp/mode/hardware.pm index 078d62d13..cb297f69e 100644 --- a/centreon/common/force10/snmp/mode/hardware.pm +++ b/centreon/common/force10/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/force10/snmp/mode/memory.pm b/centreon/common/force10/snmp/mode/memory.pm index a5ddf4fc4..cc1b1e16c 100644 --- a/centreon/common/force10/snmp/mode/memory.pm +++ b/centreon/common/force10/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/fortinet/fortigate/mode/clusterstatus.pm b/centreon/common/fortinet/fortigate/mode/clusterstatus.pm index 68ab91929..9c160c2ef 100644 --- a/centreon/common/fortinet/fortigate/mode/clusterstatus.pm +++ b/centreon/common/fortinet/fortigate/mode/clusterstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/fortinet/fortigate/mode/cpu.pm b/centreon/common/fortinet/fortigate/mode/cpu.pm index 47f196129..cace5a66a 100644 --- a/centreon/common/fortinet/fortigate/mode/cpu.pm +++ b/centreon/common/fortinet/fortigate/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/fortinet/fortigate/mode/disk.pm b/centreon/common/fortinet/fortigate/mode/disk.pm index f576f6d8c..12537884a 100644 --- a/centreon/common/fortinet/fortigate/mode/disk.pm +++ b/centreon/common/fortinet/fortigate/mode/disk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/fortinet/fortigate/mode/hardware.pm b/centreon/common/fortinet/fortigate/mode/hardware.pm index a1cb382dc..51ef0fbfe 100644 --- a/centreon/common/fortinet/fortigate/mode/hardware.pm +++ b/centreon/common/fortinet/fortigate/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/fortinet/fortigate/mode/ipsstats.pm b/centreon/common/fortinet/fortigate/mode/ipsstats.pm index 3e73ab5c1..3969bc645 100644 --- a/centreon/common/fortinet/fortigate/mode/ipsstats.pm +++ b/centreon/common/fortinet/fortigate/mode/ipsstats.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/fortinet/fortigate/mode/listvirtualdomains.pm b/centreon/common/fortinet/fortigate/mode/listvirtualdomains.pm index 953a7a278..8b63ec59a 100644 --- a/centreon/common/fortinet/fortigate/mode/listvirtualdomains.pm +++ b/centreon/common/fortinet/fortigate/mode/listvirtualdomains.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/fortinet/fortigate/mode/memory.pm b/centreon/common/fortinet/fortigate/mode/memory.pm index 21616c71b..782f7027f 100644 --- a/centreon/common/fortinet/fortigate/mode/memory.pm +++ b/centreon/common/fortinet/fortigate/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/fortinet/fortigate/mode/sessions.pm b/centreon/common/fortinet/fortigate/mode/sessions.pm index 625919fe1..0358ebf1a 100644 --- a/centreon/common/fortinet/fortigate/mode/sessions.pm +++ b/centreon/common/fortinet/fortigate/mode/sessions.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/fortinet/fortigate/mode/signatures.pm b/centreon/common/fortinet/fortigate/mode/signatures.pm index 92555fe82..14503e953 100644 --- a/centreon/common/fortinet/fortigate/mode/signatures.pm +++ b/centreon/common/fortinet/fortigate/mode/signatures.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/fortinet/fortigate/mode/virus.pm b/centreon/common/fortinet/fortigate/mode/virus.pm index 13d7d5f98..e9a6735d2 100644 --- a/centreon/common/fortinet/fortigate/mode/virus.pm +++ b/centreon/common/fortinet/fortigate/mode/virus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/fortinet/fortigate/mode/vpn.pm b/centreon/common/fortinet/fortigate/mode/vpn.pm index c7f1e7162..dd7c0d954 100644 --- a/centreon/common/fortinet/fortigate/mode/vpn.pm +++ b/centreon/common/fortinet/fortigate/mode/vpn.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/ibm/tapelibrary/snmp/mode/components/changer.pm b/centreon/common/ibm/tapelibrary/snmp/mode/components/changer.pm index 89549748d..f552ab2d2 100644 --- a/centreon/common/ibm/tapelibrary/snmp/mode/components/changer.pm +++ b/centreon/common/ibm/tapelibrary/snmp/mode/components/changer.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/ibm/tapelibrary/snmp/mode/components/chassis.pm b/centreon/common/ibm/tapelibrary/snmp/mode/components/chassis.pm index 860e552ec..62197ac52 100644 --- a/centreon/common/ibm/tapelibrary/snmp/mode/components/chassis.pm +++ b/centreon/common/ibm/tapelibrary/snmp/mode/components/chassis.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/ibm/tapelibrary/snmp/mode/components/drive.pm b/centreon/common/ibm/tapelibrary/snmp/mode/components/drive.pm index 617cfced2..4cc0582b5 100644 --- a/centreon/common/ibm/tapelibrary/snmp/mode/components/drive.pm +++ b/centreon/common/ibm/tapelibrary/snmp/mode/components/drive.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/ibm/tapelibrary/snmp/mode/components/psu.pm b/centreon/common/ibm/tapelibrary/snmp/mode/components/psu.pm index 0d513105f..c3c29081b 100644 --- a/centreon/common/ibm/tapelibrary/snmp/mode/components/psu.pm +++ b/centreon/common/ibm/tapelibrary/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/ibm/tapelibrary/snmp/mode/components/resources.pm b/centreon/common/ibm/tapelibrary/snmp/mode/components/resources.pm index 25eab861f..f57900d87 100644 --- a/centreon/common/ibm/tapelibrary/snmp/mode/components/resources.pm +++ b/centreon/common/ibm/tapelibrary/snmp/mode/components/resources.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/ibm/tapelibrary/snmp/mode/hardware.pm b/centreon/common/ibm/tapelibrary/snmp/mode/hardware.pm index 96d8f0915..32f070e94 100644 --- a/centreon/common/ibm/tapelibrary/snmp/mode/hardware.pm +++ b/centreon/common/ibm/tapelibrary/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/ingrian/snmp/mode/connections.pm b/centreon/common/ingrian/snmp/mode/connections.pm index 934149e2b..23eb1881d 100644 --- a/centreon/common/ingrian/snmp/mode/connections.pm +++ b/centreon/common/ingrian/snmp/mode/connections.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/ingrian/snmp/mode/cpu.pm b/centreon/common/ingrian/snmp/mode/cpu.pm index db5058bcf..0a31a5834 100644 --- a/centreon/common/ingrian/snmp/mode/cpu.pm +++ b/centreon/common/ingrian/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/ingrian/snmp/mode/disk.pm b/centreon/common/ingrian/snmp/mode/disk.pm index a49265598..48136139e 100644 --- a/centreon/common/ingrian/snmp/mode/disk.pm +++ b/centreon/common/ingrian/snmp/mode/disk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/ingrian/snmp/mode/memory.pm b/centreon/common/ingrian/snmp/mode/memory.pm index 649d26669..b1ab99873 100644 --- a/centreon/common/ingrian/snmp/mode/memory.pm +++ b/centreon/common/ingrian/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/ingrian/snmp/mode/requeststats.pm b/centreon/common/ingrian/snmp/mode/requeststats.pm index 0c8983424..79cee0447 100644 --- a/centreon/common/ingrian/snmp/mode/requeststats.pm +++ b/centreon/common/ingrian/snmp/mode/requeststats.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/jvm/mode/classcount.pm b/centreon/common/jvm/mode/classcount.pm index 9282f35c5..25c529c9f 100644 --- a/centreon/common/jvm/mode/classcount.pm +++ b/centreon/common/jvm/mode/classcount.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/jvm/mode/cpuload.pm b/centreon/common/jvm/mode/cpuload.pm index 9fb6f1554..d269ec952 100644 --- a/centreon/common/jvm/mode/cpuload.pm +++ b/centreon/common/jvm/mode/cpuload.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/jvm/mode/fdusage.pm b/centreon/common/jvm/mode/fdusage.pm index e64ba5bf6..b4e317b90 100644 --- a/centreon/common/jvm/mode/fdusage.pm +++ b/centreon/common/jvm/mode/fdusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/jvm/mode/gcusage.pm b/centreon/common/jvm/mode/gcusage.pm index 786add013..d47e9082a 100644 --- a/centreon/common/jvm/mode/gcusage.pm +++ b/centreon/common/jvm/mode/gcusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/jvm/mode/loadaverage.pm b/centreon/common/jvm/mode/loadaverage.pm index 3bb02250f..2c62f989c 100644 --- a/centreon/common/jvm/mode/loadaverage.pm +++ b/centreon/common/jvm/mode/loadaverage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/jvm/mode/memory.pm b/centreon/common/jvm/mode/memory.pm index 98579baf7..6302a7be3 100644 --- a/centreon/common/jvm/mode/memory.pm +++ b/centreon/common/jvm/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/jvm/mode/memorydetailed.pm b/centreon/common/jvm/mode/memorydetailed.pm index 044f18df0..6497ddfee 100644 --- a/centreon/common/jvm/mode/memorydetailed.pm +++ b/centreon/common/jvm/mode/memorydetailed.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/jvm/mode/threads.pm b/centreon/common/jvm/mode/threads.pm index 544f0d21e..be3d7414c 100644 --- a/centreon/common/jvm/mode/threads.pm +++ b/centreon/common/jvm/mode/threads.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/powershell/dell/compellent/hbausage.pm b/centreon/common/powershell/dell/compellent/hbausage.pm index fce031f93..9106afb02 100644 --- a/centreon/common/powershell/dell/compellent/hbausage.pm +++ b/centreon/common/powershell/dell/compellent/hbausage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/powershell/dell/compellent/volumeusage.pm b/centreon/common/powershell/dell/compellent/volumeusage.pm index ade61ddde..4537acd32 100644 --- a/centreon/common/powershell/dell/compellent/volumeusage.pm +++ b/centreon/common/powershell/dell/compellent/volumeusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/powershell/exchange/2010/activesyncmailbox.pm b/centreon/common/powershell/exchange/2010/activesyncmailbox.pm index 6a5aaa314..f5287004b 100644 --- a/centreon/common/powershell/exchange/2010/activesyncmailbox.pm +++ b/centreon/common/powershell/exchange/2010/activesyncmailbox.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/powershell/exchange/2010/databases.pm b/centreon/common/powershell/exchange/2010/databases.pm index b91fe799f..8307bb6ba 100644 --- a/centreon/common/powershell/exchange/2010/databases.pm +++ b/centreon/common/powershell/exchange/2010/databases.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/powershell/exchange/2010/imapmailbox.pm b/centreon/common/powershell/exchange/2010/imapmailbox.pm index 878de1217..eda2e0b70 100644 --- a/centreon/common/powershell/exchange/2010/imapmailbox.pm +++ b/centreon/common/powershell/exchange/2010/imapmailbox.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/powershell/exchange/2010/listdatabases.pm b/centreon/common/powershell/exchange/2010/listdatabases.pm index bc97185b3..bf0f7e53c 100644 --- a/centreon/common/powershell/exchange/2010/listdatabases.pm +++ b/centreon/common/powershell/exchange/2010/listdatabases.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/powershell/exchange/2010/mapimailbox.pm b/centreon/common/powershell/exchange/2010/mapimailbox.pm index 2ca8af7de..ab1895447 100644 --- a/centreon/common/powershell/exchange/2010/mapimailbox.pm +++ b/centreon/common/powershell/exchange/2010/mapimailbox.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/powershell/exchange/2010/outlookwebservices.pm b/centreon/common/powershell/exchange/2010/outlookwebservices.pm index 83313ec90..d869c2b78 100644 --- a/centreon/common/powershell/exchange/2010/outlookwebservices.pm +++ b/centreon/common/powershell/exchange/2010/outlookwebservices.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/powershell/exchange/2010/owamailbox.pm b/centreon/common/powershell/exchange/2010/owamailbox.pm index f711bec5d..78677bedc 100644 --- a/centreon/common/powershell/exchange/2010/owamailbox.pm +++ b/centreon/common/powershell/exchange/2010/owamailbox.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/powershell/exchange/2010/powershell.pm b/centreon/common/powershell/exchange/2010/powershell.pm index d893edc40..e235fff0e 100644 --- a/centreon/common/powershell/exchange/2010/powershell.pm +++ b/centreon/common/powershell/exchange/2010/powershell.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/powershell/exchange/2010/queues.pm b/centreon/common/powershell/exchange/2010/queues.pm index 0067f3b65..55a83a327 100644 --- a/centreon/common/powershell/exchange/2010/queues.pm +++ b/centreon/common/powershell/exchange/2010/queues.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/powershell/exchange/2010/replicationhealth.pm b/centreon/common/powershell/exchange/2010/replicationhealth.pm index 0926e84f2..db34ac4f6 100644 --- a/centreon/common/powershell/exchange/2010/replicationhealth.pm +++ b/centreon/common/powershell/exchange/2010/replicationhealth.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/powershell/exchange/2010/services.pm b/centreon/common/powershell/exchange/2010/services.pm index 6ff36f7c0..6e38ca0cb 100644 --- a/centreon/common/powershell/exchange/2010/services.pm +++ b/centreon/common/powershell/exchange/2010/services.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/powershell/hyperv/2012/listnodevms.pm b/centreon/common/powershell/hyperv/2012/listnodevms.pm index 42ee95da4..6344f90bc 100644 --- a/centreon/common/powershell/hyperv/2012/listnodevms.pm +++ b/centreon/common/powershell/hyperv/2012/listnodevms.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/powershell/hyperv/2012/nodeintegrationservice.pm b/centreon/common/powershell/hyperv/2012/nodeintegrationservice.pm index e165bef1c..3deebf83d 100644 --- a/centreon/common/powershell/hyperv/2012/nodeintegrationservice.pm +++ b/centreon/common/powershell/hyperv/2012/nodeintegrationservice.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/powershell/hyperv/2012/nodereplication.pm b/centreon/common/powershell/hyperv/2012/nodereplication.pm index f7e4a068c..b1e4ac6bd 100644 --- a/centreon/common/powershell/hyperv/2012/nodereplication.pm +++ b/centreon/common/powershell/hyperv/2012/nodereplication.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/powershell/hyperv/2012/nodesnapshot.pm b/centreon/common/powershell/hyperv/2012/nodesnapshot.pm index 837e81511..1a955a6b7 100644 --- a/centreon/common/powershell/hyperv/2012/nodesnapshot.pm +++ b/centreon/common/powershell/hyperv/2012/nodesnapshot.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/powershell/hyperv/2012/nodevmstatus.pm b/centreon/common/powershell/hyperv/2012/nodevmstatus.pm index 4a4a792db..8fc4a5a1c 100644 --- a/centreon/common/powershell/hyperv/2012/nodevmstatus.pm +++ b/centreon/common/powershell/hyperv/2012/nodevmstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/powershell/hyperv/2012/scvmmintegrationservice.pm b/centreon/common/powershell/hyperv/2012/scvmmintegrationservice.pm index 9dc351d30..9dcd627ad 100644 --- a/centreon/common/powershell/hyperv/2012/scvmmintegrationservice.pm +++ b/centreon/common/powershell/hyperv/2012/scvmmintegrationservice.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/powershell/hyperv/2012/scvmmsnapshot.pm b/centreon/common/powershell/hyperv/2012/scvmmsnapshot.pm index 07fe8305b..98f63ba94 100644 --- a/centreon/common/powershell/hyperv/2012/scvmmsnapshot.pm +++ b/centreon/common/powershell/hyperv/2012/scvmmsnapshot.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/powershell/hyperv/2012/scvmmvmstatus.pm b/centreon/common/powershell/hyperv/2012/scvmmvmstatus.pm index fb1cb74ff..85462d7ae 100644 --- a/centreon/common/powershell/hyperv/2012/scvmmvmstatus.pm +++ b/centreon/common/powershell/hyperv/2012/scvmmvmstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/powershell/veeam/jobstatus.pm b/centreon/common/powershell/veeam/jobstatus.pm index bec074b0f..e37f6d0d9 100644 --- a/centreon/common/powershell/veeam/jobstatus.pm +++ b/centreon/common/powershell/veeam/jobstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/powershell/veeam/listjobs.pm b/centreon/common/powershell/veeam/listjobs.pm index 678f18f92..95966d085 100644 --- a/centreon/common/powershell/veeam/listjobs.pm +++ b/centreon/common/powershell/veeam/listjobs.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/powershell/windows/pendingreboot.pm b/centreon/common/powershell/windows/pendingreboot.pm index 64e2c2488..6cc55af46 100644 --- a/centreon/common/powershell/windows/pendingreboot.pm +++ b/centreon/common/powershell/windows/pendingreboot.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/protocols/jmx/custom/jolokia.pm b/centreon/common/protocols/jmx/custom/jolokia.pm index 2d1a96b9d..827c12b51 100644 --- a/centreon/common/protocols/jmx/custom/jolokia.pm +++ b/centreon/common/protocols/jmx/custom/jolokia.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/protocols/modbus/custom/api.pm b/centreon/common/protocols/modbus/custom/api.pm index 2f73624b5..253b0ceb7 100644 --- a/centreon/common/protocols/modbus/custom/api.pm +++ b/centreon/common/protocols/modbus/custom/api.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/protocols/sql/mode/connectiontime.pm b/centreon/common/protocols/sql/mode/connectiontime.pm index c770d885d..267ad0399 100644 --- a/centreon/common/protocols/sql/mode/connectiontime.pm +++ b/centreon/common/protocols/sql/mode/connectiontime.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/protocols/sql/mode/sql.pm b/centreon/common/protocols/sql/mode/sql.pm index 24d96625a..fba90b2fb 100644 --- a/centreon/common/protocols/sql/mode/sql.pm +++ b/centreon/common/protocols/sql/mode/sql.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/protocols/sql/mode/sqlstring.pm b/centreon/common/protocols/sql/mode/sqlstring.pm index 827c99918..a2dc5f2fc 100644 --- a/centreon/common/protocols/sql/mode/sqlstring.pm +++ b/centreon/common/protocols/sql/mode/sqlstring.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/protocols/ssh/custom/api.pm b/centreon/common/protocols/ssh/custom/api.pm index 6e323c3b9..1f06281c1 100644 --- a/centreon/common/protocols/ssh/custom/api.pm +++ b/centreon/common/protocols/ssh/custom/api.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/radlan/mode/cpu.pm b/centreon/common/radlan/mode/cpu.pm index e9d3ebd68..3eebdd955 100644 --- a/centreon/common/radlan/mode/cpu.pm +++ b/centreon/common/radlan/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/radlan/mode/environment.pm b/centreon/common/radlan/mode/environment.pm index 4b3ad986e..a908b85da 100644 --- a/centreon/common/radlan/mode/environment.pm +++ b/centreon/common/radlan/mode/environment.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/smcli/custom/custom.pm b/centreon/common/smcli/custom/custom.pm index 0a2b465b4..44647f306 100644 --- a/centreon/common/smcli/custom/custom.pm +++ b/centreon/common/smcli/custom/custom.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/smcli/mode/healthstatus.pm b/centreon/common/smcli/mode/healthstatus.pm index 50e848605..186b98295 100644 --- a/centreon/common/smcli/mode/healthstatus.pm +++ b/centreon/common/smcli/mode/healthstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/sun/snmp/mode/components/entity.pm b/centreon/common/sun/snmp/mode/components/entity.pm index 215de6e6f..5947abfc0 100644 --- a/centreon/common/sun/snmp/mode/components/entity.pm +++ b/centreon/common/sun/snmp/mode/components/entity.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/sun/snmp/mode/hardware.pm b/centreon/common/sun/snmp/mode/hardware.pm index 25a8a59da..d36cd5d02 100644 --- a/centreon/common/sun/snmp/mode/hardware.pm +++ b/centreon/common/sun/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/violin/snmp/mode/components/ca.pm b/centreon/common/violin/snmp/mode/components/ca.pm index 2248b0c0e..8ab206a35 100644 --- a/centreon/common/violin/snmp/mode/components/ca.pm +++ b/centreon/common/violin/snmp/mode/components/ca.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/violin/snmp/mode/components/fan.pm b/centreon/common/violin/snmp/mode/components/fan.pm index 6e0d36218..7b279ee2b 100644 --- a/centreon/common/violin/snmp/mode/components/fan.pm +++ b/centreon/common/violin/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/violin/snmp/mode/components/gfc.pm b/centreon/common/violin/snmp/mode/components/gfc.pm index 46750639d..e75f48520 100644 --- a/centreon/common/violin/snmp/mode/components/gfc.pm +++ b/centreon/common/violin/snmp/mode/components/gfc.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/violin/snmp/mode/components/lfc.pm b/centreon/common/violin/snmp/mode/components/lfc.pm index 45d14acee..abe4d190b 100644 --- a/centreon/common/violin/snmp/mode/components/lfc.pm +++ b/centreon/common/violin/snmp/mode/components/lfc.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/violin/snmp/mode/components/psu.pm b/centreon/common/violin/snmp/mode/components/psu.pm index a51944b1e..ccc3fd4e9 100644 --- a/centreon/common/violin/snmp/mode/components/psu.pm +++ b/centreon/common/violin/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/violin/snmp/mode/components/temperature.pm b/centreon/common/violin/snmp/mode/components/temperature.pm index 9e92d7162..998a37cd5 100644 --- a/centreon/common/violin/snmp/mode/components/temperature.pm +++ b/centreon/common/violin/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/violin/snmp/mode/components/vimm.pm b/centreon/common/violin/snmp/mode/components/vimm.pm index 3b28edb4a..894064268 100644 --- a/centreon/common/violin/snmp/mode/components/vimm.pm +++ b/centreon/common/violin/snmp/mode/components/vimm.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/common/violin/snmp/mode/hardware.pm b/centreon/common/violin/snmp/mode/hardware.pm index 276d42756..ac7e2237f 100644 --- a/centreon/common/violin/snmp/mode/hardware.pm +++ b/centreon/common/violin/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/plugins/alternative/FatPackerOptions.pm b/centreon/plugins/alternative/FatPackerOptions.pm index 3f2eaa29e..13f0a380d 100644 --- a/centreon/plugins/alternative/FatPackerOptions.pm +++ b/centreon/plugins/alternative/FatPackerOptions.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/plugins/alternative/Getopt.pm b/centreon/plugins/alternative/Getopt.pm index 1d39cb448..fc037401f 100644 --- a/centreon/plugins/alternative/Getopt.pm +++ b/centreon/plugins/alternative/Getopt.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/plugins/dbi.pm b/centreon/plugins/dbi.pm index 147097c1e..5c636307b 100644 --- a/centreon/plugins/dbi.pm +++ b/centreon/plugins/dbi.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/plugins/http.pm b/centreon/plugins/http.pm index fa6b655c6..2ce91e130 100644 --- a/centreon/plugins/http.pm +++ b/centreon/plugins/http.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/plugins/misc.pm b/centreon/plugins/misc.pm index f13b2d987..b535829db 100644 --- a/centreon/plugins/misc.pm +++ b/centreon/plugins/misc.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/plugins/mode.pm b/centreon/plugins/mode.pm index 8b469b166..a323b559c 100644 --- a/centreon/plugins/mode.pm +++ b/centreon/plugins/mode.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/plugins/options.pm b/centreon/plugins/options.pm index 98d970efa..e3dd7486e 100644 --- a/centreon/plugins/options.pm +++ b/centreon/plugins/options.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/plugins/output.pm b/centreon/plugins/output.pm index 8585c9ab5..e7fe92608 100644 --- a/centreon/plugins/output.pm +++ b/centreon/plugins/output.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/plugins/perfdata.pm b/centreon/plugins/perfdata.pm index 4d8c3ed9c..8c415ca0e 100644 --- a/centreon/plugins/perfdata.pm +++ b/centreon/plugins/perfdata.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/plugins/script.pm b/centreon/plugins/script.pm index 75484c42e..9c13c08de 100644 --- a/centreon/plugins/script.pm +++ b/centreon/plugins/script.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/plugins/script_custom.pm b/centreon/plugins/script_custom.pm index 25a246060..ac35ac819 100644 --- a/centreon/plugins/script_custom.pm +++ b/centreon/plugins/script_custom.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/plugins/script_simple.pm b/centreon/plugins/script_simple.pm index c5945e064..e3f543816 100644 --- a/centreon/plugins/script_simple.pm +++ b/centreon/plugins/script_simple.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/plugins/script_snmp.pm b/centreon/plugins/script_snmp.pm index 19debc914..69c521168 100644 --- a/centreon/plugins/script_snmp.pm +++ b/centreon/plugins/script_snmp.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/plugins/script_sql.pm b/centreon/plugins/script_sql.pm index 81d3e5acc..fde5aa8ea 100644 --- a/centreon/plugins/script_sql.pm +++ b/centreon/plugins/script_sql.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/plugins/script_wsman.pm b/centreon/plugins/script_wsman.pm index 630d020a3..d5d43a14d 100644 --- a/centreon/plugins/script_wsman.pm +++ b/centreon/plugins/script_wsman.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/plugins/snmp.pm b/centreon/plugins/snmp.pm index 7e42f2b50..27683b76c 100644 --- a/centreon/plugins/snmp.pm +++ b/centreon/plugins/snmp.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/plugins/statefile.pm b/centreon/plugins/statefile.pm index 0915ee50a..bd13fd1c9 100644 --- a/centreon/plugins/statefile.pm +++ b/centreon/plugins/statefile.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/plugins/templates/counter.pm b/centreon/plugins/templates/counter.pm index 798320b1c..a30031d5d 100644 --- a/centreon/plugins/templates/counter.pm +++ b/centreon/plugins/templates/counter.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/plugins/templates/hardware.pm b/centreon/plugins/templates/hardware.pm index a716f5791..1ff5e0730 100644 --- a/centreon/plugins/templates/hardware.pm +++ b/centreon/plugins/templates/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/plugins/values.pm b/centreon/plugins/values.pm index 957650c3c..bbe699f8e 100644 --- a/centreon/plugins/values.pm +++ b/centreon/plugins/values.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon/plugins/wsman.pm b/centreon/plugins/wsman.pm index fcfab930d..094c3dcbf 100644 --- a/centreon/plugins/wsman.pm +++ b/centreon/plugins/wsman.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/centreon_plugins.pl b/centreon_plugins.pl index 99241cc63..fd4fd5445 100644 --- a/centreon_plugins.pl +++ b/centreon_plugins.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/changelog b/changelog index 0bf497195..aee4ab57c 100644 --- a/changelog +++ b/changelog @@ -1,297 +1,297 @@ -2017-12-22 Quentin Garnier - * Plugin added: Pure Storage SNMP - * Plugin added: Pure Storage Rest API - * Plugin added: Amazon AWS API - * Plugin added: Comet P8000 series SNMP - * Plugin added: Veeam local - * Plugin added: Colubris SNMP - * Plugin added: Alpha ups SNMP - * Plugin added: Infoblox SNMP - * Plugin added: Redis Rest API - * Plugin added: Cisco Call Manager SNMP - -2017-12-08 Quentin Garnier - * Plugin added: Kingdee Rest API - * Plugin added: Redis Cli - * Plugin added: Ubiquiti Edge SNMP - * Plugin added: Arista SNMP - * Plugin added: Haproxy SNMP - * Plugin added: JBoss JMX - * Plugin added: NSClient Query - * Break: Renamed Asterisk AMI - * Break: Renamed Dell n4000 - * Break: Renamed Dell 62000 - -2017-11-23 Quentin Garnier - * Plugin added: Freebox Rest API - * Plugin added: Netgear Mseries SNMP - * Plugin added: Zyxel SNMP - * Add redis support for temporary datas - -2017-10-13 Quentin Garnier - * Plugin added: Kaminario Rest API - * Plugin added: Protocol SSH - * Plugin added: Tivoli Storage Manager - * Plugin added: Toshiba Storemate - * Mode added: [windows] 'pending-reboot' - * Mode added: [storeonce] 'nas-usage' - * Mode added: [tomcat] 'connector-usage' - -2017-09-13 Quentin Garnier - * Plugin added: Zookeeper JMX - * Plugin added: Solr JMX - * Plugin added: Automic Workload Automation JMX - * Plugin added: Fujitsu Server SNMP - * Plugin added: Foxbox Notification - * Break: Netasq renamed to Stormshield - -2017-08-11 Quentin Garnier - * Plugin added: Ruckus AP SNMP - * Plugin added: Adva FSP3000 SNMP - * Plugin added: Nokia Timos SNMP - * Plugin added: Huawei SNMP - * Plugin added: Hibernate JMX - * Plugin added: Raisecom SNMP - * Break: mode change for Pfsense SNMP - * Break: mode change for HP MSL SNMP - * Break: mode change for Juniper ISG SNMP - * Break: mode change for Digi Standard (sarian now) SNMP - -2017-07-13 Quentin Garnier - * Plugin added: Supermicro SNMP - * Plugin added: QuadStor VTL Local - * Plugin added: Docker Rest API - * Mode added: [linux] directlvm-usage - * Mode added: [oracle] rollback-segment-usage - * Mode added: [oracle] event-waits-usage - -2017-06-13 Quentin Garnier - * Plugin added: HP Eva CLI - * Plugin added: Acme Packet SNMP - * Plugin added: A10 AX SNMP - * Plugin added: OpenHeadend SNMP - * Plugin added: Zixi Rest API - * Plugin added: Various Evertz SNMP - * Plugin added: Qsan Nas SNMP - * Plugin added: Citrix SDX SNMP - * Plugin added: IBM TS2900 SNMP - * Plugin added: Fortinet Fortimanager SNMP - * Mode added: [pacemaker] clustat - * Break: path change for Alcatel Omniswitch SNMP - -2017-05-19 Quentin Garnier - * Plugin added: Alteon SNMP - * Plugin added: Nutanix SNMP - * Plugin added: Citrix Cloudbridge SNMP - * Plugin added: Protocol Modbus - * Plugin added: Notification HighSMS - * Plugin added: Jmeter Scenario - * Plugin added: AppearTV SNMP - * Plugin added: QSan NAS SNMP - * Mode added: [linux] systemd services - * Break: path change for Alcatel Omniswitch - -2017-03-29 Quentin Garnier - * Plugin added: Watchguard SNMP - * Plugin added: Intelligence Interactive SNMP - * Plugin added: Oracle Infiniband SNMP - * Plugin added: Beeware SNMP - * Plugin added: Oracle ZFS Storage ZS SNMP - * Plugin added: Safenet Keysecure SNMP - * Plugin added: Oracle OTD SNMP - * Break: path change for Alteon SNMP - -2017-03-10 Quentin Garnier - * Plugin added: Dell FluidFS SNMP - * Plugin added: Clamav - * Plugin added: Sendmail SNMP - * Plugin added: Centreon DSM - * Plugin added: Audiocodes SNMP - * Mode added: [snmp_standard] 'vrrp-status' - * Mode added: [centreon] 'virtualservice' - * Break: path change for Netscaler SNMP - * Fix: perl connector issue - -2017-02-16 Quentin Garnier - * Plugin added: Hyper-v 2012 - * Plugin added: Avocent ACS 6000 SNMP - * Plugin added: Alcatel PSS 1830 - * Mode added:: [hp lefthand] 'volume-usage' - * Mode added:: [checkpoint] 'vpn-status' - * Mode added:: [f-5 bigip] 'tmm-usage' - * Break: path change for F-5 BigIp - * Break: path change for Checkpoint - -2017-01-20 Quentin Garnier - * Plugin added: SAP Hana DB - * Plugin added: Efficient IP - * Plugin added: IBM TS3500 - * Plugin added: Sophos Email Security appliance - * Mode added: [hmc] 'led-status' - * Add a special mode to send SNMP trap - * Break: path changed for IBM TS3100 and TS3200 - -2016-12-12 Quentin Garnier - * Plugin added: to check Cisco Meraki Cloud Ctrl SNMP - * Plugin added: to check Polycom RMX SNMP - * Plugin added: to check Exagrid SNMP - * Plugin added: to check Cisco Prime Wireless SNMP - * Mode added: [snmp_standard] 'numeric-value' - * Mode added: [fortigate] 'signatures' - * Mode added: [cisco standard] 'qos-usage' - * Mode added: [cisco standard] 'ipsec-tunnel' - * Enhancement: [checkpoint] major update - * Enhancement: [protocol bgp] major update - -2016-11-21 Quentin Garnier - * Plugin added: to check Jacarta Sensor SNMP - * Plugin added: to check Safenet HSM - * Plugin added: to check HP ILO XML API - * Plugin added: to check EMC Isilon SNMP - * Plugin added: to check APC NetBotz SNMP - * Enhancement: [apc ats] major update - * Enhancement: [hwgste] update - * Fix: [sonus] namespace issue (#532) - * Fix: [snmp_standard]{storage} cache issue (#523) - -2016-10-14 Quentin Garnier - * Plugin added: to check StorageTek SLxxx - * Plugin added: to check HP Storeonce Rest API - * Plugin added: to check Gorgy ntpserver SNMP - * Plugin added: to check Nortel/Avaya SNMP - * Plugin added: to check Vtom Rest API - * Plugin added: to check Sybase - * Plugin added: to check Cyberoam SNMP (#517) - * Minor fixes and enhancement - -2016-09-02 Quentin Garnier - * Plugin added: to check HP-UX SNMP (#13) - * Plugin added: to check Hitachi HNAS - * Plugin added: to check Overland Neo Series - * Plugin added: to check Quantum Scalar - * Plugin added: to check HP Storeonce SSH - * Fix: [pdu emerson]{global-status} wrong status - -2016-08-03 Quentin Garnier - * Plugin added: to check IBM Storwize (#438) - * Plugin added: to check Sonus SBC - * Plugin added: to check Aerohive - * Plugin added: to check Digi routers - * Plugin added: to check telnet sessions - * Plugin added: to check china clever PDU - * Plugin added: to check Cisco Voice Gateway - * Some minor fix and enhancement - -2016-06-27 Quentin Garnier - * Update FAQ: build a standalone perl script - * Plugin added: to check Lenovo S Series (#412) - * Plugin added: to check Digi AnywhereUSB - * Mode added: [netasq] 'ha-nodes' - * Mode removed: [netasq] 'ha-status' - * Fix: [dell n4000]{environment} wrong temperature (#397) - * Fix: [netapp]{cache-age} not working (#422) - * Fix: [cisco wlc]{ap-users} wrong total - * Fix: [tomcat]{memory} problem with java 8 - * Fix: [netapp]{filesys} no values (#415) - -2016-05-24 Quentin Garnier - * Can use '/' instead '::' for plugin option (#380) - * Mode added: [pacemaker] 'constraints' - * Mode added: [netbackup] 'tape-usage' - * Mode added: [oracle] 'data-files-status' - * Mode added: [netasq] 'connections' - * Enhancement: [cisco wlc]{ap-users} get users by AP (#375) - * Enhancement: [oracle]{tablespace} can use free size left - * Fix: [pdu apc]{load} incorrect values (#408) - * Fix: [mscs] Issue with old versions - * Fix: [postgres]{timesync} threshold issue - * Fix: [ntp]{offset} time formula issue - * Fix: [github]{issues} Get only issue - * Fix: [netasq]{memory} Use BSD memory check - * Fix: [tomcat]{applications} Issue on Windows (#356) - -2016-03-24 Quentin Garnier - * Plugin added: to check AKCP SensorProbe - * Plugin added: to check Juniper ISG - * Plugin added: to check OSPF protocol - * Plugin added: to check Microsoft Cluster Service - * Plugin added: to check Dell Compellent in SNMP and Powershell SDK - * Enhancement: [snmp_standard]{string-value} Many changes (#228) - * Fix: [raritan] OnOff sending errors (#348) - -2016-02-20 Quentin Garnier - * Add a class for FatPacker system - -2016-02-17 Quentin Garnier - * Plugin added: to check Kemp - * Plugin added: to check Netbackup - * Plugin added: to check Ucopia Wireless Controller - * Plugin added: to check Emerson Liebert PDU - * Plugin added: to check Microsoft Lync 2013 - * Plugin added: to check TemPERHum sensors - * Mode added: [mysql] 'table-size' - * Mode added: [centreon] 'count-services' - * Mode added: [iDrac] 'hardware' (for iDrac 8) - * Enhancement: [xtremio] hardened code - * Enhancement: [cisco asa]{sessions} better metrics (#315) - * Enhancement: [freebsd]{memory} More real values - * Fix: [oracle]{tablespace-usage} Usage more than 100% - * Fix: [clariion]{disks} Last disks was missing - * Fix: [mssql]{failed-jobs} wrong thresholds - -2016-01-22 Quentin Garnier - * Plugin added: Add a plugin to check Juniper Trapeze in SNMP - * Plugin added: Add a plugin to check Dell ML6000 in SNMP - * Plugin added: Add a plugin to check UPS APC in SNMP - * Plugin added: Add a plugin to check HP VC in SNMP - * Major fix on sanity mechanism for options - * Add option '--filter-uom' in core library (#220) - * Add some new classes for code refactoring - * Add 'get_header' method in http library - * Fix 'proxypac' in http library (#263) - * Mode added: [github] 'stats' - * Mode added: [netapp] 'cache-age' - * Mode added: [datadomain] 'replication' - * Enhancement: [cisco standard]{ipsla} hardened code - * Enhancement: [github]{issues} change api call method (#257) - * Enhancement: [selenium]{scenario} add echo command (#258) - * Enhancement: [protocol x509]{validity} add SNI support (#241) - * Enhancement: [snmp_standard]{interfaces} add option '--force-counters32' (#213) - * Enhancement: [protocol x509]{validity} add support for alternative subject names (#277) - * Enhancement: [juniper sa]{users} add filter (#192) - * Enhancement: [cisco wlc]{ap-users} add users by ssid (#227) - * Enhancement: [juniper ssg]{sessions} better counters (#233) - * Enhancement: [vmware connector]{time-host} new options - * Enhancement: [extreme]{hardware} add poe status - * Enhancement: [vplex]{directors} hardened code - * Fix: [bluecoat]{hardware} problem with sensor - * Fix: [cisco ucs]{equipment} fix severity for iocard (#283) - * Fix: [exchange 2010]{queues} perdata infinity not raising anymore - -2015-12-18 Quentin Garnier - * Plugin added: Add a plugin to check VMWare ESX with WSMAN - * Configuration: centreon-plugins don't use GetOptions anymore (custom library instead) - * Add option '--snmp-force-getnext' in core snmp library - * Mode added: [F5 BigIP] 'failover' - * Mode added: [vmware connector] for centreon-vmware 2.1.0 - * Enhancement: [extreme]{cpu} 'n/a' value managed (#223) - * Enhancement: [snmp standard]{inodes} add filter type option (#224) - * Enhancement: [netapp]{filesys} add inodes usage - * Enhancement: [snmp_standard]{ntp} change output (#232) - * Enhancement: [snmp_standard]{processcount} improve performance - * Enhancement: [cisco standard]{ipsla} manage no tag name - * Enhancement: [snmp_standard]{loadaverage} manage load with coma - * Enhancement: [oracle]{tablespaces} manage 'UNDO' tablespaces (#242) - * Enhancement: [cisco ucs]{equipment} add cpu, memory and localdisk monitoring - * Enhancement: [cisco wlc]{ap-status} can monitor the number of APs - * Enhancement: [F5 BigIP]{hardware} refactoring - * Enhancement: [cisco standard]{environment} add sensors monitoring (#160) - * Enhancement: [aws]{list} add exclude service (#248) - * Fix: [protocol x509]{validity} add default port (#240) - * Fix: [ups standard]{battery-status} hardened code (#225) - * Fix: [cisco standard]{environment} voltage threshold value issue - * Fix: [kayako api]{ticketcount} mode crash - * Fix: [elasticsearch] Crash without some values in command line (#243) - -2015-11-26 Quentin Garnier - * initial release +2017-12-22 Quentin Garnier + * Plugin added: Pure Storage SNMP + * Plugin added: Pure Storage Rest API + * Plugin added: Amazon AWS API + * Plugin added: Comet P8000 series SNMP + * Plugin added: Veeam local + * Plugin added: Colubris SNMP + * Plugin added: Alpha ups SNMP + * Plugin added: Infoblox SNMP + * Plugin added: Redis Rest API + * Plugin added: Cisco Call Manager SNMP + +2017-12-08 Quentin Garnier + * Plugin added: Kingdee Rest API + * Plugin added: Redis Cli + * Plugin added: Ubiquiti Edge SNMP + * Plugin added: Arista SNMP + * Plugin added: Haproxy SNMP + * Plugin added: JBoss JMX + * Plugin added: NSClient Query + * Break: Renamed Asterisk AMI + * Break: Renamed Dell n4000 + * Break: Renamed Dell 62000 + +2017-11-23 Quentin Garnier + * Plugin added: Freebox Rest API + * Plugin added: Netgear Mseries SNMP + * Plugin added: Zyxel SNMP + * Add redis support for temporary datas + +2017-10-13 Quentin Garnier + * Plugin added: Kaminario Rest API + * Plugin added: Protocol SSH + * Plugin added: Tivoli Storage Manager + * Plugin added: Toshiba Storemate + * Mode added: [windows] 'pending-reboot' + * Mode added: [storeonce] 'nas-usage' + * Mode added: [tomcat] 'connector-usage' + +2017-09-13 Quentin Garnier + * Plugin added: Zookeeper JMX + * Plugin added: Solr JMX + * Plugin added: Automic Workload Automation JMX + * Plugin added: Fujitsu Server SNMP + * Plugin added: Foxbox Notification + * Break: Netasq renamed to Stormshield + +2017-08-11 Quentin Garnier + * Plugin added: Ruckus AP SNMP + * Plugin added: Adva FSP3000 SNMP + * Plugin added: Nokia Timos SNMP + * Plugin added: Huawei SNMP + * Plugin added: Hibernate JMX + * Plugin added: Raisecom SNMP + * Break: mode change for Pfsense SNMP + * Break: mode change for HP MSL SNMP + * Break: mode change for Juniper ISG SNMP + * Break: mode change for Digi Standard (sarian now) SNMP + +2017-07-13 Quentin Garnier + * Plugin added: Supermicro SNMP + * Plugin added: QuadStor VTL Local + * Plugin added: Docker Rest API + * Mode added: [linux] directlvm-usage + * Mode added: [oracle] rollback-segment-usage + * Mode added: [oracle] event-waits-usage + +2017-06-13 Quentin Garnier + * Plugin added: HP Eva CLI + * Plugin added: Acme Packet SNMP + * Plugin added: A10 AX SNMP + * Plugin added: OpenHeadend SNMP + * Plugin added: Zixi Rest API + * Plugin added: Various Evertz SNMP + * Plugin added: Qsan Nas SNMP + * Plugin added: Citrix SDX SNMP + * Plugin added: IBM TS2900 SNMP + * Plugin added: Fortinet Fortimanager SNMP + * Mode added: [pacemaker] clustat + * Break: path change for Alcatel Omniswitch SNMP + +2017-05-19 Quentin Garnier + * Plugin added: Alteon SNMP + * Plugin added: Nutanix SNMP + * Plugin added: Citrix Cloudbridge SNMP + * Plugin added: Protocol Modbus + * Plugin added: Notification HighSMS + * Plugin added: Jmeter Scenario + * Plugin added: AppearTV SNMP + * Plugin added: QSan NAS SNMP + * Mode added: [linux] systemd services + * Break: path change for Alcatel Omniswitch + +2017-03-29 Quentin Garnier + * Plugin added: Watchguard SNMP + * Plugin added: Intelligence Interactive SNMP + * Plugin added: Oracle Infiniband SNMP + * Plugin added: Beeware SNMP + * Plugin added: Oracle ZFS Storage ZS SNMP + * Plugin added: Safenet Keysecure SNMP + * Plugin added: Oracle OTD SNMP + * Break: path change for Alteon SNMP + +2017-03-10 Quentin Garnier + * Plugin added: Dell FluidFS SNMP + * Plugin added: Clamav + * Plugin added: Sendmail SNMP + * Plugin added: Centreon DSM + * Plugin added: Audiocodes SNMP + * Mode added: [snmp_standard] 'vrrp-status' + * Mode added: [centreon] 'virtualservice' + * Break: path change for Netscaler SNMP + * Fix: perl connector issue + +2017-02-16 Quentin Garnier + * Plugin added: Hyper-v 2012 + * Plugin added: Avocent ACS 6000 SNMP + * Plugin added: Alcatel PSS 1830 + * Mode added:: [hp lefthand] 'volume-usage' + * Mode added:: [checkpoint] 'vpn-status' + * Mode added:: [f-5 bigip] 'tmm-usage' + * Break: path change for F-5 BigIp + * Break: path change for Checkpoint + +2017-01-20 Quentin Garnier + * Plugin added: SAP Hana DB + * Plugin added: Efficient IP + * Plugin added: IBM TS3500 + * Plugin added: Sophos Email Security appliance + * Mode added: [hmc] 'led-status' + * Add a special mode to send SNMP trap + * Break: path changed for IBM TS3100 and TS3200 + +2016-12-12 Quentin Garnier + * Plugin added: to check Cisco Meraki Cloud Ctrl SNMP + * Plugin added: to check Polycom RMX SNMP + * Plugin added: to check Exagrid SNMP + * Plugin added: to check Cisco Prime Wireless SNMP + * Mode added: [snmp_standard] 'numeric-value' + * Mode added: [fortigate] 'signatures' + * Mode added: [cisco standard] 'qos-usage' + * Mode added: [cisco standard] 'ipsec-tunnel' + * Enhancement: [checkpoint] major update + * Enhancement: [protocol bgp] major update + +2016-11-21 Quentin Garnier + * Plugin added: to check Jacarta Sensor SNMP + * Plugin added: to check Safenet HSM + * Plugin added: to check HP ILO XML API + * Plugin added: to check EMC Isilon SNMP + * Plugin added: to check APC NetBotz SNMP + * Enhancement: [apc ats] major update + * Enhancement: [hwgste] update + * Fix: [sonus] namespace issue (#532) + * Fix: [snmp_standard]{storage} cache issue (#523) + +2016-10-14 Quentin Garnier + * Plugin added: to check StorageTek SLxxx + * Plugin added: to check HP Storeonce Rest API + * Plugin added: to check Gorgy ntpserver SNMP + * Plugin added: to check Nortel/Avaya SNMP + * Plugin added: to check Vtom Rest API + * Plugin added: to check Sybase + * Plugin added: to check Cyberoam SNMP (#517) + * Minor fixes and enhancement + +2016-09-02 Quentin Garnier + * Plugin added: to check HP-UX SNMP (#13) + * Plugin added: to check Hitachi HNAS + * Plugin added: to check Overland Neo Series + * Plugin added: to check Quantum Scalar + * Plugin added: to check HP Storeonce SSH + * Fix: [pdu emerson]{global-status} wrong status + +2016-08-03 Quentin Garnier + * Plugin added: to check IBM Storwize (#438) + * Plugin added: to check Sonus SBC + * Plugin added: to check Aerohive + * Plugin added: to check Digi routers + * Plugin added: to check telnet sessions + * Plugin added: to check china clever PDU + * Plugin added: to check Cisco Voice Gateway + * Some minor fix and enhancement + +2016-06-27 Quentin Garnier + * Update FAQ: build a standalone perl script + * Plugin added: to check Lenovo S Series (#412) + * Plugin added: to check Digi AnywhereUSB + * Mode added: [netasq] 'ha-nodes' + * Mode removed: [netasq] 'ha-status' + * Fix: [dell n4000]{environment} wrong temperature (#397) + * Fix: [netapp]{cache-age} not working (#422) + * Fix: [cisco wlc]{ap-users} wrong total + * Fix: [tomcat]{memory} problem with java 8 + * Fix: [netapp]{filesys} no values (#415) + +2016-05-24 Quentin Garnier + * Can use '/' instead '::' for plugin option (#380) + * Mode added: [pacemaker] 'constraints' + * Mode added: [netbackup] 'tape-usage' + * Mode added: [oracle] 'data-files-status' + * Mode added: [netasq] 'connections' + * Enhancement: [cisco wlc]{ap-users} get users by AP (#375) + * Enhancement: [oracle]{tablespace} can use free size left + * Fix: [pdu apc]{load} incorrect values (#408) + * Fix: [mscs] Issue with old versions + * Fix: [postgres]{timesync} threshold issue + * Fix: [ntp]{offset} time formula issue + * Fix: [github]{issues} Get only issue + * Fix: [netasq]{memory} Use BSD memory check + * Fix: [tomcat]{applications} Issue on Windows (#356) + +2016-03-24 Quentin Garnier + * Plugin added: to check AKCP SensorProbe + * Plugin added: to check Juniper ISG + * Plugin added: to check OSPF protocol + * Plugin added: to check Microsoft Cluster Service + * Plugin added: to check Dell Compellent in SNMP and Powershell SDK + * Enhancement: [snmp_standard]{string-value} Many changes (#228) + * Fix: [raritan] OnOff sending errors (#348) + +2016-02-20 Quentin Garnier + * Add a class for FatPacker system + +2016-02-17 Quentin Garnier + * Plugin added: to check Kemp + * Plugin added: to check Netbackup + * Plugin added: to check Ucopia Wireless Controller + * Plugin added: to check Emerson Liebert PDU + * Plugin added: to check Microsoft Lync 2013 + * Plugin added: to check TemPERHum sensors + * Mode added: [mysql] 'table-size' + * Mode added: [centreon] 'count-services' + * Mode added: [iDrac] 'hardware' (for iDrac 8) + * Enhancement: [xtremio] hardened code + * Enhancement: [cisco asa]{sessions} better metrics (#315) + * Enhancement: [freebsd]{memory} More real values + * Fix: [oracle]{tablespace-usage} Usage more than 100% + * Fix: [clariion]{disks} Last disks was missing + * Fix: [mssql]{failed-jobs} wrong thresholds + +2016-01-22 Quentin Garnier + * Plugin added: Add a plugin to check Juniper Trapeze in SNMP + * Plugin added: Add a plugin to check Dell ML6000 in SNMP + * Plugin added: Add a plugin to check UPS APC in SNMP + * Plugin added: Add a plugin to check HP VC in SNMP + * Major fix on sanity mechanism for options + * Add option '--filter-uom' in core library (#220) + * Add some new classes for code refactoring + * Add 'get_header' method in http library + * Fix 'proxypac' in http library (#263) + * Mode added: [github] 'stats' + * Mode added: [netapp] 'cache-age' + * Mode added: [datadomain] 'replication' + * Enhancement: [cisco standard]{ipsla} hardened code + * Enhancement: [github]{issues} change api call method (#257) + * Enhancement: [selenium]{scenario} add echo command (#258) + * Enhancement: [protocol x509]{validity} add SNI support (#241) + * Enhancement: [snmp_standard]{interfaces} add option '--force-counters32' (#213) + * Enhancement: [protocol x509]{validity} add support for alternative subject names (#277) + * Enhancement: [juniper sa]{users} add filter (#192) + * Enhancement: [cisco wlc]{ap-users} add users by ssid (#227) + * Enhancement: [juniper ssg]{sessions} better counters (#233) + * Enhancement: [vmware connector]{time-host} new options + * Enhancement: [extreme]{hardware} add poe status + * Enhancement: [vplex]{directors} hardened code + * Fix: [bluecoat]{hardware} problem with sensor + * Fix: [cisco ucs]{equipment} fix severity for iocard (#283) + * Fix: [exchange 2010]{queues} perdata infinity not raising anymore + +2015-12-18 Quentin Garnier + * Plugin added: Add a plugin to check VMWare ESX with WSMAN + * Configuration: centreon-plugins don't use GetOptions anymore (custom library instead) + * Add option '--snmp-force-getnext' in core snmp library + * Mode added: [F5 BigIP] 'failover' + * Mode added: [vmware connector] for centreon-vmware 2.1.0 + * Enhancement: [extreme]{cpu} 'n/a' value managed (#223) + * Enhancement: [snmp standard]{inodes} add filter type option (#224) + * Enhancement: [netapp]{filesys} add inodes usage + * Enhancement: [snmp_standard]{ntp} change output (#232) + * Enhancement: [snmp_standard]{processcount} improve performance + * Enhancement: [cisco standard]{ipsla} manage no tag name + * Enhancement: [snmp_standard]{loadaverage} manage load with coma + * Enhancement: [oracle]{tablespaces} manage 'UNDO' tablespaces (#242) + * Enhancement: [cisco ucs]{equipment} add cpu, memory and localdisk monitoring + * Enhancement: [cisco wlc]{ap-status} can monitor the number of APs + * Enhancement: [F5 BigIP]{hardware} refactoring + * Enhancement: [cisco standard]{environment} add sensors monitoring (#160) + * Enhancement: [aws]{list} add exclude service (#248) + * Fix: [protocol x509]{validity} add default port (#240) + * Fix: [ups standard]{battery-status} hardened code (#225) + * Fix: [cisco standard]{environment} voltage threshold value issue + * Fix: [kayako api]{ticketcount} mode crash + * Fix: [elasticsearch] Crash without some values in command line (#243) + +2015-11-26 Quentin Garnier + * initial release diff --git a/cloud/aws/custom/awscli.pm b/cloud/aws/custom/awscli.pm index 2359f553f..05b7675da 100644 --- a/cloud/aws/custom/awscli.pm +++ b/cloud/aws/custom/awscli.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/aws/custom/paws.pm b/cloud/aws/custom/paws.pm index f6d00b583..db73f93c2 100644 --- a/cloud/aws/custom/paws.pm +++ b/cloud/aws/custom/paws.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/aws/mode/cloudwatchgetalarms.pm b/cloud/aws/mode/cloudwatchgetalarms.pm index c37a83bfa..01e8762c6 100644 --- a/cloud/aws/mode/cloudwatchgetalarms.pm +++ b/cloud/aws/mode/cloudwatchgetalarms.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/aws/mode/cloudwatchgetmetrics.pm b/cloud/aws/mode/cloudwatchgetmetrics.pm index de9908b48..ceac2cd04 100644 --- a/cloud/aws/mode/cloudwatchgetmetrics.pm +++ b/cloud/aws/mode/cloudwatchgetmetrics.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/aws/mode/cloudwatchlistmetrics.pm b/cloud/aws/mode/cloudwatchlistmetrics.pm index b76d37802..dd904f2f2 100644 --- a/cloud/aws/mode/cloudwatchlistmetrics.pm +++ b/cloud/aws/mode/cloudwatchlistmetrics.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/aws/mode/ec2instancestatus.pm b/cloud/aws/mode/ec2instancestatus.pm index d85679aca..5e19ea1ec 100644 --- a/cloud/aws/mode/ec2instancestatus.pm +++ b/cloud/aws/mode/ec2instancestatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/aws/mode/rdsinstancestatus.pm b/cloud/aws/mode/rdsinstancestatus.pm index a9cbe77fa..e73895c82 100644 --- a/cloud/aws/mode/rdsinstancestatus.pm +++ b/cloud/aws/mode/rdsinstancestatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/aws/plugin.pm b/cloud/aws/plugin.pm index bf8e60d84..1f3068fb1 100644 --- a/cloud/aws/plugin.pm +++ b/cloud/aws/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/docker/restapi/custom/api.pm b/cloud/docker/restapi/custom/api.pm index a84867136..9f2e574ac 100644 --- a/cloud/docker/restapi/custom/api.pm +++ b/cloud/docker/restapi/custom/api.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/docker/restapi/mode/containerusage.pm b/cloud/docker/restapi/mode/containerusage.pm index 3ec13cb61..40089000a 100644 --- a/cloud/docker/restapi/mode/containerusage.pm +++ b/cloud/docker/restapi/mode/containerusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/docker/restapi/mode/listcontainers.pm b/cloud/docker/restapi/mode/listcontainers.pm index 2419c0712..4049287fb 100644 --- a/cloud/docker/restapi/mode/listcontainers.pm +++ b/cloud/docker/restapi/mode/listcontainers.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/docker/restapi/mode/nodestatus.pm b/cloud/docker/restapi/mode/nodestatus.pm index a4835549a..699d427bb 100644 --- a/cloud/docker/restapi/mode/nodestatus.pm +++ b/cloud/docker/restapi/mode/nodestatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/docker/restapi/plugin.pm b/cloud/docker/restapi/plugin.pm index a95750a0f..69e7bab58 100644 --- a/cloud/docker/restapi/plugin.pm +++ b/cloud/docker/restapi/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/nutanix/snmp/mode/clusterusage.pm b/cloud/nutanix/snmp/mode/clusterusage.pm index ca3156227..6e7272227 100644 --- a/cloud/nutanix/snmp/mode/clusterusage.pm +++ b/cloud/nutanix/snmp/mode/clusterusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/nutanix/snmp/mode/containerusage.pm b/cloud/nutanix/snmp/mode/containerusage.pm index 0d1a30917..a5137bab4 100644 --- a/cloud/nutanix/snmp/mode/containerusage.pm +++ b/cloud/nutanix/snmp/mode/containerusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/nutanix/snmp/mode/diskusage.pm b/cloud/nutanix/snmp/mode/diskusage.pm index bbbea260e..fd0f52094 100644 --- a/cloud/nutanix/snmp/mode/diskusage.pm +++ b/cloud/nutanix/snmp/mode/diskusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/nutanix/snmp/mode/hypervisorusage.pm b/cloud/nutanix/snmp/mode/hypervisorusage.pm index ef295314f..70d2e0d5e 100644 --- a/cloud/nutanix/snmp/mode/hypervisorusage.pm +++ b/cloud/nutanix/snmp/mode/hypervisorusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/nutanix/snmp/mode/listcontainers.pm b/cloud/nutanix/snmp/mode/listcontainers.pm index 82e350f77..af78893ca 100644 --- a/cloud/nutanix/snmp/mode/listcontainers.pm +++ b/cloud/nutanix/snmp/mode/listcontainers.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/nutanix/snmp/mode/listdisks.pm b/cloud/nutanix/snmp/mode/listdisks.pm index bde130826..ecb06d859 100644 --- a/cloud/nutanix/snmp/mode/listdisks.pm +++ b/cloud/nutanix/snmp/mode/listdisks.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/nutanix/snmp/mode/listhypervisors.pm b/cloud/nutanix/snmp/mode/listhypervisors.pm index d99d0a944..acbe232d7 100644 --- a/cloud/nutanix/snmp/mode/listhypervisors.pm +++ b/cloud/nutanix/snmp/mode/listhypervisors.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/nutanix/snmp/mode/liststoragepools.pm b/cloud/nutanix/snmp/mode/liststoragepools.pm index 07499f79d..a33f82ef4 100644 --- a/cloud/nutanix/snmp/mode/liststoragepools.pm +++ b/cloud/nutanix/snmp/mode/liststoragepools.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/nutanix/snmp/mode/listvms.pm b/cloud/nutanix/snmp/mode/listvms.pm index fe790f336..753416b8a 100644 --- a/cloud/nutanix/snmp/mode/listvms.pm +++ b/cloud/nutanix/snmp/mode/listvms.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/nutanix/snmp/mode/storagepoolusage.pm b/cloud/nutanix/snmp/mode/storagepoolusage.pm index 4cae44919..b56a0f9bc 100644 --- a/cloud/nutanix/snmp/mode/storagepoolusage.pm +++ b/cloud/nutanix/snmp/mode/storagepoolusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/nutanix/snmp/mode/vmusage.pm b/cloud/nutanix/snmp/mode/vmusage.pm index 760421f31..cab5a4a05 100644 --- a/cloud/nutanix/snmp/mode/vmusage.pm +++ b/cloud/nutanix/snmp/mode/vmusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/nutanix/snmp/plugin.pm b/cloud/nutanix/snmp/plugin.pm index 019f2e53e..fa61fb512 100644 --- a/cloud/nutanix/snmp/plugin.pm +++ b/cloud/nutanix/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/ovh/restapi/custom/api.pm b/cloud/ovh/restapi/custom/api.pm index 40779f0f8..1928c8d4f 100644 --- a/cloud/ovh/restapi/custom/api.pm +++ b/cloud/ovh/restapi/custom/api.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/ovh/restapi/mode/quotausage.pm b/cloud/ovh/restapi/mode/quotausage.pm index caa02bde5..6004db1bc 100644 --- a/cloud/ovh/restapi/mode/quotausage.pm +++ b/cloud/ovh/restapi/mode/quotausage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/ovh/restapi/mode/sms.pm b/cloud/ovh/restapi/mode/sms.pm index 4c1f885db..bb8714a83 100644 --- a/cloud/ovh/restapi/mode/sms.pm +++ b/cloud/ovh/restapi/mode/sms.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/cloud/ovh/restapi/plugin.pm b/cloud/ovh/restapi/plugin.pm index c27a75843..7df9ceec8 100644 --- a/cloud/ovh/restapi/plugin.pm +++ b/cloud/ovh/restapi/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/firebird/mode/longqueries.pm b/database/firebird/mode/longqueries.pm index 61586c361..e7a71e49a 100644 --- a/database/firebird/mode/longqueries.pm +++ b/database/firebird/mode/longqueries.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/firebird/mode/memory.pm b/database/firebird/mode/memory.pm index 4b4d7f509..96a628af8 100644 --- a/database/firebird/mode/memory.pm +++ b/database/firebird/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/firebird/mode/pages.pm b/database/firebird/mode/pages.pm index 228d37c14..11b67a8dc 100644 --- a/database/firebird/mode/pages.pm +++ b/database/firebird/mode/pages.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/firebird/mode/queries.pm b/database/firebird/mode/queries.pm index 546146221..4832a10d3 100644 --- a/database/firebird/mode/queries.pm +++ b/database/firebird/mode/queries.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/firebird/mode/users.pm b/database/firebird/mode/users.pm index 99f302f43..348c1a1f7 100644 --- a/database/firebird/mode/users.pm +++ b/database/firebird/mode/users.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/firebird/plugin.pm b/database/firebird/plugin.pm index b764efb8d..c1da23742 100644 --- a/database/firebird/plugin.pm +++ b/database/firebird/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/informix/mode/archivelevel0.pm b/database/informix/mode/archivelevel0.pm index 776a54766..8e46dee00 100644 --- a/database/informix/mode/archivelevel0.pm +++ b/database/informix/mode/archivelevel0.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/informix/mode/checkpoints.pm b/database/informix/mode/checkpoints.pm index 48ecb068b..c17b57fb7 100644 --- a/database/informix/mode/checkpoints.pm +++ b/database/informix/mode/checkpoints.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/informix/mode/chunkstates.pm b/database/informix/mode/chunkstates.pm index b06cada69..482ef4437 100644 --- a/database/informix/mode/chunkstates.pm +++ b/database/informix/mode/chunkstates.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/informix/mode/dbspacesusage.pm b/database/informix/mode/dbspacesusage.pm index fd7e9b260..761d179bd 100644 --- a/database/informix/mode/dbspacesusage.pm +++ b/database/informix/mode/dbspacesusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/informix/mode/globalcache.pm b/database/informix/mode/globalcache.pm index ea6c41adc..f2dd97ad0 100644 --- a/database/informix/mode/globalcache.pm +++ b/database/informix/mode/globalcache.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/informix/mode/listdatabases.pm b/database/informix/mode/listdatabases.pm index 768cee11a..bc15883a6 100644 --- a/database/informix/mode/listdatabases.pm +++ b/database/informix/mode/listdatabases.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/informix/mode/listdbspaces.pm b/database/informix/mode/listdbspaces.pm index 3d80affed..a23d176c1 100644 --- a/database/informix/mode/listdbspaces.pm +++ b/database/informix/mode/listdbspaces.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/informix/mode/lockoverflow.pm b/database/informix/mode/lockoverflow.pm index 57beaf9f1..770fb2ac0 100644 --- a/database/informix/mode/lockoverflow.pm +++ b/database/informix/mode/lockoverflow.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/informix/mode/logfilesusage.pm b/database/informix/mode/logfilesusage.pm index 69271735c..65f1bcb06 100644 --- a/database/informix/mode/logfilesusage.pm +++ b/database/informix/mode/logfilesusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/informix/mode/longtxs.pm b/database/informix/mode/longtxs.pm index 881642893..d736a420f 100644 --- a/database/informix/mode/longtxs.pm +++ b/database/informix/mode/longtxs.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/informix/mode/sessions.pm b/database/informix/mode/sessions.pm index c45f33ead..fa9a0155e 100644 --- a/database/informix/mode/sessions.pm +++ b/database/informix/mode/sessions.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/informix/mode/tablelocks.pm b/database/informix/mode/tablelocks.pm index d4f4b4225..6ae8b7cda 100644 --- a/database/informix/mode/tablelocks.pm +++ b/database/informix/mode/tablelocks.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/informix/plugin.pm b/database/informix/plugin.pm index 02f4f6c48..dea9f4493 100644 --- a/database/informix/plugin.pm +++ b/database/informix/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mssql/mode/backupage.pm b/database/mssql/mode/backupage.pm index 8e213f20a..29c379208 100644 --- a/database/mssql/mode/backupage.pm +++ b/database/mssql/mode/backupage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mssql/mode/blockedprocesses.pm b/database/mssql/mode/blockedprocesses.pm index 36985048e..10fd639dc 100644 --- a/database/mssql/mode/blockedprocesses.pm +++ b/database/mssql/mode/blockedprocesses.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mssql/mode/cachehitratio.pm b/database/mssql/mode/cachehitratio.pm index 30f74c538..76a9f643a 100644 --- a/database/mssql/mode/cachehitratio.pm +++ b/database/mssql/mode/cachehitratio.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mssql/mode/connectedusers.pm b/database/mssql/mode/connectedusers.pm index 615bdf4c9..d2c71113d 100644 --- a/database/mssql/mode/connectedusers.pm +++ b/database/mssql/mode/connectedusers.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mssql/mode/databasessize.pm b/database/mssql/mode/databasessize.pm index 8760c3503..6d7bc119b 100644 --- a/database/mssql/mode/databasessize.pm +++ b/database/mssql/mode/databasessize.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mssql/mode/deadlocks.pm b/database/mssql/mode/deadlocks.pm index f9b131d84..52e262072 100644 --- a/database/mssql/mode/deadlocks.pm +++ b/database/mssql/mode/deadlocks.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mssql/mode/failedjobs.pm b/database/mssql/mode/failedjobs.pm index 02852ad13..3631f32aa 100644 --- a/database/mssql/mode/failedjobs.pm +++ b/database/mssql/mode/failedjobs.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mssql/mode/lockswaits.pm b/database/mssql/mode/lockswaits.pm index dff75bb3c..c9d8a0329 100644 --- a/database/mssql/mode/lockswaits.pm +++ b/database/mssql/mode/lockswaits.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mssql/mode/transactions.pm b/database/mssql/mode/transactions.pm index b36ab621e..d998accbf 100644 --- a/database/mssql/mode/transactions.pm +++ b/database/mssql/mode/transactions.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mssql/plugin.pm b/database/mssql/plugin.pm index a114cffd0..8ec0aeda2 100644 --- a/database/mssql/plugin.pm +++ b/database/mssql/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mysql/mode/databasessize.pm b/database/mysql/mode/databasessize.pm index c872fd38a..e3659c360 100644 --- a/database/mysql/mode/databasessize.pm +++ b/database/mysql/mode/databasessize.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mysql/mode/innodbbufferpoolhitrate.pm b/database/mysql/mode/innodbbufferpoolhitrate.pm index c2035fb0e..7c7dfe9bb 100644 --- a/database/mysql/mode/innodbbufferpoolhitrate.pm +++ b/database/mysql/mode/innodbbufferpoolhitrate.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mysql/mode/longqueries.pm b/database/mysql/mode/longqueries.pm index 6d5904239..43982fe60 100644 --- a/database/mysql/mode/longqueries.pm +++ b/database/mysql/mode/longqueries.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mysql/mode/myisamkeycachehitrate.pm b/database/mysql/mode/myisamkeycachehitrate.pm index abf01e569..8017fc62d 100644 --- a/database/mysql/mode/myisamkeycachehitrate.pm +++ b/database/mysql/mode/myisamkeycachehitrate.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mysql/mode/openfiles.pm b/database/mysql/mode/openfiles.pm index 9c95319ea..817f0b036 100644 --- a/database/mysql/mode/openfiles.pm +++ b/database/mysql/mode/openfiles.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mysql/mode/opentables.pm b/database/mysql/mode/opentables.pm index 09e74f1cc..7c19b4b60 100644 --- a/database/mysql/mode/opentables.pm +++ b/database/mysql/mode/opentables.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mysql/mode/qcachehitrate.pm b/database/mysql/mode/qcachehitrate.pm index 701d2778e..b795024a1 100644 --- a/database/mysql/mode/qcachehitrate.pm +++ b/database/mysql/mode/qcachehitrate.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mysql/mode/queries.pm b/database/mysql/mode/queries.pm index f87172734..4496c2406 100644 --- a/database/mysql/mode/queries.pm +++ b/database/mysql/mode/queries.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mysql/mode/replicationmastermaster.pm b/database/mysql/mode/replicationmastermaster.pm index 60a5c9f74..5a2a89d8b 100644 --- a/database/mysql/mode/replicationmastermaster.pm +++ b/database/mysql/mode/replicationmastermaster.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mysql/mode/replicationmasterslave.pm b/database/mysql/mode/replicationmasterslave.pm index c2676d0b2..3b24dc17b 100644 --- a/database/mysql/mode/replicationmasterslave.pm +++ b/database/mysql/mode/replicationmasterslave.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mysql/mode/slowqueries.pm b/database/mysql/mode/slowqueries.pm index fcbca032a..52d6b1197 100644 --- a/database/mysql/mode/slowqueries.pm +++ b/database/mysql/mode/slowqueries.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mysql/mode/tablescount.pm b/database/mysql/mode/tablescount.pm index 54d857205..3313ced06 100644 --- a/database/mysql/mode/tablescount.pm +++ b/database/mysql/mode/tablescount.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mysql/mode/tablessize.pm b/database/mysql/mode/tablessize.pm index 297b113b1..eb1b49bb5 100644 --- a/database/mysql/mode/tablessize.pm +++ b/database/mysql/mode/tablessize.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mysql/mode/threadsconnected.pm b/database/mysql/mode/threadsconnected.pm index 6111424fe..a11c8656a 100644 --- a/database/mysql/mode/threadsconnected.pm +++ b/database/mysql/mode/threadsconnected.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mysql/mode/uptime.pm b/database/mysql/mode/uptime.pm index f27c1e4a7..bfcb61c50 100644 --- a/database/mysql/mode/uptime.pm +++ b/database/mysql/mode/uptime.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mysql/mysqlcmd.pm b/database/mysql/mysqlcmd.pm index 972589fb1..882c1455a 100644 --- a/database/mysql/mysqlcmd.pm +++ b/database/mysql/mysqlcmd.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/mysql/plugin.pm b/database/mysql/plugin.pm index bd1055248..b930cbf72 100644 --- a/database/mysql/plugin.pm +++ b/database/mysql/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/oracle/mode/asmdiskgroupusage.pm b/database/oracle/mode/asmdiskgroupusage.pm index b41558af2..bb8843505 100644 --- a/database/oracle/mode/asmdiskgroupusage.pm +++ b/database/oracle/mode/asmdiskgroupusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/oracle/mode/connectedusers.pm b/database/oracle/mode/connectedusers.pm index f2c90dd95..68454984d 100644 --- a/database/oracle/mode/connectedusers.pm +++ b/database/oracle/mode/connectedusers.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/oracle/mode/corruptedblocks.pm b/database/oracle/mode/corruptedblocks.pm index 15c54c775..db5cf3a24 100644 --- a/database/oracle/mode/corruptedblocks.pm +++ b/database/oracle/mode/corruptedblocks.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/oracle/mode/datacachehitratio.pm b/database/oracle/mode/datacachehitratio.pm index 88efd04e9..dd831ec14 100644 --- a/database/oracle/mode/datacachehitratio.pm +++ b/database/oracle/mode/datacachehitratio.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/oracle/mode/datafilesstatus.pm b/database/oracle/mode/datafilesstatus.pm index 219d6d9d2..cb953e9d8 100644 --- a/database/oracle/mode/datafilesstatus.pm +++ b/database/oracle/mode/datafilesstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/oracle/mode/eventwaitsusage.pm b/database/oracle/mode/eventwaitsusage.pm index 6f312e169..8a02d5b15 100644 --- a/database/oracle/mode/eventwaitsusage.pm +++ b/database/oracle/mode/eventwaitsusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/oracle/mode/invalidobject.pm b/database/oracle/mode/invalidobject.pm index 92b198274..d9e69dfc0 100644 --- a/database/oracle/mode/invalidobject.pm +++ b/database/oracle/mode/invalidobject.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/oracle/mode/longqueries.pm b/database/oracle/mode/longqueries.pm index 2349e2863..bb153ae64 100644 --- a/database/oracle/mode/longqueries.pm +++ b/database/oracle/mode/longqueries.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/oracle/mode/processusage.pm b/database/oracle/mode/processusage.pm index 93fe9eab3..7e0fd354c 100644 --- a/database/oracle/mode/processusage.pm +++ b/database/oracle/mode/processusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/oracle/mode/rmanbackupage.pm b/database/oracle/mode/rmanbackupage.pm index df6e53076..c12e0a2d7 100644 --- a/database/oracle/mode/rmanbackupage.pm +++ b/database/oracle/mode/rmanbackupage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/oracle/mode/rmanbackupproblems.pm b/database/oracle/mode/rmanbackupproblems.pm index 03932586f..1a307fdac 100644 --- a/database/oracle/mode/rmanbackupproblems.pm +++ b/database/oracle/mode/rmanbackupproblems.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/oracle/mode/rmanonlinebackupage.pm b/database/oracle/mode/rmanonlinebackupage.pm index df1dcfd45..8ded2d510 100644 --- a/database/oracle/mode/rmanonlinebackupage.pm +++ b/database/oracle/mode/rmanonlinebackupage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/oracle/mode/rollbacksegmentusage.pm b/database/oracle/mode/rollbacksegmentusage.pm index 17163a2a0..7609b267c 100644 --- a/database/oracle/mode/rollbacksegmentusage.pm +++ b/database/oracle/mode/rollbacksegmentusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/oracle/mode/sessionusage.pm b/database/oracle/mode/sessionusage.pm index bc9d7a1ad..645497ffc 100644 --- a/database/oracle/mode/sessionusage.pm +++ b/database/oracle/mode/sessionusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/oracle/mode/tablespaceusage.pm b/database/oracle/mode/tablespaceusage.pm index 3179ae751..fe541970d 100644 --- a/database/oracle/mode/tablespaceusage.pm +++ b/database/oracle/mode/tablespaceusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/oracle/mode/temptablespace.pm b/database/oracle/mode/temptablespace.pm index 97ce6eac9..6579dcd90 100644 --- a/database/oracle/mode/temptablespace.pm +++ b/database/oracle/mode/temptablespace.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/oracle/mode/tnsping.pm b/database/oracle/mode/tnsping.pm index 8fee6539d..78d22a8ac 100644 --- a/database/oracle/mode/tnsping.pm +++ b/database/oracle/mode/tnsping.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/oracle/mode/undotablespace.pm b/database/oracle/mode/undotablespace.pm index 7695b2317..5abfaa397 100644 --- a/database/oracle/mode/undotablespace.pm +++ b/database/oracle/mode/undotablespace.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/oracle/plugin.pm b/database/oracle/plugin.pm index 8ab60188f..187c3ee12 100644 --- a/database/oracle/plugin.pm +++ b/database/oracle/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/postgres/mode/backends.pm b/database/postgres/mode/backends.pm index 9c07dfc82..0e0603005 100644 --- a/database/postgres/mode/backends.pm +++ b/database/postgres/mode/backends.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/postgres/mode/hitratio.pm b/database/postgres/mode/hitratio.pm index d1c9a75df..c3fd8263f 100644 --- a/database/postgres/mode/hitratio.pm +++ b/database/postgres/mode/hitratio.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/postgres/mode/listdatabases.pm b/database/postgres/mode/listdatabases.pm index 9f287076a..afb69d369 100644 --- a/database/postgres/mode/listdatabases.pm +++ b/database/postgres/mode/listdatabases.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/postgres/mode/locks.pm b/database/postgres/mode/locks.pm index 318e92853..898a06139 100644 --- a/database/postgres/mode/locks.pm +++ b/database/postgres/mode/locks.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/postgres/mode/querytime.pm b/database/postgres/mode/querytime.pm index 43fc17ac2..bfe863b1d 100644 --- a/database/postgres/mode/querytime.pm +++ b/database/postgres/mode/querytime.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/postgres/mode/statistics.pm b/database/postgres/mode/statistics.pm index bb388b9ca..685e8ae5a 100644 --- a/database/postgres/mode/statistics.pm +++ b/database/postgres/mode/statistics.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/postgres/mode/tablespace.pm b/database/postgres/mode/tablespace.pm index a91285db2..a98df7163 100644 --- a/database/postgres/mode/tablespace.pm +++ b/database/postgres/mode/tablespace.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/postgres/mode/timesync.pm b/database/postgres/mode/timesync.pm index 61dfa253e..cde523111 100644 --- a/database/postgres/mode/timesync.pm +++ b/database/postgres/mode/timesync.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/postgres/mode/vacuum.pm b/database/postgres/mode/vacuum.pm index 73725e2a1..1ef5f03cd 100644 --- a/database/postgres/mode/vacuum.pm +++ b/database/postgres/mode/vacuum.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/postgres/plugin.pm b/database/postgres/plugin.pm index d06a7686c..aa28dea17 100644 --- a/database/postgres/plugin.pm +++ b/database/postgres/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/postgres/psqlcmd.pm b/database/postgres/psqlcmd.pm index ac293394d..fc39e6a6b 100644 --- a/database/postgres/psqlcmd.pm +++ b/database/postgres/psqlcmd.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/sap/hana/mode/blockedtransactions.pm b/database/sap/hana/mode/blockedtransactions.pm index 6c639512c..5c25afbb5 100644 --- a/database/sap/hana/mode/blockedtransactions.pm +++ b/database/sap/hana/mode/blockedtransactions.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/sap/hana/mode/connectedusers.pm b/database/sap/hana/mode/connectedusers.pm index b7e310afa..3d2968f7c 100644 --- a/database/sap/hana/mode/connectedusers.pm +++ b/database/sap/hana/mode/connectedusers.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/sap/hana/mode/diskusage.pm b/database/sap/hana/mode/diskusage.pm index c9436687f..2529f9ab1 100644 --- a/database/sap/hana/mode/diskusage.pm +++ b/database/sap/hana/mode/diskusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/sap/hana/mode/hostcpu.pm b/database/sap/hana/mode/hostcpu.pm index 0652b9afb..99adba453 100644 --- a/database/sap/hana/mode/hostcpu.pm +++ b/database/sap/hana/mode/hostcpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/sap/hana/mode/hostmemory.pm b/database/sap/hana/mode/hostmemory.pm index 992b0d64b..770967864 100644 --- a/database/sap/hana/mode/hostmemory.pm +++ b/database/sap/hana/mode/hostmemory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/sap/hana/mode/volumeusage.pm b/database/sap/hana/mode/volumeusage.pm index 55f432a31..128da566c 100644 --- a/database/sap/hana/mode/volumeusage.pm +++ b/database/sap/hana/mode/volumeusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/sap/hana/plugin.pm b/database/sap/hana/plugin.pm index 7fec8ade0..183ea5c63 100644 --- a/database/sap/hana/plugin.pm +++ b/database/sap/hana/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/sybase/mode/blockedprocesses.pm b/database/sybase/mode/blockedprocesses.pm index c83a80e7e..5ea7e53bb 100644 --- a/database/sybase/mode/blockedprocesses.pm +++ b/database/sybase/mode/blockedprocesses.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/sybase/mode/connectedusers.pm b/database/sybase/mode/connectedusers.pm index 5f643b9a1..fc5694d98 100644 --- a/database/sybase/mode/connectedusers.pm +++ b/database/sybase/mode/connectedusers.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/sybase/mode/databasessize.pm b/database/sybase/mode/databasessize.pm index 6811f3162..bf6f411d4 100644 --- a/database/sybase/mode/databasessize.pm +++ b/database/sybase/mode/databasessize.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/database/sybase/plugin.pm b/database/sybase/plugin.pm index 240176f84..301bca2fb 100644 --- a/database/sybase/plugin.pm +++ b/database/sybase/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/docs/en/developer/guide.rst b/docs/en/developer/guide.rst index a38fb50cd..2037e55af 100644 --- a/docs/en/developer/guide.rst +++ b/docs/en/developer/guide.rst @@ -1479,7 +1479,7 @@ Then, edit **plugin.pm** and add the following lines: .. code-block:: perl # - # Copyright 2017 Centreon (http://www.centreon.com/) + # Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for @@ -1569,7 +1569,7 @@ Edit **memorydroppedpackets.pm** and add the following lines: .. code-block:: perl # - # Copyright 2017 Centreon (http://www.centreon.com/) + # Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/docs/en/developer/index.rst b/docs/en/developer/index.rst index 948405a89..220ee8278 100644 --- a/docs/en/developer/index.rst +++ b/docs/en/developer/index.rst @@ -1,10 +1,10 @@ -############### -Developer guide -############### - -.. toctree:: - :maxdepth: 3 - :glob: - - guide - +############### +Developer guide +############### + +.. toctree:: + :maxdepth: 3 + :glob: + + guide + diff --git a/docs/en/index.rst b/docs/en/index.rst index e0906521e..9d996811a 100644 --- a/docs/en/index.rst +++ b/docs/en/index.rst @@ -1,15 +1,15 @@ -Welcome to Centreon Plugins documentation! -========================================== - -Centreon Plugins is a common monitoring library and plugins written in -Perl. It is licensed under the terms of the `Apache License Version 2 -`_ as -published by the Free Software Foundation. - -Contents: - -.. toctree:: - :maxdepth: 2 - - user/index - developer/index +Welcome to Centreon Plugins documentation! +========================================== + +Centreon Plugins is a common monitoring library and plugins written in +Perl. It is licensed under the terms of the `Apache License Version 2 +`_ as +published by the Free Software Foundation. + +Contents: + +.. toctree:: + :maxdepth: 2 + + user/index + developer/index diff --git a/docs/en/user/index.rst b/docs/en/user/index.rst index 1692d6c04..0639b17fb 100644 --- a/docs/en/user/index.rst +++ b/docs/en/user/index.rst @@ -1,10 +1,10 @@ -########## -User guide -########## - -.. toctree:: - :maxdepth: 2 - :glob: - - guide - +########## +User guide +########## + +.. toctree:: + :maxdepth: 2 + :glob: + + guide + diff --git a/docs/fr/developer/guide.rst b/docs/fr/developer/guide.rst index 6a1f4cf67..98c98d6cf 100644 --- a/docs/fr/developer/guide.rst +++ b/docs/fr/developer/guide.rst @@ -1469,7 +1469,7 @@ Ensuite, éditer le fichier **plugin.pm** et ajouter les lignes suivantes : .. code-block:: perl # - # Copyright 2017 Centreon (http://www.centreon.com/) + # Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for @@ -1559,7 +1559,7 @@ Editer le fichier **memorydroppedpackets.pm** et ajouter les lignes suivantes : .. code-block:: perl # - # Copyright 2017 Centreon (http://www.centreon.com/) + # Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/docs/fr/developer/index.rst b/docs/fr/developer/index.rst index ae1b45b0f..cd06a2fbe 100644 --- a/docs/fr/developer/index.rst +++ b/docs/fr/developer/index.rst @@ -1,10 +1,10 @@ -#################### -Guide de développeur -#################### - -.. toctree:: - :maxdepth: 3 - :glob: - - guide - +#################### +Guide de développeur +#################### + +.. toctree:: + :maxdepth: 3 + :glob: + + guide + diff --git a/docs/fr/index.rst b/docs/fr/index.rst index c8b9c4c74..47b59b7ca 100644 --- a/docs/fr/index.rst +++ b/docs/fr/index.rst @@ -1,14 +1,14 @@ -Bienvenue dans la documentation Centreon Plugins! -================================================= - -Centreon Plugins est un ensemble de bibliothèques et plugins de supervision -écrits en Perl. Cet ensemble est licencié sous les termes de `Apache License Version 2 ` tel que -publié par la "Free Software Fondation". - -Sommaire : - -.. toctree:: - :maxdepth: 2 - - user/index - developer/index +Bienvenue dans la documentation Centreon Plugins! +================================================= + +Centreon Plugins est un ensemble de bibliothèques et plugins de supervision +écrits en Perl. Cet ensemble est licencié sous les termes de `Apache License Version 2 ` tel que +publié par la "Free Software Fondation". + +Sommaire : + +.. toctree:: + :maxdepth: 2 + + user/index + developer/index diff --git a/docs/fr/user/index.rst b/docs/fr/user/index.rst index b80c23fbd..ce843e978 100644 --- a/docs/fr/user/index.rst +++ b/docs/fr/user/index.rst @@ -1,10 +1,10 @@ -################# -Guide utilisateur -################# - -.. toctree:: - :maxdepth: 2 - :glob: - - guide - +################# +Guide utilisateur +################# + +.. toctree:: + :maxdepth: 2 + :glob: + + guide + diff --git a/example/custommode/simple.pm b/example/custommode/simple.pm index e2c0413ce..7045d8ae1 100644 --- a/example/custommode/simple.pm +++ b/example/custommode/simple.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/example/mode/getvalue.pm b/example/mode/getvalue.pm index e69bb9235..b951aefaf 100644 --- a/example/mode/getvalue.pm +++ b/example/mode/getvalue.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/example/mode/launchcmd.pm b/example/mode/launchcmd.pm index 1b20f8968..677a8b222 100644 --- a/example/mode/launchcmd.pm +++ b/example/mode/launchcmd.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/example/mode/testcustom.pm b/example/mode/testcustom.pm index 41a816c34..e51142210 100644 --- a/example/mode/testcustom.pm +++ b/example/mode/testcustom.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/example/plugin_command.pm b/example/plugin_command.pm index b81fab5f7..15d51519e 100644 --- a/example/plugin_command.pm +++ b/example/plugin_command.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/example/plugin_custom.pm b/example/plugin_custom.pm index 1f18d0d73..b1244807d 100644 --- a/example/plugin_custom.pm +++ b/example/plugin_custom.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/example/plugin_snmp.pm b/example/plugin_snmp.pm index fbddd100e..5e980a00c 100644 --- a/example/plugin_snmp.pm +++ b/example/plugin_snmp.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ats/apc/snmp/mode/components/entity.pm b/hardware/ats/apc/snmp/mode/components/entity.pm index 425ce9efc..731d14451 100644 --- a/hardware/ats/apc/snmp/mode/components/entity.pm +++ b/hardware/ats/apc/snmp/mode/components/entity.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ats/apc/snmp/mode/devicestatus.pm b/hardware/ats/apc/snmp/mode/devicestatus.pm index 60265e3bf..f0a067712 100644 --- a/hardware/ats/apc/snmp/mode/devicestatus.pm +++ b/hardware/ats/apc/snmp/mode/devicestatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ats/apc/snmp/mode/inputlines.pm b/hardware/ats/apc/snmp/mode/inputlines.pm index 2dad005e7..2869e6e37 100644 --- a/hardware/ats/apc/snmp/mode/inputlines.pm +++ b/hardware/ats/apc/snmp/mode/inputlines.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ats/apc/snmp/mode/outputlines.pm b/hardware/ats/apc/snmp/mode/outputlines.pm index 09c7902e2..c7d52ae8c 100644 --- a/hardware/ats/apc/snmp/mode/outputlines.pm +++ b/hardware/ats/apc/snmp/mode/outputlines.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ats/apc/snmp/plugin.pm b/hardware/ats/apc/snmp/plugin.pm index 9965bb9fa..335989c07 100644 --- a/hardware/ats/apc/snmp/plugin.pm +++ b/hardware/ats/apc/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/devices/gorgy/ntpserver/snmp/mode/globalstatus.pm b/hardware/devices/gorgy/ntpserver/snmp/mode/globalstatus.pm index b2935edf1..a67de8a22 100644 --- a/hardware/devices/gorgy/ntpserver/snmp/mode/globalstatus.pm +++ b/hardware/devices/gorgy/ntpserver/snmp/mode/globalstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/devices/gorgy/ntpserver/snmp/plugin.pm b/hardware/devices/gorgy/ntpserver/snmp/plugin.pm index 62b56df4a..837a1173d 100644 --- a/hardware/devices/gorgy/ntpserver/snmp/plugin.pm +++ b/hardware/devices/gorgy/ntpserver/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/devices/safenet/hsm/protecttoolkit/mode/components/hwstatus.pm b/hardware/devices/safenet/hsm/protecttoolkit/mode/components/hwstatus.pm index 38fe76950..87b2b5b9e 100644 --- a/hardware/devices/safenet/hsm/protecttoolkit/mode/components/hwstatus.pm +++ b/hardware/devices/safenet/hsm/protecttoolkit/mode/components/hwstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/devices/safenet/hsm/protecttoolkit/mode/components/memory.pm b/hardware/devices/safenet/hsm/protecttoolkit/mode/components/memory.pm index f8ccdee5d..28e2c604f 100644 --- a/hardware/devices/safenet/hsm/protecttoolkit/mode/components/memory.pm +++ b/hardware/devices/safenet/hsm/protecttoolkit/mode/components/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/devices/safenet/hsm/protecttoolkit/mode/components/temperature.pm b/hardware/devices/safenet/hsm/protecttoolkit/mode/components/temperature.pm index 25e216dd1..ed80dfec1 100644 --- a/hardware/devices/safenet/hsm/protecttoolkit/mode/components/temperature.pm +++ b/hardware/devices/safenet/hsm/protecttoolkit/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/devices/safenet/hsm/protecttoolkit/mode/hardware.pm b/hardware/devices/safenet/hsm/protecttoolkit/mode/hardware.pm index 88f1ebcb5..ff1c7dce7 100644 --- a/hardware/devices/safenet/hsm/protecttoolkit/mode/hardware.pm +++ b/hardware/devices/safenet/hsm/protecttoolkit/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/devices/safenet/hsm/protecttoolkit/plugin.pm b/hardware/devices/safenet/hsm/protecttoolkit/plugin.pm index d37b5203e..0da4d05d5 100644 --- a/hardware/devices/safenet/hsm/protecttoolkit/plugin.pm +++ b/hardware/devices/safenet/hsm/protecttoolkit/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/devices/safenet/keysecure/snmp/plugin.pm b/hardware/devices/safenet/keysecure/snmp/plugin.pm index c732bb01b..f53952a67 100644 --- a/hardware/devices/safenet/keysecure/snmp/plugin.pm +++ b/hardware/devices/safenet/keysecure/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/devices/video/appeartv/snmp/mode/alarms.pm b/hardware/devices/video/appeartv/snmp/mode/alarms.pm index cadb15ed3..1c439541b 100644 --- a/hardware/devices/video/appeartv/snmp/mode/alarms.pm +++ b/hardware/devices/video/appeartv/snmp/mode/alarms.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/devices/video/appeartv/snmp/plugin.pm b/hardware/devices/video/appeartv/snmp/plugin.pm index 8ceffe6ba..4563f9f20 100644 --- a/hardware/devices/video/appeartv/snmp/plugin.pm +++ b/hardware/devices/video/appeartv/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/kvm/avocent/acs/6000/snmp/mode/components/psu.pm b/hardware/kvm/avocent/acs/6000/snmp/mode/components/psu.pm index 9eda2fdf1..e25fe5f5c 100644 --- a/hardware/kvm/avocent/acs/6000/snmp/mode/components/psu.pm +++ b/hardware/kvm/avocent/acs/6000/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/kvm/avocent/acs/6000/snmp/mode/hardware.pm b/hardware/kvm/avocent/acs/6000/snmp/mode/hardware.pm index d3ec43144..282756a5c 100644 --- a/hardware/kvm/avocent/acs/6000/snmp/mode/hardware.pm +++ b/hardware/kvm/avocent/acs/6000/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/kvm/avocent/acs/6000/snmp/plugin.pm b/hardware/kvm/avocent/acs/6000/snmp/plugin.pm index f74152c40..aa58696fe 100644 --- a/hardware/kvm/avocent/acs/6000/snmp/plugin.pm +++ b/hardware/kvm/avocent/acs/6000/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/pdu/apc/snmp/mode/components/humidity.pm b/hardware/pdu/apc/snmp/mode/components/humidity.pm index f6cae00f9..24d4c6c24 100644 --- a/hardware/pdu/apc/snmp/mode/components/humidity.pm +++ b/hardware/pdu/apc/snmp/mode/components/humidity.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/pdu/apc/snmp/mode/components/psu.pm b/hardware/pdu/apc/snmp/mode/components/psu.pm index 799228fd6..e0b909697 100644 --- a/hardware/pdu/apc/snmp/mode/components/psu.pm +++ b/hardware/pdu/apc/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/pdu/apc/snmp/mode/components/temperature.pm b/hardware/pdu/apc/snmp/mode/components/temperature.pm index 6bbc04877..bb4dd647b 100644 --- a/hardware/pdu/apc/snmp/mode/components/temperature.pm +++ b/hardware/pdu/apc/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/pdu/apc/snmp/mode/hardware.pm b/hardware/pdu/apc/snmp/mode/hardware.pm index ac83ab3a9..0464d0e7d 100644 --- a/hardware/pdu/apc/snmp/mode/hardware.pm +++ b/hardware/pdu/apc/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/pdu/apc/snmp/mode/load.pm b/hardware/pdu/apc/snmp/mode/load.pm index e5cc499f9..d103b7ca4 100644 --- a/hardware/pdu/apc/snmp/mode/load.pm +++ b/hardware/pdu/apc/snmp/mode/load.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/pdu/apc/snmp/mode/outlet.pm b/hardware/pdu/apc/snmp/mode/outlet.pm index 7fb1ae8a1..580b94d5a 100644 --- a/hardware/pdu/apc/snmp/mode/outlet.pm +++ b/hardware/pdu/apc/snmp/mode/outlet.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/pdu/apc/snmp/plugin.pm b/hardware/pdu/apc/snmp/plugin.pm index 8d88d58b8..3622f5732 100644 --- a/hardware/pdu/apc/snmp/plugin.pm +++ b/hardware/pdu/apc/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/pdu/clever/snmp/mode/psusage.pm b/hardware/pdu/clever/snmp/mode/psusage.pm index ca5cbf431..edeedca9d 100644 --- a/hardware/pdu/clever/snmp/mode/psusage.pm +++ b/hardware/pdu/clever/snmp/mode/psusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/pdu/clever/snmp/plugin.pm b/hardware/pdu/clever/snmp/plugin.pm index 38515bfd8..bd39fb7a2 100644 --- a/hardware/pdu/clever/snmp/plugin.pm +++ b/hardware/pdu/clever/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/pdu/eaton/mode/group.pm b/hardware/pdu/eaton/mode/group.pm index ba0e939c1..2362d19a7 100644 --- a/hardware/pdu/eaton/mode/group.pm +++ b/hardware/pdu/eaton/mode/group.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/pdu/eaton/mode/outlet.pm b/hardware/pdu/eaton/mode/outlet.pm index 80e6d3781..7c7f68ed8 100644 --- a/hardware/pdu/eaton/mode/outlet.pm +++ b/hardware/pdu/eaton/mode/outlet.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/pdu/eaton/plugin.pm b/hardware/pdu/eaton/plugin.pm index 3f3cb05a0..2fe1d7239 100644 --- a/hardware/pdu/eaton/plugin.pm +++ b/hardware/pdu/eaton/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/pdu/emerson/snmp/mode/globalstatus.pm b/hardware/pdu/emerson/snmp/mode/globalstatus.pm index 1110efd6b..328c46581 100644 --- a/hardware/pdu/emerson/snmp/mode/globalstatus.pm +++ b/hardware/pdu/emerson/snmp/mode/globalstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/pdu/emerson/snmp/mode/psusage.pm b/hardware/pdu/emerson/snmp/mode/psusage.pm index 475cfd0f4..e99877548 100644 --- a/hardware/pdu/emerson/snmp/mode/psusage.pm +++ b/hardware/pdu/emerson/snmp/mode/psusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/pdu/emerson/snmp/mode/rbusage.pm b/hardware/pdu/emerson/snmp/mode/rbusage.pm index 82752a088..950ce0502 100644 --- a/hardware/pdu/emerson/snmp/mode/rbusage.pm +++ b/hardware/pdu/emerson/snmp/mode/rbusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/pdu/emerson/snmp/plugin.pm b/hardware/pdu/emerson/snmp/plugin.pm index 18ed6d48e..cb32a064e 100644 --- a/hardware/pdu/emerson/snmp/plugin.pm +++ b/hardware/pdu/emerson/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/pdu/raritan/snmp/mode/components/resources.pm b/hardware/pdu/raritan/snmp/mode/components/resources.pm index 7c612c6c7..dd697dd5a 100644 --- a/hardware/pdu/raritan/snmp/mode/components/resources.pm +++ b/hardware/pdu/raritan/snmp/mode/components/resources.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/pdu/raritan/snmp/mode/components/sensor.pm b/hardware/pdu/raritan/snmp/mode/components/sensor.pm index 346e7a904..1b14068c6 100644 --- a/hardware/pdu/raritan/snmp/mode/components/sensor.pm +++ b/hardware/pdu/raritan/snmp/mode/components/sensor.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/pdu/raritan/snmp/mode/inletsensors.pm b/hardware/pdu/raritan/snmp/mode/inletsensors.pm index d8a2a36d6..b0705b5a2 100644 --- a/hardware/pdu/raritan/snmp/mode/inletsensors.pm +++ b/hardware/pdu/raritan/snmp/mode/inletsensors.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/pdu/raritan/snmp/mode/ocprotsensors.pm b/hardware/pdu/raritan/snmp/mode/ocprotsensors.pm index 54c8c8db0..e995fc886 100644 --- a/hardware/pdu/raritan/snmp/mode/ocprotsensors.pm +++ b/hardware/pdu/raritan/snmp/mode/ocprotsensors.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/pdu/raritan/snmp/mode/outletsensors.pm b/hardware/pdu/raritan/snmp/mode/outletsensors.pm index 40476b743..bf6bce4cd 100644 --- a/hardware/pdu/raritan/snmp/mode/outletsensors.pm +++ b/hardware/pdu/raritan/snmp/mode/outletsensors.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/pdu/raritan/snmp/plugin.pm b/hardware/pdu/raritan/snmp/plugin.pm index 5095a541d..598ca2ec0 100644 --- a/hardware/pdu/raritan/snmp/plugin.pm +++ b/hardware/pdu/raritan/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/printers/standard/rfc3805/mode/coverstatus.pm b/hardware/printers/standard/rfc3805/mode/coverstatus.pm index de1cac673..f4ad0dd67 100644 --- a/hardware/printers/standard/rfc3805/mode/coverstatus.pm +++ b/hardware/printers/standard/rfc3805/mode/coverstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/printers/standard/rfc3805/mode/markerimpression.pm b/hardware/printers/standard/rfc3805/mode/markerimpression.pm index 666b5bc11..8048e4b6e 100644 --- a/hardware/printers/standard/rfc3805/mode/markerimpression.pm +++ b/hardware/printers/standard/rfc3805/mode/markerimpression.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/printers/standard/rfc3805/mode/markersupply.pm b/hardware/printers/standard/rfc3805/mode/markersupply.pm index 0aa8214a3..4c1facdae 100644 --- a/hardware/printers/standard/rfc3805/mode/markersupply.pm +++ b/hardware/printers/standard/rfc3805/mode/markersupply.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/printers/standard/rfc3805/mode/papertray.pm b/hardware/printers/standard/rfc3805/mode/papertray.pm index 596e421ce..5f5f0ae73 100644 --- a/hardware/printers/standard/rfc3805/mode/papertray.pm +++ b/hardware/printers/standard/rfc3805/mode/papertray.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/printers/standard/rfc3805/plugin.pm b/hardware/printers/standard/rfc3805/plugin.pm index d53396c34..10f122dc4 100644 --- a/hardware/printers/standard/rfc3805/plugin.pm +++ b/hardware/printers/standard/rfc3805/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/akcp/snmp/mode/components/humidity.pm b/hardware/sensors/akcp/snmp/mode/components/humidity.pm index 80b368429..2b12ca1ac 100644 --- a/hardware/sensors/akcp/snmp/mode/components/humidity.pm +++ b/hardware/sensors/akcp/snmp/mode/components/humidity.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/akcp/snmp/mode/components/resources.pm b/hardware/sensors/akcp/snmp/mode/components/resources.pm index dd718bda4..6e82c0af4 100644 --- a/hardware/sensors/akcp/snmp/mode/components/resources.pm +++ b/hardware/sensors/akcp/snmp/mode/components/resources.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/akcp/snmp/mode/components/serial.pm b/hardware/sensors/akcp/snmp/mode/components/serial.pm index d32b639f0..8d596a3ca 100644 --- a/hardware/sensors/akcp/snmp/mode/components/serial.pm +++ b/hardware/sensors/akcp/snmp/mode/components/serial.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/akcp/snmp/mode/components/switch.pm b/hardware/sensors/akcp/snmp/mode/components/switch.pm index 25b7511f1..f9b0e432b 100644 --- a/hardware/sensors/akcp/snmp/mode/components/switch.pm +++ b/hardware/sensors/akcp/snmp/mode/components/switch.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/akcp/snmp/mode/components/temperature.pm b/hardware/sensors/akcp/snmp/mode/components/temperature.pm index 7cd0985ad..baa53948e 100644 --- a/hardware/sensors/akcp/snmp/mode/components/temperature.pm +++ b/hardware/sensors/akcp/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/akcp/snmp/mode/components/water.pm b/hardware/sensors/akcp/snmp/mode/components/water.pm index b0785ce5c..f8d28a921 100644 --- a/hardware/sensors/akcp/snmp/mode/components/water.pm +++ b/hardware/sensors/akcp/snmp/mode/components/water.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/akcp/snmp/mode/sensors.pm b/hardware/sensors/akcp/snmp/mode/sensors.pm index e92391a70..5e4e62339 100644 --- a/hardware/sensors/akcp/snmp/mode/sensors.pm +++ b/hardware/sensors/akcp/snmp/mode/sensors.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/akcp/snmp/plugin.pm b/hardware/sensors/akcp/snmp/plugin.pm index 57cd97322..c5f70ea8a 100644 --- a/hardware/sensors/akcp/snmp/plugin.pm +++ b/hardware/sensors/akcp/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/comet/p8000/snmp/mode/sensors.pm b/hardware/sensors/comet/p8000/snmp/mode/sensors.pm index 4879450f1..0d133a374 100644 --- a/hardware/sensors/comet/p8000/snmp/mode/sensors.pm +++ b/hardware/sensors/comet/p8000/snmp/mode/sensors.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/comet/p8000/snmp/plugin.pm b/hardware/sensors/comet/p8000/snmp/plugin.pm index a08e2f11c..ddf528f67 100644 --- a/hardware/sensors/comet/p8000/snmp/plugin.pm +++ b/hardware/sensors/comet/p8000/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/hwgste/snmp/mode/components/humidity.pm b/hardware/sensors/hwgste/snmp/mode/components/humidity.pm index a1cc32c30..2702bc27d 100644 --- a/hardware/sensors/hwgste/snmp/mode/components/humidity.pm +++ b/hardware/sensors/hwgste/snmp/mode/components/humidity.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/hwgste/snmp/mode/components/resources.pm b/hardware/sensors/hwgste/snmp/mode/components/resources.pm index 247888c6d..ca6ca5553 100644 --- a/hardware/sensors/hwgste/snmp/mode/components/resources.pm +++ b/hardware/sensors/hwgste/snmp/mode/components/resources.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/hwgste/snmp/mode/components/temperature.pm b/hardware/sensors/hwgste/snmp/mode/components/temperature.pm index c9db52ba6..1792da12a 100644 --- a/hardware/sensors/hwgste/snmp/mode/components/temperature.pm +++ b/hardware/sensors/hwgste/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/hwgste/snmp/mode/sensors.pm b/hardware/sensors/hwgste/snmp/mode/sensors.pm index 0e4441198..2f3dd1b18 100644 --- a/hardware/sensors/hwgste/snmp/mode/sensors.pm +++ b/hardware/sensors/hwgste/snmp/mode/sensors.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/hwgste/snmp/plugin.pm b/hardware/sensors/hwgste/snmp/plugin.pm index a51e73c84..c8de162cd 100644 --- a/hardware/sensors/hwgste/snmp/plugin.pm +++ b/hardware/sensors/hwgste/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/jacarta/snmp/mode/components/humidity.pm b/hardware/sensors/jacarta/snmp/mode/components/humidity.pm index 16bc34da5..b32cdcae5 100644 --- a/hardware/sensors/jacarta/snmp/mode/components/humidity.pm +++ b/hardware/sensors/jacarta/snmp/mode/components/humidity.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/jacarta/snmp/mode/components/input.pm b/hardware/sensors/jacarta/snmp/mode/components/input.pm index c263055ca..941f3c4f3 100644 --- a/hardware/sensors/jacarta/snmp/mode/components/input.pm +++ b/hardware/sensors/jacarta/snmp/mode/components/input.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/jacarta/snmp/mode/components/resources.pm b/hardware/sensors/jacarta/snmp/mode/components/resources.pm index b266add7c..3f04b9b87 100644 --- a/hardware/sensors/jacarta/snmp/mode/components/resources.pm +++ b/hardware/sensors/jacarta/snmp/mode/components/resources.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/jacarta/snmp/mode/components/temperature.pm b/hardware/sensors/jacarta/snmp/mode/components/temperature.pm index cb7aa1630..7c4466ce7 100644 --- a/hardware/sensors/jacarta/snmp/mode/components/temperature.pm +++ b/hardware/sensors/jacarta/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/jacarta/snmp/mode/sensors.pm b/hardware/sensors/jacarta/snmp/mode/sensors.pm index 4148faa7c..7d7a8e813 100644 --- a/hardware/sensors/jacarta/snmp/mode/sensors.pm +++ b/hardware/sensors/jacarta/snmp/mode/sensors.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/jacarta/snmp/plugin.pm b/hardware/sensors/jacarta/snmp/plugin.pm index b84f78bd2..c6c7ba130 100644 --- a/hardware/sensors/jacarta/snmp/plugin.pm +++ b/hardware/sensors/jacarta/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/netbotz/snmp/mode/components/airflow.pm b/hardware/sensors/netbotz/snmp/mode/components/airflow.pm index 3027e46e9..aa48db6bc 100644 --- a/hardware/sensors/netbotz/snmp/mode/components/airflow.pm +++ b/hardware/sensors/netbotz/snmp/mode/components/airflow.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/netbotz/snmp/mode/components/camera.pm b/hardware/sensors/netbotz/snmp/mode/components/camera.pm index 7fafe3314..0ff2af610 100644 --- a/hardware/sensors/netbotz/snmp/mode/components/camera.pm +++ b/hardware/sensors/netbotz/snmp/mode/components/camera.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/netbotz/snmp/mode/components/dewpoint.pm b/hardware/sensors/netbotz/snmp/mode/components/dewpoint.pm index 0d0d30e9b..d4cd59967 100644 --- a/hardware/sensors/netbotz/snmp/mode/components/dewpoint.pm +++ b/hardware/sensors/netbotz/snmp/mode/components/dewpoint.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/netbotz/snmp/mode/components/doorswitch.pm b/hardware/sensors/netbotz/snmp/mode/components/doorswitch.pm index db63ddcd9..2f18964aa 100644 --- a/hardware/sensors/netbotz/snmp/mode/components/doorswitch.pm +++ b/hardware/sensors/netbotz/snmp/mode/components/doorswitch.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/netbotz/snmp/mode/components/humidity.pm b/hardware/sensors/netbotz/snmp/mode/components/humidity.pm index 67e42d30c..3f876c618 100644 --- a/hardware/sensors/netbotz/snmp/mode/components/humidity.pm +++ b/hardware/sensors/netbotz/snmp/mode/components/humidity.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/netbotz/snmp/mode/components/otherstate.pm b/hardware/sensors/netbotz/snmp/mode/components/otherstate.pm index 810b2b97f..57479da8e 100644 --- a/hardware/sensors/netbotz/snmp/mode/components/otherstate.pm +++ b/hardware/sensors/netbotz/snmp/mode/components/otherstate.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/netbotz/snmp/mode/components/resources.pm b/hardware/sensors/netbotz/snmp/mode/components/resources.pm index e366bbd2f..d0a852e38 100644 --- a/hardware/sensors/netbotz/snmp/mode/components/resources.pm +++ b/hardware/sensors/netbotz/snmp/mode/components/resources.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/netbotz/snmp/mode/components/temperature.pm b/hardware/sensors/netbotz/snmp/mode/components/temperature.pm index e40b47abd..77501f72f 100644 --- a/hardware/sensors/netbotz/snmp/mode/components/temperature.pm +++ b/hardware/sensors/netbotz/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/netbotz/snmp/mode/sensors.pm b/hardware/sensors/netbotz/snmp/mode/sensors.pm index 2caeec025..ce90ae97c 100644 --- a/hardware/sensors/netbotz/snmp/mode/sensors.pm +++ b/hardware/sensors/netbotz/snmp/mode/sensors.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/netbotz/snmp/plugin.pm b/hardware/sensors/netbotz/snmp/plugin.pm index 48f205ebb..0cde41aec 100644 --- a/hardware/sensors/netbotz/snmp/plugin.pm +++ b/hardware/sensors/netbotz/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/sensorip/snmp/mode/components/humidity.pm b/hardware/sensors/sensorip/snmp/mode/components/humidity.pm index 82eec5f02..f284b371f 100644 --- a/hardware/sensors/sensorip/snmp/mode/components/humidity.pm +++ b/hardware/sensors/sensorip/snmp/mode/components/humidity.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/sensorip/snmp/mode/components/sp.pm b/hardware/sensors/sensorip/snmp/mode/components/sp.pm index 764c49ba3..60874daf7 100644 --- a/hardware/sensors/sensorip/snmp/mode/components/sp.pm +++ b/hardware/sensors/sensorip/snmp/mode/components/sp.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/sensorip/snmp/mode/components/switch.pm b/hardware/sensors/sensorip/snmp/mode/components/switch.pm index 75e66de84..eb549596d 100644 --- a/hardware/sensors/sensorip/snmp/mode/components/switch.pm +++ b/hardware/sensors/sensorip/snmp/mode/components/switch.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/sensorip/snmp/mode/components/temperature.pm b/hardware/sensors/sensorip/snmp/mode/components/temperature.pm index 39b7779fc..b235131a3 100644 --- a/hardware/sensors/sensorip/snmp/mode/components/temperature.pm +++ b/hardware/sensors/sensorip/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/sensorip/snmp/mode/sensors.pm b/hardware/sensors/sensorip/snmp/mode/sensors.pm index 4dc4b59fc..6d4eab68c 100644 --- a/hardware/sensors/sensorip/snmp/mode/sensors.pm +++ b/hardware/sensors/sensorip/snmp/mode/sensors.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/sensorip/snmp/plugin.pm b/hardware/sensors/sensorip/snmp/plugin.pm index fedda0f5f..8ef43f2ba 100644 --- a/hardware/sensors/sensorip/snmp/plugin.pm +++ b/hardware/sensors/sensorip/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/sensormetrix/em01/web/mode/contact.pm b/hardware/sensors/sensormetrix/em01/web/mode/contact.pm index 0343d0423..74c26ad88 100644 --- a/hardware/sensors/sensormetrix/em01/web/mode/contact.pm +++ b/hardware/sensors/sensormetrix/em01/web/mode/contact.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/sensormetrix/em01/web/mode/flood.pm b/hardware/sensors/sensormetrix/em01/web/mode/flood.pm index 739183d1e..7c18c8a2f 100644 --- a/hardware/sensors/sensormetrix/em01/web/mode/flood.pm +++ b/hardware/sensors/sensormetrix/em01/web/mode/flood.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/sensormetrix/em01/web/mode/humidity.pm b/hardware/sensors/sensormetrix/em01/web/mode/humidity.pm index 670265242..5d21306b5 100644 --- a/hardware/sensors/sensormetrix/em01/web/mode/humidity.pm +++ b/hardware/sensors/sensormetrix/em01/web/mode/humidity.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/sensormetrix/em01/web/mode/illumination.pm b/hardware/sensors/sensormetrix/em01/web/mode/illumination.pm index 23555f174..2628c4282 100644 --- a/hardware/sensors/sensormetrix/em01/web/mode/illumination.pm +++ b/hardware/sensors/sensormetrix/em01/web/mode/illumination.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/sensormetrix/em01/web/mode/temperature.pm b/hardware/sensors/sensormetrix/em01/web/mode/temperature.pm index f0c7b827d..b009b7119 100644 --- a/hardware/sensors/sensormetrix/em01/web/mode/temperature.pm +++ b/hardware/sensors/sensormetrix/em01/web/mode/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/sensormetrix/em01/web/mode/thermistor.pm b/hardware/sensors/sensormetrix/em01/web/mode/thermistor.pm index e0c52feaa..3341d68db 100644 --- a/hardware/sensors/sensormetrix/em01/web/mode/thermistor.pm +++ b/hardware/sensors/sensormetrix/em01/web/mode/thermistor.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/sensormetrix/em01/web/mode/voltage.pm b/hardware/sensors/sensormetrix/em01/web/mode/voltage.pm index f370200a2..0f6428c21 100644 --- a/hardware/sensors/sensormetrix/em01/web/mode/voltage.pm +++ b/hardware/sensors/sensormetrix/em01/web/mode/voltage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/sensormetrix/em01/web/plugin.pm b/hardware/sensors/sensormetrix/em01/web/plugin.pm index 1a0f9e6c8..7a369817a 100644 --- a/hardware/sensors/sensormetrix/em01/web/plugin.pm +++ b/hardware/sensors/sensormetrix/em01/web/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/serverscheck/sensorgateway/snmp/mode/components/sensors.pm b/hardware/sensors/serverscheck/sensorgateway/snmp/mode/components/sensors.pm index d2c30fcbc..1821fee96 100644 --- a/hardware/sensors/serverscheck/sensorgateway/snmp/mode/components/sensors.pm +++ b/hardware/sensors/serverscheck/sensorgateway/snmp/mode/components/sensors.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/serverscheck/sensorgateway/snmp/mode/sensors.pm b/hardware/sensors/serverscheck/sensorgateway/snmp/mode/sensors.pm index 38e9b0165..40525014e 100644 --- a/hardware/sensors/serverscheck/sensorgateway/snmp/mode/sensors.pm +++ b/hardware/sensors/serverscheck/sensorgateway/snmp/mode/sensors.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/serverscheck/sensorgateway/snmp/plugin.pm b/hardware/sensors/serverscheck/sensorgateway/snmp/plugin.pm index 75eb6f922..759318972 100644 --- a/hardware/sensors/serverscheck/sensorgateway/snmp/plugin.pm +++ b/hardware/sensors/serverscheck/sensorgateway/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/temperhum/local/mode/environment.pm b/hardware/sensors/temperhum/local/mode/environment.pm index 49a8eae09..5a04a4e6d 100644 --- a/hardware/sensors/temperhum/local/mode/environment.pm +++ b/hardware/sensors/temperhum/local/mode/environment.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/sensors/temperhum/local/plugin.pm b/hardware/sensors/temperhum/local/plugin.pm index 4070a05e3..a40743fd2 100644 --- a/hardware/sensors/temperhum/local/plugin.pm +++ b/hardware/sensors/temperhum/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/cisco/ucs/mode/auditlogs.pm b/hardware/server/cisco/ucs/mode/auditlogs.pm index 3dd08ad5e..3dfcd5a90 100644 --- a/hardware/server/cisco/ucs/mode/auditlogs.pm +++ b/hardware/server/cisco/ucs/mode/auditlogs.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/cisco/ucs/mode/components/blade.pm b/hardware/server/cisco/ucs/mode/components/blade.pm index 04417dc6a..030fc2e4d 100644 --- a/hardware/server/cisco/ucs/mode/components/blade.pm +++ b/hardware/server/cisco/ucs/mode/components/blade.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/cisco/ucs/mode/components/chassis.pm b/hardware/server/cisco/ucs/mode/components/chassis.pm index a9d0d7c35..8604b173c 100644 --- a/hardware/server/cisco/ucs/mode/components/chassis.pm +++ b/hardware/server/cisco/ucs/mode/components/chassis.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/cisco/ucs/mode/components/cpu.pm b/hardware/server/cisco/ucs/mode/components/cpu.pm index 0d9f3f6b7..f0f850765 100644 --- a/hardware/server/cisco/ucs/mode/components/cpu.pm +++ b/hardware/server/cisco/ucs/mode/components/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/cisco/ucs/mode/components/fan.pm b/hardware/server/cisco/ucs/mode/components/fan.pm index 1159cac87..b04b072a2 100644 --- a/hardware/server/cisco/ucs/mode/components/fan.pm +++ b/hardware/server/cisco/ucs/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/cisco/ucs/mode/components/fex.pm b/hardware/server/cisco/ucs/mode/components/fex.pm index c632d6546..764bd8ac6 100644 --- a/hardware/server/cisco/ucs/mode/components/fex.pm +++ b/hardware/server/cisco/ucs/mode/components/fex.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/cisco/ucs/mode/components/iocard.pm b/hardware/server/cisco/ucs/mode/components/iocard.pm index b678b5a04..076e0082f 100644 --- a/hardware/server/cisco/ucs/mode/components/iocard.pm +++ b/hardware/server/cisco/ucs/mode/components/iocard.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/cisco/ucs/mode/components/localdisk.pm b/hardware/server/cisco/ucs/mode/components/localdisk.pm index 99e57d28c..73928c329 100644 --- a/hardware/server/cisco/ucs/mode/components/localdisk.pm +++ b/hardware/server/cisco/ucs/mode/components/localdisk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/cisco/ucs/mode/components/memory.pm b/hardware/server/cisco/ucs/mode/components/memory.pm index 46b2b5d96..0c7398472 100644 --- a/hardware/server/cisco/ucs/mode/components/memory.pm +++ b/hardware/server/cisco/ucs/mode/components/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/cisco/ucs/mode/components/psu.pm b/hardware/server/cisco/ucs/mode/components/psu.pm index 3f515b9a5..f735134a4 100644 --- a/hardware/server/cisco/ucs/mode/components/psu.pm +++ b/hardware/server/cisco/ucs/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/cisco/ucs/mode/components/resources.pm b/hardware/server/cisco/ucs/mode/components/resources.pm index fca28d7c8..98df9e7fc 100644 --- a/hardware/server/cisco/ucs/mode/components/resources.pm +++ b/hardware/server/cisco/ucs/mode/components/resources.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/cisco/ucs/mode/equipment.pm b/hardware/server/cisco/ucs/mode/equipment.pm index 37eb15c0e..51a7add4e 100644 --- a/hardware/server/cisco/ucs/mode/equipment.pm +++ b/hardware/server/cisco/ucs/mode/equipment.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/cisco/ucs/mode/faults.pm b/hardware/server/cisco/ucs/mode/faults.pm index e91bda9c8..1f3e2d98f 100644 --- a/hardware/server/cisco/ucs/mode/faults.pm +++ b/hardware/server/cisco/ucs/mode/faults.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/cisco/ucs/mode/serviceprofile.pm b/hardware/server/cisco/ucs/mode/serviceprofile.pm index c2a673f86..fe95a4853 100644 --- a/hardware/server/cisco/ucs/mode/serviceprofile.pm +++ b/hardware/server/cisco/ucs/mode/serviceprofile.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/cisco/ucs/plugin.pm b/hardware/server/cisco/ucs/plugin.pm index 2a37632f8..7cb78ebcf 100644 --- a/hardware/server/cisco/ucs/plugin.pm +++ b/hardware/server/cisco/ucs/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/cmc/snmp/mode/components/chassis.pm b/hardware/server/dell/cmc/snmp/mode/components/chassis.pm index 6c6f54773..b5fc28acd 100644 --- a/hardware/server/dell/cmc/snmp/mode/components/chassis.pm +++ b/hardware/server/dell/cmc/snmp/mode/components/chassis.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/cmc/snmp/mode/components/health.pm b/hardware/server/dell/cmc/snmp/mode/components/health.pm index a31abe6fb..295495a51 100644 --- a/hardware/server/dell/cmc/snmp/mode/components/health.pm +++ b/hardware/server/dell/cmc/snmp/mode/components/health.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/cmc/snmp/mode/components/psu.pm b/hardware/server/dell/cmc/snmp/mode/components/psu.pm index 518e9171d..e61e2aa51 100644 --- a/hardware/server/dell/cmc/snmp/mode/components/psu.pm +++ b/hardware/server/dell/cmc/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/cmc/snmp/mode/components/temperature.pm b/hardware/server/dell/cmc/snmp/mode/components/temperature.pm index c3494eab9..50f008cb7 100644 --- a/hardware/server/dell/cmc/snmp/mode/components/temperature.pm +++ b/hardware/server/dell/cmc/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/cmc/snmp/mode/hardware.pm b/hardware/server/dell/cmc/snmp/mode/hardware.pm index 026680600..22f1f340c 100644 --- a/hardware/server/dell/cmc/snmp/mode/hardware.pm +++ b/hardware/server/dell/cmc/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/cmc/snmp/plugin.pm b/hardware/server/dell/cmc/snmp/plugin.pm index ac3824726..55b65ab2a 100644 --- a/hardware/server/dell/cmc/snmp/plugin.pm +++ b/hardware/server/dell/cmc/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/idrac/snmp/mode/components/amperage.pm b/hardware/server/dell/idrac/snmp/mode/components/amperage.pm index fad1c8e4e..950e83bc3 100644 --- a/hardware/server/dell/idrac/snmp/mode/components/amperage.pm +++ b/hardware/server/dell/idrac/snmp/mode/components/amperage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/idrac/snmp/mode/components/coolingdevice.pm b/hardware/server/dell/idrac/snmp/mode/components/coolingdevice.pm index 4a6d50130..44c39a7b2 100644 --- a/hardware/server/dell/idrac/snmp/mode/components/coolingdevice.pm +++ b/hardware/server/dell/idrac/snmp/mode/components/coolingdevice.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/idrac/snmp/mode/components/coolingunit.pm b/hardware/server/dell/idrac/snmp/mode/components/coolingunit.pm index e74b1ec64..754130288 100644 --- a/hardware/server/dell/idrac/snmp/mode/components/coolingunit.pm +++ b/hardware/server/dell/idrac/snmp/mode/components/coolingunit.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/idrac/snmp/mode/components/fru.pm b/hardware/server/dell/idrac/snmp/mode/components/fru.pm index bbbf3536f..7368edf26 100644 --- a/hardware/server/dell/idrac/snmp/mode/components/fru.pm +++ b/hardware/server/dell/idrac/snmp/mode/components/fru.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/idrac/snmp/mode/components/memory.pm b/hardware/server/dell/idrac/snmp/mode/components/memory.pm index ab36b9cd4..1873a1680 100644 --- a/hardware/server/dell/idrac/snmp/mode/components/memory.pm +++ b/hardware/server/dell/idrac/snmp/mode/components/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/idrac/snmp/mode/components/network.pm b/hardware/server/dell/idrac/snmp/mode/components/network.pm index b76996418..6ae44b39c 100644 --- a/hardware/server/dell/idrac/snmp/mode/components/network.pm +++ b/hardware/server/dell/idrac/snmp/mode/components/network.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/idrac/snmp/mode/components/pci.pm b/hardware/server/dell/idrac/snmp/mode/components/pci.pm index 474b07bd3..85938b650 100644 --- a/hardware/server/dell/idrac/snmp/mode/components/pci.pm +++ b/hardware/server/dell/idrac/snmp/mode/components/pci.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/idrac/snmp/mode/components/pdisk.pm b/hardware/server/dell/idrac/snmp/mode/components/pdisk.pm index 9f938413f..d4d322314 100644 --- a/hardware/server/dell/idrac/snmp/mode/components/pdisk.pm +++ b/hardware/server/dell/idrac/snmp/mode/components/pdisk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/idrac/snmp/mode/components/processor.pm b/hardware/server/dell/idrac/snmp/mode/components/processor.pm index 40915faae..9ba7c8db1 100644 --- a/hardware/server/dell/idrac/snmp/mode/components/processor.pm +++ b/hardware/server/dell/idrac/snmp/mode/components/processor.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/idrac/snmp/mode/components/psu.pm b/hardware/server/dell/idrac/snmp/mode/components/psu.pm index 409fee8a8..b5074b3e7 100644 --- a/hardware/server/dell/idrac/snmp/mode/components/psu.pm +++ b/hardware/server/dell/idrac/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/idrac/snmp/mode/components/punit.pm b/hardware/server/dell/idrac/snmp/mode/components/punit.pm index 93685a2fe..6dd20d73b 100644 --- a/hardware/server/dell/idrac/snmp/mode/components/punit.pm +++ b/hardware/server/dell/idrac/snmp/mode/components/punit.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/idrac/snmp/mode/components/resources.pm b/hardware/server/dell/idrac/snmp/mode/components/resources.pm index d9be8d05c..81be5f57d 100644 --- a/hardware/server/dell/idrac/snmp/mode/components/resources.pm +++ b/hardware/server/dell/idrac/snmp/mode/components/resources.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/idrac/snmp/mode/components/slot.pm b/hardware/server/dell/idrac/snmp/mode/components/slot.pm index cd69106f0..e905fdf82 100644 --- a/hardware/server/dell/idrac/snmp/mode/components/slot.pm +++ b/hardware/server/dell/idrac/snmp/mode/components/slot.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/idrac/snmp/mode/components/storagebattery.pm b/hardware/server/dell/idrac/snmp/mode/components/storagebattery.pm index 8d0130db5..001bff1b0 100644 --- a/hardware/server/dell/idrac/snmp/mode/components/storagebattery.pm +++ b/hardware/server/dell/idrac/snmp/mode/components/storagebattery.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/idrac/snmp/mode/components/storagectrl.pm b/hardware/server/dell/idrac/snmp/mode/components/storagectrl.pm index b86f9a291..3e359a898 100644 --- a/hardware/server/dell/idrac/snmp/mode/components/storagectrl.pm +++ b/hardware/server/dell/idrac/snmp/mode/components/storagectrl.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/idrac/snmp/mode/components/systembattery.pm b/hardware/server/dell/idrac/snmp/mode/components/systembattery.pm index 1ec4550dc..1973e18e2 100644 --- a/hardware/server/dell/idrac/snmp/mode/components/systembattery.pm +++ b/hardware/server/dell/idrac/snmp/mode/components/systembattery.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/idrac/snmp/mode/components/temperature.pm b/hardware/server/dell/idrac/snmp/mode/components/temperature.pm index 0a62e14c6..2c71c606c 100644 --- a/hardware/server/dell/idrac/snmp/mode/components/temperature.pm +++ b/hardware/server/dell/idrac/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/idrac/snmp/mode/components/vdisk.pm b/hardware/server/dell/idrac/snmp/mode/components/vdisk.pm index 6c8be9c19..a104066c0 100644 --- a/hardware/server/dell/idrac/snmp/mode/components/vdisk.pm +++ b/hardware/server/dell/idrac/snmp/mode/components/vdisk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/idrac/snmp/mode/components/voltage.pm b/hardware/server/dell/idrac/snmp/mode/components/voltage.pm index e2abec7a2..07935eb1a 100644 --- a/hardware/server/dell/idrac/snmp/mode/components/voltage.pm +++ b/hardware/server/dell/idrac/snmp/mode/components/voltage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/idrac/snmp/mode/globalstatus.pm b/hardware/server/dell/idrac/snmp/mode/globalstatus.pm index 4ed192a4a..2e55b1ac9 100644 --- a/hardware/server/dell/idrac/snmp/mode/globalstatus.pm +++ b/hardware/server/dell/idrac/snmp/mode/globalstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/idrac/snmp/mode/hardware.pm b/hardware/server/dell/idrac/snmp/mode/hardware.pm index 6544813b2..ddbd18f3f 100644 --- a/hardware/server/dell/idrac/snmp/mode/hardware.pm +++ b/hardware/server/dell/idrac/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/idrac/snmp/plugin.pm b/hardware/server/dell/idrac/snmp/plugin.pm index 13d395443..aebb562a5 100644 --- a/hardware/server/dell/idrac/snmp/plugin.pm +++ b/hardware/server/dell/idrac/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/openmanage/snmp/mode/components/battery.pm b/hardware/server/dell/openmanage/snmp/mode/components/battery.pm index 7a760d72e..f47ca9176 100644 --- a/hardware/server/dell/openmanage/snmp/mode/components/battery.pm +++ b/hardware/server/dell/openmanage/snmp/mode/components/battery.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/openmanage/snmp/mode/components/cachebattery.pm b/hardware/server/dell/openmanage/snmp/mode/components/cachebattery.pm index cb3fae7bd..166d3b6c6 100644 --- a/hardware/server/dell/openmanage/snmp/mode/components/cachebattery.pm +++ b/hardware/server/dell/openmanage/snmp/mode/components/cachebattery.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/openmanage/snmp/mode/components/connector.pm b/hardware/server/dell/openmanage/snmp/mode/components/connector.pm index 01254ebf1..06f828ad7 100644 --- a/hardware/server/dell/openmanage/snmp/mode/components/connector.pm +++ b/hardware/server/dell/openmanage/snmp/mode/components/connector.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/openmanage/snmp/mode/components/controller.pm b/hardware/server/dell/openmanage/snmp/mode/components/controller.pm index 03803db8a..783dfa47e 100644 --- a/hardware/server/dell/openmanage/snmp/mode/components/controller.pm +++ b/hardware/server/dell/openmanage/snmp/mode/components/controller.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/openmanage/snmp/mode/components/cpu.pm b/hardware/server/dell/openmanage/snmp/mode/components/cpu.pm index bae6f4cd5..2e0cd37f5 100644 --- a/hardware/server/dell/openmanage/snmp/mode/components/cpu.pm +++ b/hardware/server/dell/openmanage/snmp/mode/components/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/openmanage/snmp/mode/components/esmlog.pm b/hardware/server/dell/openmanage/snmp/mode/components/esmlog.pm index 3a222cd23..34664d0f3 100644 --- a/hardware/server/dell/openmanage/snmp/mode/components/esmlog.pm +++ b/hardware/server/dell/openmanage/snmp/mode/components/esmlog.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/openmanage/snmp/mode/components/fan.pm b/hardware/server/dell/openmanage/snmp/mode/components/fan.pm index 5d7583e65..86e90e4df 100644 --- a/hardware/server/dell/openmanage/snmp/mode/components/fan.pm +++ b/hardware/server/dell/openmanage/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/openmanage/snmp/mode/components/globalstatus.pm b/hardware/server/dell/openmanage/snmp/mode/components/globalstatus.pm index b901ad9c1..f012bc534 100644 --- a/hardware/server/dell/openmanage/snmp/mode/components/globalstatus.pm +++ b/hardware/server/dell/openmanage/snmp/mode/components/globalstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/openmanage/snmp/mode/components/logicaldrive.pm b/hardware/server/dell/openmanage/snmp/mode/components/logicaldrive.pm index 9a573ceef..9bd78213b 100644 --- a/hardware/server/dell/openmanage/snmp/mode/components/logicaldrive.pm +++ b/hardware/server/dell/openmanage/snmp/mode/components/logicaldrive.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/openmanage/snmp/mode/components/memory.pm b/hardware/server/dell/openmanage/snmp/mode/components/memory.pm index 1ef0e0ef3..1d5e1f302 100644 --- a/hardware/server/dell/openmanage/snmp/mode/components/memory.pm +++ b/hardware/server/dell/openmanage/snmp/mode/components/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/openmanage/snmp/mode/components/physicaldisk.pm b/hardware/server/dell/openmanage/snmp/mode/components/physicaldisk.pm index 65eabacd7..9abfa1183 100644 --- a/hardware/server/dell/openmanage/snmp/mode/components/physicaldisk.pm +++ b/hardware/server/dell/openmanage/snmp/mode/components/physicaldisk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/openmanage/snmp/mode/components/psu.pm b/hardware/server/dell/openmanage/snmp/mode/components/psu.pm index b1b437153..beda0dea6 100644 --- a/hardware/server/dell/openmanage/snmp/mode/components/psu.pm +++ b/hardware/server/dell/openmanage/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/openmanage/snmp/mode/components/temperature.pm b/hardware/server/dell/openmanage/snmp/mode/components/temperature.pm index e4e65ca95..f6f3b24b8 100644 --- a/hardware/server/dell/openmanage/snmp/mode/components/temperature.pm +++ b/hardware/server/dell/openmanage/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/openmanage/snmp/mode/hardware.pm b/hardware/server/dell/openmanage/snmp/mode/hardware.pm index 9b998a620..457a03d51 100644 --- a/hardware/server/dell/openmanage/snmp/mode/hardware.pm +++ b/hardware/server/dell/openmanage/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/dell/openmanage/snmp/plugin.pm b/hardware/server/dell/openmanage/snmp/plugin.pm index 2d3be9e00..ffef60ea9 100644 --- a/hardware/server/dell/openmanage/snmp/plugin.pm +++ b/hardware/server/dell/openmanage/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/fujitsu/snmp/mode/components/cpu.pm b/hardware/server/fujitsu/snmp/mode/components/cpu.pm index e24efde68..028f52b9c 100644 --- a/hardware/server/fujitsu/snmp/mode/components/cpu.pm +++ b/hardware/server/fujitsu/snmp/mode/components/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/fujitsu/snmp/mode/components/fan.pm b/hardware/server/fujitsu/snmp/mode/components/fan.pm index 82bc184d3..dba065194 100644 --- a/hardware/server/fujitsu/snmp/mode/components/fan.pm +++ b/hardware/server/fujitsu/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/fujitsu/snmp/mode/components/memory.pm b/hardware/server/fujitsu/snmp/mode/components/memory.pm index bb9704a55..d4fb69207 100644 --- a/hardware/server/fujitsu/snmp/mode/components/memory.pm +++ b/hardware/server/fujitsu/snmp/mode/components/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/fujitsu/snmp/mode/components/psu.pm b/hardware/server/fujitsu/snmp/mode/components/psu.pm index 4aa3febdf..fa576fd03 100644 --- a/hardware/server/fujitsu/snmp/mode/components/psu.pm +++ b/hardware/server/fujitsu/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/fujitsu/snmp/mode/components/temperature.pm b/hardware/server/fujitsu/snmp/mode/components/temperature.pm index 8541dc113..2cc8a547d 100644 --- a/hardware/server/fujitsu/snmp/mode/components/temperature.pm +++ b/hardware/server/fujitsu/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/fujitsu/snmp/mode/components/voltage.pm b/hardware/server/fujitsu/snmp/mode/components/voltage.pm index d7b563ac6..ed54dfde1 100644 --- a/hardware/server/fujitsu/snmp/mode/components/voltage.pm +++ b/hardware/server/fujitsu/snmp/mode/components/voltage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/fujitsu/snmp/mode/hardware.pm b/hardware/server/fujitsu/snmp/mode/hardware.pm index 4b579ae9b..c02a2e35e 100644 --- a/hardware/server/fujitsu/snmp/mode/hardware.pm +++ b/hardware/server/fujitsu/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/fujitsu/snmp/plugin.pm b/hardware/server/fujitsu/snmp/plugin.pm index 88454599d..6a6dc3bfa 100644 --- a/hardware/server/fujitsu/snmp/plugin.pm +++ b/hardware/server/fujitsu/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/bladechassis/snmp/mode/components/blade.pm b/hardware/server/hp/bladechassis/snmp/mode/components/blade.pm index 1fa7763b3..fd3dc3b8a 100644 --- a/hardware/server/hp/bladechassis/snmp/mode/components/blade.pm +++ b/hardware/server/hp/bladechassis/snmp/mode/components/blade.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/bladechassis/snmp/mode/components/enclosure.pm b/hardware/server/hp/bladechassis/snmp/mode/components/enclosure.pm index 2a0b47a9c..8b41646bb 100644 --- a/hardware/server/hp/bladechassis/snmp/mode/components/enclosure.pm +++ b/hardware/server/hp/bladechassis/snmp/mode/components/enclosure.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/bladechassis/snmp/mode/components/fan.pm b/hardware/server/hp/bladechassis/snmp/mode/components/fan.pm index 4df4462a0..840fe72b1 100644 --- a/hardware/server/hp/bladechassis/snmp/mode/components/fan.pm +++ b/hardware/server/hp/bladechassis/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/bladechassis/snmp/mode/components/fuse.pm b/hardware/server/hp/bladechassis/snmp/mode/components/fuse.pm index ddf20fc60..9da92f59a 100644 --- a/hardware/server/hp/bladechassis/snmp/mode/components/fuse.pm +++ b/hardware/server/hp/bladechassis/snmp/mode/components/fuse.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/bladechassis/snmp/mode/components/manager.pm b/hardware/server/hp/bladechassis/snmp/mode/components/manager.pm index 8029854ea..635940bb6 100644 --- a/hardware/server/hp/bladechassis/snmp/mode/components/manager.pm +++ b/hardware/server/hp/bladechassis/snmp/mode/components/manager.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/bladechassis/snmp/mode/components/network.pm b/hardware/server/hp/bladechassis/snmp/mode/components/network.pm index 7449c4e62..c497abbee 100644 --- a/hardware/server/hp/bladechassis/snmp/mode/components/network.pm +++ b/hardware/server/hp/bladechassis/snmp/mode/components/network.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/bladechassis/snmp/mode/components/psu.pm b/hardware/server/hp/bladechassis/snmp/mode/components/psu.pm index 09c752837..c2e2292f0 100644 --- a/hardware/server/hp/bladechassis/snmp/mode/components/psu.pm +++ b/hardware/server/hp/bladechassis/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/bladechassis/snmp/mode/components/temperature.pm b/hardware/server/hp/bladechassis/snmp/mode/components/temperature.pm index 063f20c7e..2fb1e2a91 100644 --- a/hardware/server/hp/bladechassis/snmp/mode/components/temperature.pm +++ b/hardware/server/hp/bladechassis/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/bladechassis/snmp/mode/hardware.pm b/hardware/server/hp/bladechassis/snmp/mode/hardware.pm index 8102a76f3..6dc429a0f 100644 --- a/hardware/server/hp/bladechassis/snmp/mode/hardware.pm +++ b/hardware/server/hp/bladechassis/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/bladechassis/snmp/plugin.pm b/hardware/server/hp/bladechassis/snmp/plugin.pm index 00d72838e..711f81a9c 100644 --- a/hardware/server/hp/bladechassis/snmp/plugin.pm +++ b/hardware/server/hp/bladechassis/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/ilo/xmlapi/custom/api.pm b/hardware/server/hp/ilo/xmlapi/custom/api.pm index 2b6dc98d6..9a72b8a91 100644 --- a/hardware/server/hp/ilo/xmlapi/custom/api.pm +++ b/hardware/server/hp/ilo/xmlapi/custom/api.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/ilo/xmlapi/mode/components/battery.pm b/hardware/server/hp/ilo/xmlapi/mode/components/battery.pm index 092c26cfd..d037f469c 100644 --- a/hardware/server/hp/ilo/xmlapi/mode/components/battery.pm +++ b/hardware/server/hp/ilo/xmlapi/mode/components/battery.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/ilo/xmlapi/mode/components/bios.pm b/hardware/server/hp/ilo/xmlapi/mode/components/bios.pm index 8ecf8af4f..62e845623 100644 --- a/hardware/server/hp/ilo/xmlapi/mode/components/bios.pm +++ b/hardware/server/hp/ilo/xmlapi/mode/components/bios.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/ilo/xmlapi/mode/components/cpu.pm b/hardware/server/hp/ilo/xmlapi/mode/components/cpu.pm index 5ca6b78d5..2f5993164 100644 --- a/hardware/server/hp/ilo/xmlapi/mode/components/cpu.pm +++ b/hardware/server/hp/ilo/xmlapi/mode/components/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/ilo/xmlapi/mode/components/ctrl.pm b/hardware/server/hp/ilo/xmlapi/mode/components/ctrl.pm index 6fff5defb..262e2ea19 100644 --- a/hardware/server/hp/ilo/xmlapi/mode/components/ctrl.pm +++ b/hardware/server/hp/ilo/xmlapi/mode/components/ctrl.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/ilo/xmlapi/mode/components/driveencl.pm b/hardware/server/hp/ilo/xmlapi/mode/components/driveencl.pm index 714d4f763..40f5086a4 100644 --- a/hardware/server/hp/ilo/xmlapi/mode/components/driveencl.pm +++ b/hardware/server/hp/ilo/xmlapi/mode/components/driveencl.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/ilo/xmlapi/mode/components/fan.pm b/hardware/server/hp/ilo/xmlapi/mode/components/fan.pm index 5c5a7e308..d14b139ed 100644 --- a/hardware/server/hp/ilo/xmlapi/mode/components/fan.pm +++ b/hardware/server/hp/ilo/xmlapi/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/ilo/xmlapi/mode/components/ldrive.pm b/hardware/server/hp/ilo/xmlapi/mode/components/ldrive.pm index 8de71356a..552f3ffa4 100644 --- a/hardware/server/hp/ilo/xmlapi/mode/components/ldrive.pm +++ b/hardware/server/hp/ilo/xmlapi/mode/components/ldrive.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/ilo/xmlapi/mode/components/memory.pm b/hardware/server/hp/ilo/xmlapi/mode/components/memory.pm index d3bed582e..df53e9761 100644 --- a/hardware/server/hp/ilo/xmlapi/mode/components/memory.pm +++ b/hardware/server/hp/ilo/xmlapi/mode/components/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/ilo/xmlapi/mode/components/nic.pm b/hardware/server/hp/ilo/xmlapi/mode/components/nic.pm index 6260a16f5..2cda0c3c4 100644 --- a/hardware/server/hp/ilo/xmlapi/mode/components/nic.pm +++ b/hardware/server/hp/ilo/xmlapi/mode/components/nic.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/ilo/xmlapi/mode/components/pdrive.pm b/hardware/server/hp/ilo/xmlapi/mode/components/pdrive.pm index 25da27bf0..18bccc95a 100644 --- a/hardware/server/hp/ilo/xmlapi/mode/components/pdrive.pm +++ b/hardware/server/hp/ilo/xmlapi/mode/components/pdrive.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/ilo/xmlapi/mode/components/psu.pm b/hardware/server/hp/ilo/xmlapi/mode/components/psu.pm index 01ee7be2c..5004de0d8 100644 --- a/hardware/server/hp/ilo/xmlapi/mode/components/psu.pm +++ b/hardware/server/hp/ilo/xmlapi/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/ilo/xmlapi/mode/components/temperature.pm b/hardware/server/hp/ilo/xmlapi/mode/components/temperature.pm index 8d86a0684..03b5ec640 100644 --- a/hardware/server/hp/ilo/xmlapi/mode/components/temperature.pm +++ b/hardware/server/hp/ilo/xmlapi/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/ilo/xmlapi/mode/components/vrm.pm b/hardware/server/hp/ilo/xmlapi/mode/components/vrm.pm index 0e2eb38fc..81163456c 100644 --- a/hardware/server/hp/ilo/xmlapi/mode/components/vrm.pm +++ b/hardware/server/hp/ilo/xmlapi/mode/components/vrm.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/ilo/xmlapi/mode/hardware.pm b/hardware/server/hp/ilo/xmlapi/mode/hardware.pm index 0fe7b3cbc..0a83be560 100644 --- a/hardware/server/hp/ilo/xmlapi/mode/hardware.pm +++ b/hardware/server/hp/ilo/xmlapi/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/ilo/xmlapi/plugin.pm b/hardware/server/hp/ilo/xmlapi/plugin.pm index 9ecf71a18..1ba404e77 100644 --- a/hardware/server/hp/ilo/xmlapi/plugin.pm +++ b/hardware/server/hp/ilo/xmlapi/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/cpu.pm b/hardware/server/hp/proliant/snmp/mode/components/cpu.pm index 94e2b5f70..5b35f27d9 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/cpu.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/daacc.pm b/hardware/server/hp/proliant/snmp/mode/components/daacc.pm index 0271e3d22..3815db359 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/daacc.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/daacc.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/dactl.pm b/hardware/server/hp/proliant/snmp/mode/components/dactl.pm index c54fdd6e9..4db0c1c2d 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/dactl.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/dactl.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/daldrive.pm b/hardware/server/hp/proliant/snmp/mode/components/daldrive.pm index 43b8c9ee8..0729da308 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/daldrive.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/daldrive.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/dapdrive.pm b/hardware/server/hp/proliant/snmp/mode/components/dapdrive.pm index 4ad86bfbe..0e69de0ba 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/dapdrive.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/dapdrive.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/fan.pm b/hardware/server/hp/proliant/snmp/mode/components/fan.pm index 9823378e9..942788cc8 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/fan.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/fcaexternalacc.pm b/hardware/server/hp/proliant/snmp/mode/components/fcaexternalacc.pm index 643a54a63..6f4366cd6 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/fcaexternalacc.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/fcaexternalacc.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/fcaexternalctl.pm b/hardware/server/hp/proliant/snmp/mode/components/fcaexternalctl.pm index 06e525d8d..02538eb0b 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/fcaexternalctl.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/fcaexternalctl.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/fcahostctl.pm b/hardware/server/hp/proliant/snmp/mode/components/fcahostctl.pm index 16c91bbd2..891a037c8 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/fcahostctl.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/fcahostctl.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/fcaldrive.pm b/hardware/server/hp/proliant/snmp/mode/components/fcaldrive.pm index 4321433a4..7028b2e2f 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/fcaldrive.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/fcaldrive.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/fcapdrive.pm b/hardware/server/hp/proliant/snmp/mode/components/fcapdrive.pm index 71c936be5..5d3e8b7fc 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/fcapdrive.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/fcapdrive.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/idectl.pm b/hardware/server/hp/proliant/snmp/mode/components/idectl.pm index f8f6c5b62..c05ac6f68 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/idectl.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/idectl.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/ideldrive.pm b/hardware/server/hp/proliant/snmp/mode/components/ideldrive.pm index 50799b7a8..9947fda44 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/ideldrive.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/ideldrive.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/idepdrive.pm b/hardware/server/hp/proliant/snmp/mode/components/idepdrive.pm index a928d23ba..190db30b5 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/idepdrive.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/idepdrive.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/ilo.pm b/hardware/server/hp/proliant/snmp/mode/components/ilo.pm index ace440995..da7fbe1be 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/ilo.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/ilo.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/lnic.pm b/hardware/server/hp/proliant/snmp/mode/components/lnic.pm index 211f08429..27e842ab1 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/lnic.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/lnic.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/pc.pm b/hardware/server/hp/proliant/snmp/mode/components/pc.pm index 206e04021..5e49945d6 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/pc.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/pc.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/pnic.pm b/hardware/server/hp/proliant/snmp/mode/components/pnic.pm index 7a4a6a3bd..bae11ada3 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/pnic.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/pnic.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/psu.pm b/hardware/server/hp/proliant/snmp/mode/components/psu.pm index 07c85528c..020107961 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/psu.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/sasctl.pm b/hardware/server/hp/proliant/snmp/mode/components/sasctl.pm index 64718ffe1..4d1798de0 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/sasctl.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/sasctl.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/sasldrive.pm b/hardware/server/hp/proliant/snmp/mode/components/sasldrive.pm index f236278af..157afaf9d 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/sasldrive.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/sasldrive.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/saspdrive.pm b/hardware/server/hp/proliant/snmp/mode/components/saspdrive.pm index edb79e48a..7c2dec9d2 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/saspdrive.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/saspdrive.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/scsictl.pm b/hardware/server/hp/proliant/snmp/mode/components/scsictl.pm index f5e71ef00..2bafe34e9 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/scsictl.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/scsictl.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/scsildrive.pm b/hardware/server/hp/proliant/snmp/mode/components/scsildrive.pm index e3ce0445a..7a1a9d868 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/scsildrive.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/scsildrive.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/scsipdrive.pm b/hardware/server/hp/proliant/snmp/mode/components/scsipdrive.pm index 2701ea0df..d6889d53a 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/scsipdrive.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/scsipdrive.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/components/temperature.pm b/hardware/server/hp/proliant/snmp/mode/components/temperature.pm index 35f517cd7..45ca15497 100644 --- a/hardware/server/hp/proliant/snmp/mode/components/temperature.pm +++ b/hardware/server/hp/proliant/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/globalstatus.pm b/hardware/server/hp/proliant/snmp/mode/globalstatus.pm index ad0c54bca..63e801314 100644 --- a/hardware/server/hp/proliant/snmp/mode/globalstatus.pm +++ b/hardware/server/hp/proliant/snmp/mode/globalstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/mode/hardware.pm b/hardware/server/hp/proliant/snmp/mode/hardware.pm index 07e417269..dc96f763b 100644 --- a/hardware/server/hp/proliant/snmp/mode/hardware.pm +++ b/hardware/server/hp/proliant/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/hp/proliant/snmp/plugin.pm b/hardware/server/hp/proliant/snmp/plugin.pm index 065fa5c6c..810cb0b69 100644 --- a/hardware/server/hp/proliant/snmp/plugin.pm +++ b/hardware/server/hp/proliant/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/ibm/bladecenter/snmp/mode/components/ambient.pm b/hardware/server/ibm/bladecenter/snmp/mode/components/ambient.pm index 71c06df1b..19ed713bb 100644 --- a/hardware/server/ibm/bladecenter/snmp/mode/components/ambient.pm +++ b/hardware/server/ibm/bladecenter/snmp/mode/components/ambient.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/ibm/bladecenter/snmp/mode/components/blade.pm b/hardware/server/ibm/bladecenter/snmp/mode/components/blade.pm index 808009872..8dadd83b8 100644 --- a/hardware/server/ibm/bladecenter/snmp/mode/components/blade.pm +++ b/hardware/server/ibm/bladecenter/snmp/mode/components/blade.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/ibm/bladecenter/snmp/mode/components/blower.pm b/hardware/server/ibm/bladecenter/snmp/mode/components/blower.pm index ccc66107a..2a0f3f20b 100644 --- a/hardware/server/ibm/bladecenter/snmp/mode/components/blower.pm +++ b/hardware/server/ibm/bladecenter/snmp/mode/components/blower.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/ibm/bladecenter/snmp/mode/components/chassisfan.pm b/hardware/server/ibm/bladecenter/snmp/mode/components/chassisfan.pm index 1ee5a935c..e7044a2cb 100644 --- a/hardware/server/ibm/bladecenter/snmp/mode/components/chassisfan.pm +++ b/hardware/server/ibm/bladecenter/snmp/mode/components/chassisfan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/ibm/bladecenter/snmp/mode/components/chassisstatus.pm b/hardware/server/ibm/bladecenter/snmp/mode/components/chassisstatus.pm index 47a9726e0..3c9fc7d1d 100644 --- a/hardware/server/ibm/bladecenter/snmp/mode/components/chassisstatus.pm +++ b/hardware/server/ibm/bladecenter/snmp/mode/components/chassisstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/ibm/bladecenter/snmp/mode/components/fanpack.pm b/hardware/server/ibm/bladecenter/snmp/mode/components/fanpack.pm index 7a5c6863c..e40c319c1 100644 --- a/hardware/server/ibm/bladecenter/snmp/mode/components/fanpack.pm +++ b/hardware/server/ibm/bladecenter/snmp/mode/components/fanpack.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/ibm/bladecenter/snmp/mode/components/powermodule.pm b/hardware/server/ibm/bladecenter/snmp/mode/components/powermodule.pm index 4c3814dc8..d12d63436 100644 --- a/hardware/server/ibm/bladecenter/snmp/mode/components/powermodule.pm +++ b/hardware/server/ibm/bladecenter/snmp/mode/components/powermodule.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/ibm/bladecenter/snmp/mode/components/switchmodule.pm b/hardware/server/ibm/bladecenter/snmp/mode/components/switchmodule.pm index 3e325f601..011026de5 100644 --- a/hardware/server/ibm/bladecenter/snmp/mode/components/switchmodule.pm +++ b/hardware/server/ibm/bladecenter/snmp/mode/components/switchmodule.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/ibm/bladecenter/snmp/mode/components/systemhealth.pm b/hardware/server/ibm/bladecenter/snmp/mode/components/systemhealth.pm index 34010c511..19877b342 100644 --- a/hardware/server/ibm/bladecenter/snmp/mode/components/systemhealth.pm +++ b/hardware/server/ibm/bladecenter/snmp/mode/components/systemhealth.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/ibm/bladecenter/snmp/mode/hardware.pm b/hardware/server/ibm/bladecenter/snmp/mode/hardware.pm index 97d37c1e3..8b51e8030 100644 --- a/hardware/server/ibm/bladecenter/snmp/mode/hardware.pm +++ b/hardware/server/ibm/bladecenter/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/ibm/bladecenter/snmp/plugin.pm b/hardware/server/ibm/bladecenter/snmp/plugin.pm index 1ad993aac..671afe08b 100644 --- a/hardware/server/ibm/bladecenter/snmp/plugin.pm +++ b/hardware/server/ibm/bladecenter/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/ibm/hmc/ssh/mode/hardwareerrors.pm b/hardware/server/ibm/hmc/ssh/mode/hardwareerrors.pm index 19dbf38ea..fac6d4fc3 100644 --- a/hardware/server/ibm/hmc/ssh/mode/hardwareerrors.pm +++ b/hardware/server/ibm/hmc/ssh/mode/hardwareerrors.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/ibm/hmc/ssh/mode/ledstatus.pm b/hardware/server/ibm/hmc/ssh/mode/ledstatus.pm index 9311f1a80..047c144a7 100644 --- a/hardware/server/ibm/hmc/ssh/mode/ledstatus.pm +++ b/hardware/server/ibm/hmc/ssh/mode/ledstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/ibm/hmc/ssh/plugin.pm b/hardware/server/ibm/hmc/ssh/plugin.pm index f4df23ff2..9c211f3b1 100644 --- a/hardware/server/ibm/hmc/ssh/plugin.pm +++ b/hardware/server/ibm/hmc/ssh/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/ibm/mgmt_cards/imm/snmp/mode/components/fan.pm b/hardware/server/ibm/mgmt_cards/imm/snmp/mode/components/fan.pm index 8f306419d..85edcc6df 100644 --- a/hardware/server/ibm/mgmt_cards/imm/snmp/mode/components/fan.pm +++ b/hardware/server/ibm/mgmt_cards/imm/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/ibm/mgmt_cards/imm/snmp/mode/components/global.pm b/hardware/server/ibm/mgmt_cards/imm/snmp/mode/components/global.pm index 46e607410..98b702301 100644 --- a/hardware/server/ibm/mgmt_cards/imm/snmp/mode/components/global.pm +++ b/hardware/server/ibm/mgmt_cards/imm/snmp/mode/components/global.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/ibm/mgmt_cards/imm/snmp/mode/components/temperature.pm b/hardware/server/ibm/mgmt_cards/imm/snmp/mode/components/temperature.pm index b632d4e3b..f54eb39be 100644 --- a/hardware/server/ibm/mgmt_cards/imm/snmp/mode/components/temperature.pm +++ b/hardware/server/ibm/mgmt_cards/imm/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/ibm/mgmt_cards/imm/snmp/mode/components/voltage.pm b/hardware/server/ibm/mgmt_cards/imm/snmp/mode/components/voltage.pm index 4c3fe85c8..a826a3ead 100644 --- a/hardware/server/ibm/mgmt_cards/imm/snmp/mode/components/voltage.pm +++ b/hardware/server/ibm/mgmt_cards/imm/snmp/mode/components/voltage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/ibm/mgmt_cards/imm/snmp/mode/environment.pm b/hardware/server/ibm/mgmt_cards/imm/snmp/mode/environment.pm index 81e25d826..47d4c9563 100644 --- a/hardware/server/ibm/mgmt_cards/imm/snmp/mode/environment.pm +++ b/hardware/server/ibm/mgmt_cards/imm/snmp/mode/environment.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/ibm/mgmt_cards/imm/snmp/mode/eventlog.pm b/hardware/server/ibm/mgmt_cards/imm/snmp/mode/eventlog.pm index 6a5ea0b9e..37263cca7 100644 --- a/hardware/server/ibm/mgmt_cards/imm/snmp/mode/eventlog.pm +++ b/hardware/server/ibm/mgmt_cards/imm/snmp/mode/eventlog.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/ibm/mgmt_cards/imm/snmp/plugin.pm b/hardware/server/ibm/mgmt_cards/imm/snmp/plugin.pm index 734335a4a..236eb6060 100644 --- a/hardware/server/ibm/mgmt_cards/imm/snmp/plugin.pm +++ b/hardware/server/ibm/mgmt_cards/imm/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/mgmt_cards/components/showenvironment/disk.pm b/hardware/server/sun/mgmt_cards/components/showenvironment/disk.pm index a1a7f79cf..caab16e32 100644 --- a/hardware/server/sun/mgmt_cards/components/showenvironment/disk.pm +++ b/hardware/server/sun/mgmt_cards/components/showenvironment/disk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/mgmt_cards/components/showenvironment/fan.pm b/hardware/server/sun/mgmt_cards/components/showenvironment/fan.pm index 62ff163a2..d42a755bd 100644 --- a/hardware/server/sun/mgmt_cards/components/showenvironment/fan.pm +++ b/hardware/server/sun/mgmt_cards/components/showenvironment/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/mgmt_cards/components/showenvironment/psu.pm b/hardware/server/sun/mgmt_cards/components/showenvironment/psu.pm index 140ee9685..7a3d50468 100644 --- a/hardware/server/sun/mgmt_cards/components/showenvironment/psu.pm +++ b/hardware/server/sun/mgmt_cards/components/showenvironment/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/mgmt_cards/components/showenvironment/resources.pm b/hardware/server/sun/mgmt_cards/components/showenvironment/resources.pm index 14bfdfe59..f303f28dd 100644 --- a/hardware/server/sun/mgmt_cards/components/showenvironment/resources.pm +++ b/hardware/server/sun/mgmt_cards/components/showenvironment/resources.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/mgmt_cards/components/showenvironment/sensors.pm b/hardware/server/sun/mgmt_cards/components/showenvironment/sensors.pm index 56efeec8a..74ea45140 100644 --- a/hardware/server/sun/mgmt_cards/components/showenvironment/sensors.pm +++ b/hardware/server/sun/mgmt_cards/components/showenvironment/sensors.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/mgmt_cards/components/showenvironment/si.pm b/hardware/server/sun/mgmt_cards/components/showenvironment/si.pm index 6d9b82c95..b328d6af6 100644 --- a/hardware/server/sun/mgmt_cards/components/showenvironment/si.pm +++ b/hardware/server/sun/mgmt_cards/components/showenvironment/si.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/mgmt_cards/components/showenvironment/temperature.pm b/hardware/server/sun/mgmt_cards/components/showenvironment/temperature.pm index f2c5d07c6..62e00dc9b 100644 --- a/hardware/server/sun/mgmt_cards/components/showenvironment/temperature.pm +++ b/hardware/server/sun/mgmt_cards/components/showenvironment/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/mgmt_cards/components/showenvironment/voltage.pm b/hardware/server/sun/mgmt_cards/components/showenvironment/voltage.pm index e08b1dc07..17f08398c 100644 --- a/hardware/server/sun/mgmt_cards/components/showenvironment/voltage.pm +++ b/hardware/server/sun/mgmt_cards/components/showenvironment/voltage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/mgmt_cards/lib/telnet.pm b/hardware/server/sun/mgmt_cards/lib/telnet.pm index f5660ad04..cfb82c96a 100644 --- a/hardware/server/sun/mgmt_cards/lib/telnet.pm +++ b/hardware/server/sun/mgmt_cards/lib/telnet.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/mgmt_cards/mode/environmentsf2xx.pm b/hardware/server/sun/mgmt_cards/mode/environmentsf2xx.pm index 40390c769..683b675e0 100644 --- a/hardware/server/sun/mgmt_cards/mode/environmentsf2xx.pm +++ b/hardware/server/sun/mgmt_cards/mode/environmentsf2xx.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/mgmt_cards/mode/environmentv4xx.pm b/hardware/server/sun/mgmt_cards/mode/environmentv4xx.pm index e3075139f..8e2d30c51 100644 --- a/hardware/server/sun/mgmt_cards/mode/environmentv4xx.pm +++ b/hardware/server/sun/mgmt_cards/mode/environmentv4xx.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/mgmt_cards/mode/environmentv8xx.pm b/hardware/server/sun/mgmt_cards/mode/environmentv8xx.pm index 8982e6b89..6430e50b7 100644 --- a/hardware/server/sun/mgmt_cards/mode/environmentv8xx.pm +++ b/hardware/server/sun/mgmt_cards/mode/environmentv8xx.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/mgmt_cards/mode/showboards.pm b/hardware/server/sun/mgmt_cards/mode/showboards.pm index e16ca4ffc..1eea491f7 100644 --- a/hardware/server/sun/mgmt_cards/mode/showboards.pm +++ b/hardware/server/sun/mgmt_cards/mode/showboards.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/mgmt_cards/mode/showenvironment.pm b/hardware/server/sun/mgmt_cards/mode/showenvironment.pm index 6cd33a900..96a174747 100644 --- a/hardware/server/sun/mgmt_cards/mode/showenvironment.pm +++ b/hardware/server/sun/mgmt_cards/mode/showenvironment.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/mgmt_cards/mode/showfaults.pm b/hardware/server/sun/mgmt_cards/mode/showfaults.pm index bbc404186..16ac09756 100644 --- a/hardware/server/sun/mgmt_cards/mode/showfaults.pm +++ b/hardware/server/sun/mgmt_cards/mode/showfaults.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/mgmt_cards/mode/showfaulty.pm b/hardware/server/sun/mgmt_cards/mode/showfaulty.pm index 65d732ad0..424508dee 100644 --- a/hardware/server/sun/mgmt_cards/mode/showfaulty.pm +++ b/hardware/server/sun/mgmt_cards/mode/showfaulty.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/mgmt_cards/mode/showstatus.pm b/hardware/server/sun/mgmt_cards/mode/showstatus.pm index d1cf43b3a..1e3c3859c 100644 --- a/hardware/server/sun/mgmt_cards/mode/showstatus.pm +++ b/hardware/server/sun/mgmt_cards/mode/showstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/mgmt_cards/plugin.pm b/hardware/server/sun/mgmt_cards/plugin.pm index f031edc23..06405a3d5 100644 --- a/hardware/server/sun/mgmt_cards/plugin.pm +++ b/hardware/server/sun/mgmt_cards/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/mseries/mode/domains.pm b/hardware/server/sun/mseries/mode/domains.pm index 321eafe6a..54eb5b0f2 100644 --- a/hardware/server/sun/mseries/mode/domains.pm +++ b/hardware/server/sun/mseries/mode/domains.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/mseries/mode/hardware.pm b/hardware/server/sun/mseries/mode/hardware.pm index 621686a17..5db0b3184 100644 --- a/hardware/server/sun/mseries/mode/hardware.pm +++ b/hardware/server/sun/mseries/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/mseries/plugin.pm b/hardware/server/sun/mseries/plugin.pm index 8590ab22c..d963401d9 100644 --- a/hardware/server/sun/mseries/plugin.pm +++ b/hardware/server/sun/mseries/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/sfxxk/mode/boards.pm b/hardware/server/sun/sfxxk/mode/boards.pm index 1611d0770..aa76984b6 100644 --- a/hardware/server/sun/sfxxk/mode/boards.pm +++ b/hardware/server/sun/sfxxk/mode/boards.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/sfxxk/mode/environment.pm b/hardware/server/sun/sfxxk/mode/environment.pm index e97226d0d..9710eaff1 100644 --- a/hardware/server/sun/sfxxk/mode/environment.pm +++ b/hardware/server/sun/sfxxk/mode/environment.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/sfxxk/mode/failover.pm b/hardware/server/sun/sfxxk/mode/failover.pm index 72d473e31..eb04b523d 100644 --- a/hardware/server/sun/sfxxk/mode/failover.pm +++ b/hardware/server/sun/sfxxk/mode/failover.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/sun/sfxxk/plugin.pm b/hardware/server/sun/sfxxk/plugin.pm index c99c22355..72db5b137 100644 --- a/hardware/server/sun/sfxxk/plugin.pm +++ b/hardware/server/sun/sfxxk/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/supermicro/snmp/mode/hardware.pm b/hardware/server/supermicro/snmp/mode/hardware.pm index a7bfbfce9..84feb1fc4 100644 --- a/hardware/server/supermicro/snmp/mode/hardware.pm +++ b/hardware/server/supermicro/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/server/supermicro/snmp/plugin.pm b/hardware/server/supermicro/snmp/plugin.pm index 8748fa04d..607c15685 100644 --- a/hardware/server/supermicro/snmp/plugin.pm +++ b/hardware/server/supermicro/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ups/alpha/snmp/mode/alarms.pm b/hardware/ups/alpha/snmp/mode/alarms.pm index 2c2b3a611..54457a0f7 100644 --- a/hardware/ups/alpha/snmp/mode/alarms.pm +++ b/hardware/ups/alpha/snmp/mode/alarms.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ups/alpha/snmp/mode/batterystatus.pm b/hardware/ups/alpha/snmp/mode/batterystatus.pm index f9bca7635..7f2907fa4 100644 --- a/hardware/ups/alpha/snmp/mode/batterystatus.pm +++ b/hardware/ups/alpha/snmp/mode/batterystatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ups/apc/snmp/mode/batterystatus.pm b/hardware/ups/apc/snmp/mode/batterystatus.pm index 60bae6757..48f3d5ee7 100644 --- a/hardware/ups/apc/snmp/mode/batterystatus.pm +++ b/hardware/ups/apc/snmp/mode/batterystatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ups/apc/snmp/mode/outputlines.pm b/hardware/ups/apc/snmp/mode/outputlines.pm index c9609438e..b6b2976f1 100644 --- a/hardware/ups/apc/snmp/mode/outputlines.pm +++ b/hardware/ups/apc/snmp/mode/outputlines.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ups/apc/snmp/mode/sensors.pm b/hardware/ups/apc/snmp/mode/sensors.pm index 7d7cc8a1e..556cb5039 100644 --- a/hardware/ups/apc/snmp/mode/sensors.pm +++ b/hardware/ups/apc/snmp/mode/sensors.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ups/mge/snmp/mode/batterystatus.pm b/hardware/ups/mge/snmp/mode/batterystatus.pm index 656ee0cc5..6a4ef15be 100644 --- a/hardware/ups/mge/snmp/mode/batterystatus.pm +++ b/hardware/ups/mge/snmp/mode/batterystatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ups/mge/snmp/mode/environment.pm b/hardware/ups/mge/snmp/mode/environment.pm index b891be0cd..aca0dc9c9 100644 --- a/hardware/ups/mge/snmp/mode/environment.pm +++ b/hardware/ups/mge/snmp/mode/environment.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ups/mge/snmp/mode/inputlines.pm b/hardware/ups/mge/snmp/mode/inputlines.pm index d5f118d0c..12d44b04c 100644 --- a/hardware/ups/mge/snmp/mode/inputlines.pm +++ b/hardware/ups/mge/snmp/mode/inputlines.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ups/mge/snmp/mode/outputlines.pm b/hardware/ups/mge/snmp/mode/outputlines.pm index 5e3c1dfea..9bf89ad69 100644 --- a/hardware/ups/mge/snmp/mode/outputlines.pm +++ b/hardware/ups/mge/snmp/mode/outputlines.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ups/mge/snmp/mode/outputsource.pm b/hardware/ups/mge/snmp/mode/outputsource.pm index 2bffbb859..cb59db0b3 100644 --- a/hardware/ups/mge/snmp/mode/outputsource.pm +++ b/hardware/ups/mge/snmp/mode/outputsource.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ups/mge/snmp/plugin.pm b/hardware/ups/mge/snmp/plugin.pm index f8e990ae7..a71978843 100644 --- a/hardware/ups/mge/snmp/plugin.pm +++ b/hardware/ups/mge/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ups/powerware/snmp/mode/alarms.pm b/hardware/ups/powerware/snmp/mode/alarms.pm index 82b700e12..48202a118 100644 --- a/hardware/ups/powerware/snmp/mode/alarms.pm +++ b/hardware/ups/powerware/snmp/mode/alarms.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ups/powerware/snmp/mode/batterystatus.pm b/hardware/ups/powerware/snmp/mode/batterystatus.pm index 6dad01e53..0e9fe92b4 100644 --- a/hardware/ups/powerware/snmp/mode/batterystatus.pm +++ b/hardware/ups/powerware/snmp/mode/batterystatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ups/powerware/snmp/mode/environment.pm b/hardware/ups/powerware/snmp/mode/environment.pm index c6e6aa5fb..fda697cb4 100644 --- a/hardware/ups/powerware/snmp/mode/environment.pm +++ b/hardware/ups/powerware/snmp/mode/environment.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ups/powerware/snmp/mode/inputlines.pm b/hardware/ups/powerware/snmp/mode/inputlines.pm index 36fb621db..2d24a55ee 100644 --- a/hardware/ups/powerware/snmp/mode/inputlines.pm +++ b/hardware/ups/powerware/snmp/mode/inputlines.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ups/powerware/snmp/mode/outputlines.pm b/hardware/ups/powerware/snmp/mode/outputlines.pm index 03be37430..286b3e5b3 100644 --- a/hardware/ups/powerware/snmp/mode/outputlines.pm +++ b/hardware/ups/powerware/snmp/mode/outputlines.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ups/powerware/snmp/mode/outputsource.pm b/hardware/ups/powerware/snmp/mode/outputsource.pm index 0a7a9d572..4693c3810 100644 --- a/hardware/ups/powerware/snmp/mode/outputsource.pm +++ b/hardware/ups/powerware/snmp/mode/outputsource.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ups/powerware/snmp/plugin.pm b/hardware/ups/powerware/snmp/plugin.pm index e640ef3a0..4978808aa 100644 --- a/hardware/ups/powerware/snmp/plugin.pm +++ b/hardware/ups/powerware/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ups/standard/rfc1628/snmp/mode/alarms.pm b/hardware/ups/standard/rfc1628/snmp/mode/alarms.pm index 2d3244e8f..bc96ad6f9 100644 --- a/hardware/ups/standard/rfc1628/snmp/mode/alarms.pm +++ b/hardware/ups/standard/rfc1628/snmp/mode/alarms.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ups/standard/rfc1628/snmp/mode/batterystatus.pm b/hardware/ups/standard/rfc1628/snmp/mode/batterystatus.pm index 345fc372c..d3a6bf95a 100644 --- a/hardware/ups/standard/rfc1628/snmp/mode/batterystatus.pm +++ b/hardware/ups/standard/rfc1628/snmp/mode/batterystatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ups/standard/rfc1628/snmp/mode/inputlines.pm b/hardware/ups/standard/rfc1628/snmp/mode/inputlines.pm index 07d92fa6c..d9de61de9 100644 --- a/hardware/ups/standard/rfc1628/snmp/mode/inputlines.pm +++ b/hardware/ups/standard/rfc1628/snmp/mode/inputlines.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ups/standard/rfc1628/snmp/mode/outputlines.pm b/hardware/ups/standard/rfc1628/snmp/mode/outputlines.pm index 738496fa8..23915f97a 100644 --- a/hardware/ups/standard/rfc1628/snmp/mode/outputlines.pm +++ b/hardware/ups/standard/rfc1628/snmp/mode/outputlines.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ups/standard/rfc1628/snmp/mode/outputsource.pm b/hardware/ups/standard/rfc1628/snmp/mode/outputsource.pm index ccc46e80e..624673414 100644 --- a/hardware/ups/standard/rfc1628/snmp/mode/outputsource.pm +++ b/hardware/ups/standard/rfc1628/snmp/mode/outputsource.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/hardware/ups/standard/rfc1628/snmp/plugin.pm b/hardware/ups/standard/rfc1628/snmp/plugin.pm index 074f01530..4c113fb0a 100644 --- a/hardware/ups/standard/rfc1628/snmp/plugin.pm +++ b/hardware/ups/standard/rfc1628/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/3com/snmp/mode/components/fan.pm b/network/3com/snmp/mode/components/fan.pm index 240c384da..abf1b3e5d 100644 --- a/network/3com/snmp/mode/components/fan.pm +++ b/network/3com/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/3com/snmp/mode/components/psu.pm b/network/3com/snmp/mode/components/psu.pm index f63c5f144..1313f8485 100644 --- a/network/3com/snmp/mode/components/psu.pm +++ b/network/3com/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/3com/snmp/mode/cpu.pm b/network/3com/snmp/mode/cpu.pm index 1293b819e..374cff9f4 100644 --- a/network/3com/snmp/mode/cpu.pm +++ b/network/3com/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/3com/snmp/mode/hardware.pm b/network/3com/snmp/mode/hardware.pm index 91988bf6f..f8ca058ce 100644 --- a/network/3com/snmp/mode/hardware.pm +++ b/network/3com/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/3com/snmp/mode/memory.pm b/network/3com/snmp/mode/memory.pm index 2deb9907a..f95af3d00 100644 --- a/network/3com/snmp/mode/memory.pm +++ b/network/3com/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/3com/snmp/plugin.pm b/network/3com/snmp/plugin.pm index d750edc26..37c7e48da 100644 --- a/network/3com/snmp/plugin.pm +++ b/network/3com/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/a10/ax/snmp/mode/cpu.pm b/network/a10/ax/snmp/mode/cpu.pm index 732a8689e..bdb7a0511 100644 --- a/network/a10/ax/snmp/mode/cpu.pm +++ b/network/a10/ax/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/a10/ax/snmp/mode/disk.pm b/network/a10/ax/snmp/mode/disk.pm index 8d9b6058a..db5550536 100644 --- a/network/a10/ax/snmp/mode/disk.pm +++ b/network/a10/ax/snmp/mode/disk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/a10/ax/snmp/mode/globalstats.pm b/network/a10/ax/snmp/mode/globalstats.pm index bf48dfb23..3168c5693 100644 --- a/network/a10/ax/snmp/mode/globalstats.pm +++ b/network/a10/ax/snmp/mode/globalstats.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/a10/ax/snmp/mode/hardware.pm b/network/a10/ax/snmp/mode/hardware.pm index 4997475c7..44568d7de 100644 --- a/network/a10/ax/snmp/mode/hardware.pm +++ b/network/a10/ax/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/a10/ax/snmp/mode/listvservers.pm b/network/a10/ax/snmp/mode/listvservers.pm index 6a5d9d63b..b04788cae 100644 --- a/network/a10/ax/snmp/mode/listvservers.pm +++ b/network/a10/ax/snmp/mode/listvservers.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/a10/ax/snmp/mode/memory.pm b/network/a10/ax/snmp/mode/memory.pm index c7946b527..ab316dcf8 100644 --- a/network/a10/ax/snmp/mode/memory.pm +++ b/network/a10/ax/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/a10/ax/snmp/mode/vserverusage.pm b/network/a10/ax/snmp/mode/vserverusage.pm index dce59c28e..6f4fb3a6e 100644 --- a/network/a10/ax/snmp/mode/vserverusage.pm +++ b/network/a10/ax/snmp/mode/vserverusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/a10/ax/snmp/plugin.pm b/network/a10/ax/snmp/plugin.pm index df5602f0f..c113dadae 100644 --- a/network/a10/ax/snmp/plugin.pm +++ b/network/a10/ax/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/acmepacket/snmp/mode/components/fan.pm b/network/acmepacket/snmp/mode/components/fan.pm index df2001712..a717826bc 100644 --- a/network/acmepacket/snmp/mode/components/fan.pm +++ b/network/acmepacket/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/acmepacket/snmp/mode/components/psu.pm b/network/acmepacket/snmp/mode/components/psu.pm index 8690ff67d..e7aaf72f7 100644 --- a/network/acmepacket/snmp/mode/components/psu.pm +++ b/network/acmepacket/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/acmepacket/snmp/mode/components/resources.pm b/network/acmepacket/snmp/mode/components/resources.pm index 8a6a4522a..52fd7cb47 100644 --- a/network/acmepacket/snmp/mode/components/resources.pm +++ b/network/acmepacket/snmp/mode/components/resources.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/acmepacket/snmp/mode/components/temperature.pm b/network/acmepacket/snmp/mode/components/temperature.pm index cca566b47..b05e8ad75 100644 --- a/network/acmepacket/snmp/mode/components/temperature.pm +++ b/network/acmepacket/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/acmepacket/snmp/mode/components/voltage.pm b/network/acmepacket/snmp/mode/components/voltage.pm index 465640971..3e244832f 100644 --- a/network/acmepacket/snmp/mode/components/voltage.pm +++ b/network/acmepacket/snmp/mode/components/voltage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/acmepacket/snmp/mode/hardware.pm b/network/acmepacket/snmp/mode/hardware.pm index dd815edb2..16bc33a32 100644 --- a/network/acmepacket/snmp/mode/hardware.pm +++ b/network/acmepacket/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/acmepacket/snmp/mode/listrealm.pm b/network/acmepacket/snmp/mode/listrealm.pm index 5234b20f3..f1b48e4fa 100644 --- a/network/acmepacket/snmp/mode/listrealm.pm +++ b/network/acmepacket/snmp/mode/listrealm.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/acmepacket/snmp/mode/listsip.pm b/network/acmepacket/snmp/mode/listsip.pm index 502cb530e..9017fce54 100644 --- a/network/acmepacket/snmp/mode/listsip.pm +++ b/network/acmepacket/snmp/mode/listsip.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/acmepacket/snmp/mode/realmusage.pm b/network/acmepacket/snmp/mode/realmusage.pm index 3e2b0048f..ce8b5a6ec 100644 --- a/network/acmepacket/snmp/mode/realmusage.pm +++ b/network/acmepacket/snmp/mode/realmusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/acmepacket/snmp/mode/sipusage.pm b/network/acmepacket/snmp/mode/sipusage.pm index 72212ffed..17d2d3091 100644 --- a/network/acmepacket/snmp/mode/sipusage.pm +++ b/network/acmepacket/snmp/mode/sipusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/acmepacket/snmp/mode/systemusage.pm b/network/acmepacket/snmp/mode/systemusage.pm index c1e82cd2d..730038605 100644 --- a/network/acmepacket/snmp/mode/systemusage.pm +++ b/network/acmepacket/snmp/mode/systemusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/acmepacket/snmp/plugin.pm b/network/acmepacket/snmp/plugin.pm index c74613272..c0c6841b3 100644 --- a/network/acmepacket/snmp/plugin.pm +++ b/network/acmepacket/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/adva/fsp3000/snmp/mode/alarms.pm b/network/adva/fsp3000/snmp/mode/alarms.pm index 71a01fec4..500583d2a 100644 --- a/network/adva/fsp3000/snmp/mode/alarms.pm +++ b/network/adva/fsp3000/snmp/mode/alarms.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/adva/fsp3000/snmp/mode/interfaces.pm b/network/adva/fsp3000/snmp/mode/interfaces.pm index 28cf7e380..287e21a4d 100644 --- a/network/adva/fsp3000/snmp/mode/interfaces.pm +++ b/network/adva/fsp3000/snmp/mode/interfaces.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/adva/fsp3000/snmp/mode/listinterfaces.pm b/network/adva/fsp3000/snmp/mode/listinterfaces.pm index 5bf52fcd9..923d31657 100644 --- a/network/adva/fsp3000/snmp/mode/listinterfaces.pm +++ b/network/adva/fsp3000/snmp/mode/listinterfaces.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/adva/fsp3000/snmp/plugin.pm b/network/adva/fsp3000/snmp/plugin.pm index b6c4d32fa..ab19cb401 100644 --- a/network/adva/fsp3000/snmp/plugin.pm +++ b/network/adva/fsp3000/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/aerohive/snmp/mode/connectedusers.pm b/network/aerohive/snmp/mode/connectedusers.pm index a05e74bb8..d79e8395c 100644 --- a/network/aerohive/snmp/mode/connectedusers.pm +++ b/network/aerohive/snmp/mode/connectedusers.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/aerohive/snmp/plugin.pm b/network/aerohive/snmp/plugin.pm index 09843f6ae..8073d55da 100644 --- a/network/aerohive/snmp/plugin.pm +++ b/network/aerohive/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/isam/snmp/mode/components/cardtemperature.pm b/network/alcatel/isam/snmp/mode/components/cardtemperature.pm index feda91d07..cec0e035e 100644 --- a/network/alcatel/isam/snmp/mode/components/cardtemperature.pm +++ b/network/alcatel/isam/snmp/mode/components/cardtemperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/isam/snmp/mode/components/resources.pm b/network/alcatel/isam/snmp/mode/components/resources.pm index bcf5b478c..62f72519e 100644 --- a/network/alcatel/isam/snmp/mode/components/resources.pm +++ b/network/alcatel/isam/snmp/mode/components/resources.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/isam/snmp/mode/components/sfp.pm b/network/alcatel/isam/snmp/mode/components/sfp.pm index 58ea7f679..98418802a 100644 --- a/network/alcatel/isam/snmp/mode/components/sfp.pm +++ b/network/alcatel/isam/snmp/mode/components/sfp.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/isam/snmp/mode/cpu.pm b/network/alcatel/isam/snmp/mode/cpu.pm index 4dbd8962c..669382899 100644 --- a/network/alcatel/isam/snmp/mode/cpu.pm +++ b/network/alcatel/isam/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/isam/snmp/mode/hardware.pm b/network/alcatel/isam/snmp/mode/hardware.pm index 906cda298..ab4c7b3a3 100644 --- a/network/alcatel/isam/snmp/mode/hardware.pm +++ b/network/alcatel/isam/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/isam/snmp/mode/hubsapusage.pm b/network/alcatel/isam/snmp/mode/hubsapusage.pm index a089b7a92..1bd9e7cd9 100644 --- a/network/alcatel/isam/snmp/mode/hubsapusage.pm +++ b/network/alcatel/isam/snmp/mode/hubsapusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/isam/snmp/mode/listhubsap.pm b/network/alcatel/isam/snmp/mode/listhubsap.pm index 07e9f8805..5c5766d45 100644 --- a/network/alcatel/isam/snmp/mode/listhubsap.pm +++ b/network/alcatel/isam/snmp/mode/listhubsap.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/isam/snmp/mode/memory.pm b/network/alcatel/isam/snmp/mode/memory.pm index 33fc94aac..0c455527e 100644 --- a/network/alcatel/isam/snmp/mode/memory.pm +++ b/network/alcatel/isam/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/isam/snmp/plugin.pm b/network/alcatel/isam/snmp/plugin.pm index 0709ec2e9..cea1494e1 100644 --- a/network/alcatel/isam/snmp/plugin.pm +++ b/network/alcatel/isam/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/omniswitch/snmp/mode/components/backplane.pm b/network/alcatel/omniswitch/snmp/mode/components/backplane.pm index 303e9c3fe..9e634ac65 100644 --- a/network/alcatel/omniswitch/snmp/mode/components/backplane.pm +++ b/network/alcatel/omniswitch/snmp/mode/components/backplane.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/omniswitch/snmp/mode/components/chassis.pm b/network/alcatel/omniswitch/snmp/mode/components/chassis.pm index aabd448e5..31c3d0574 100644 --- a/network/alcatel/omniswitch/snmp/mode/components/chassis.pm +++ b/network/alcatel/omniswitch/snmp/mode/components/chassis.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/omniswitch/snmp/mode/components/container.pm b/network/alcatel/omniswitch/snmp/mode/components/container.pm index 03b411a5d..21798e1d7 100644 --- a/network/alcatel/omniswitch/snmp/mode/components/container.pm +++ b/network/alcatel/omniswitch/snmp/mode/components/container.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/omniswitch/snmp/mode/components/fan.pm b/network/alcatel/omniswitch/snmp/mode/components/fan.pm index 9800a772b..2f953b051 100644 --- a/network/alcatel/omniswitch/snmp/mode/components/fan.pm +++ b/network/alcatel/omniswitch/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/omniswitch/snmp/mode/components/module.pm b/network/alcatel/omniswitch/snmp/mode/components/module.pm index 4786112e8..8da9af2e0 100644 --- a/network/alcatel/omniswitch/snmp/mode/components/module.pm +++ b/network/alcatel/omniswitch/snmp/mode/components/module.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/omniswitch/snmp/mode/components/other.pm b/network/alcatel/omniswitch/snmp/mode/components/other.pm index e2d48cac0..fc5df957a 100644 --- a/network/alcatel/omniswitch/snmp/mode/components/other.pm +++ b/network/alcatel/omniswitch/snmp/mode/components/other.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/omniswitch/snmp/mode/components/port.pm b/network/alcatel/omniswitch/snmp/mode/components/port.pm index 870936d07..9e1399c39 100644 --- a/network/alcatel/omniswitch/snmp/mode/components/port.pm +++ b/network/alcatel/omniswitch/snmp/mode/components/port.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/omniswitch/snmp/mode/components/psu.pm b/network/alcatel/omniswitch/snmp/mode/components/psu.pm index cd87e14d5..e10264e50 100644 --- a/network/alcatel/omniswitch/snmp/mode/components/psu.pm +++ b/network/alcatel/omniswitch/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/omniswitch/snmp/mode/components/resources.pm b/network/alcatel/omniswitch/snmp/mode/components/resources.pm index cbd15b15a..668b59818 100644 --- a/network/alcatel/omniswitch/snmp/mode/components/resources.pm +++ b/network/alcatel/omniswitch/snmp/mode/components/resources.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/omniswitch/snmp/mode/components/sensor.pm b/network/alcatel/omniswitch/snmp/mode/components/sensor.pm index 23bcddfa8..59e916573 100644 --- a/network/alcatel/omniswitch/snmp/mode/components/sensor.pm +++ b/network/alcatel/omniswitch/snmp/mode/components/sensor.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/omniswitch/snmp/mode/components/stack.pm b/network/alcatel/omniswitch/snmp/mode/components/stack.pm index 4bd8f39db..09e6565a7 100644 --- a/network/alcatel/omniswitch/snmp/mode/components/stack.pm +++ b/network/alcatel/omniswitch/snmp/mode/components/stack.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/omniswitch/snmp/mode/components/unknown.pm b/network/alcatel/omniswitch/snmp/mode/components/unknown.pm index 197ea2517..4f1485a33 100644 --- a/network/alcatel/omniswitch/snmp/mode/components/unknown.pm +++ b/network/alcatel/omniswitch/snmp/mode/components/unknown.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/omniswitch/snmp/mode/cpu.pm b/network/alcatel/omniswitch/snmp/mode/cpu.pm index 720a59003..0c1d8b12d 100644 --- a/network/alcatel/omniswitch/snmp/mode/cpu.pm +++ b/network/alcatel/omniswitch/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/omniswitch/snmp/mode/flashmemory.pm b/network/alcatel/omniswitch/snmp/mode/flashmemory.pm index c16bce2a5..af0f86624 100644 --- a/network/alcatel/omniswitch/snmp/mode/flashmemory.pm +++ b/network/alcatel/omniswitch/snmp/mode/flashmemory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/omniswitch/snmp/mode/hardware.pm b/network/alcatel/omniswitch/snmp/mode/hardware.pm index 0d5dfe540..1b5592c06 100644 --- a/network/alcatel/omniswitch/snmp/mode/hardware.pm +++ b/network/alcatel/omniswitch/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/omniswitch/snmp/mode/memory.pm b/network/alcatel/omniswitch/snmp/mode/memory.pm index 9176f3c18..4a6138457 100644 --- a/network/alcatel/omniswitch/snmp/mode/memory.pm +++ b/network/alcatel/omniswitch/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/omniswitch/snmp/plugin.pm b/network/alcatel/omniswitch/snmp/plugin.pm index aa3fbbbe5..1c0ae1178 100644 --- a/network/alcatel/omniswitch/snmp/plugin.pm +++ b/network/alcatel/omniswitch/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/oxe/snmp/mode/domainusage.pm b/network/alcatel/oxe/snmp/mode/domainusage.pm index f9df33de0..fe653f52d 100644 --- a/network/alcatel/oxe/snmp/mode/domainusage.pm +++ b/network/alcatel/oxe/snmp/mode/domainusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/oxe/snmp/mode/pbxrole.pm b/network/alcatel/oxe/snmp/mode/pbxrole.pm index 564568d32..37a6d0cbd 100644 --- a/network/alcatel/oxe/snmp/mode/pbxrole.pm +++ b/network/alcatel/oxe/snmp/mode/pbxrole.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/oxe/snmp/mode/pbxstate.pm b/network/alcatel/oxe/snmp/mode/pbxstate.pm index 3ec1a7683..091806226 100644 --- a/network/alcatel/oxe/snmp/mode/pbxstate.pm +++ b/network/alcatel/oxe/snmp/mode/pbxstate.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/oxe/snmp/plugin.pm b/network/alcatel/oxe/snmp/plugin.pm index d35ccffde..c3c7ee7c9 100644 --- a/network/alcatel/oxe/snmp/plugin.pm +++ b/network/alcatel/oxe/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/pss/1830/snmp/mode/listsap.pm b/network/alcatel/pss/1830/snmp/mode/listsap.pm index 8e4223f1e..b6eaf7462 100644 --- a/network/alcatel/pss/1830/snmp/mode/listsap.pm +++ b/network/alcatel/pss/1830/snmp/mode/listsap.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/pss/1830/snmp/mode/sapqosstats.pm b/network/alcatel/pss/1830/snmp/mode/sapqosstats.pm index 963f497bd..445d4e830 100644 --- a/network/alcatel/pss/1830/snmp/mode/sapqosstats.pm +++ b/network/alcatel/pss/1830/snmp/mode/sapqosstats.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/alcatel/pss/1830/snmp/plugin.pm b/network/alcatel/pss/1830/snmp/plugin.pm index 54ab95e29..4d1f0880e 100644 --- a/network/alcatel/pss/1830/snmp/plugin.pm +++ b/network/alcatel/pss/1830/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/arista/snmp/mode/memory.pm b/network/arista/snmp/mode/memory.pm index 786638057..a94d354b7 100644 --- a/network/arista/snmp/mode/memory.pm +++ b/network/arista/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/arista/snmp/plugin.pm b/network/arista/snmp/plugin.pm index 0f4ff1738..c74e825b7 100644 --- a/network/arista/snmp/plugin.pm +++ b/network/arista/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/arkoon/plugin.pm b/network/arkoon/plugin.pm index 052bf19fe..62da699ec 100644 --- a/network/arkoon/plugin.pm +++ b/network/arkoon/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/aruba/standard/snmp/plugin.pm b/network/aruba/standard/snmp/plugin.pm index 91d0dc02c..47431610b 100644 --- a/network/aruba/standard/snmp/plugin.pm +++ b/network/aruba/standard/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/atrica/snmp/mode/connections.pm b/network/atrica/snmp/mode/connections.pm index 5dd7b6e7f..c05224f7a 100644 --- a/network/atrica/snmp/mode/connections.pm +++ b/network/atrica/snmp/mode/connections.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/atrica/snmp/mode/listconnections.pm b/network/atrica/snmp/mode/listconnections.pm index 7e58338e0..2a7cf690d 100644 --- a/network/atrica/snmp/mode/listconnections.pm +++ b/network/atrica/snmp/mode/listconnections.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/atrica/snmp/plugin.pm b/network/atrica/snmp/plugin.pm index 24611a637..09e1e38f7 100644 --- a/network/atrica/snmp/plugin.pm +++ b/network/atrica/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/audiocodes/snmp/mode/components/fantray.pm b/network/audiocodes/snmp/mode/components/fantray.pm index 984ba78c2..8d069a262 100644 --- a/network/audiocodes/snmp/mode/components/fantray.pm +++ b/network/audiocodes/snmp/mode/components/fantray.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/audiocodes/snmp/mode/components/module.pm b/network/audiocodes/snmp/mode/components/module.pm index 72a9be9fe..e8b51d120 100644 --- a/network/audiocodes/snmp/mode/components/module.pm +++ b/network/audiocodes/snmp/mode/components/module.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/audiocodes/snmp/mode/components/psu.pm b/network/audiocodes/snmp/mode/components/psu.pm index 02870b9cd..5b08de63f 100644 --- a/network/audiocodes/snmp/mode/components/psu.pm +++ b/network/audiocodes/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/audiocodes/snmp/mode/cpu.pm b/network/audiocodes/snmp/mode/cpu.pm index 86475ae57..cc897b566 100644 --- a/network/audiocodes/snmp/mode/cpu.pm +++ b/network/audiocodes/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/audiocodes/snmp/mode/hardware.pm b/network/audiocodes/snmp/mode/hardware.pm index cd029440b..bc21bd2e7 100644 --- a/network/audiocodes/snmp/mode/hardware.pm +++ b/network/audiocodes/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/audiocodes/snmp/mode/listtrunks.pm b/network/audiocodes/snmp/mode/listtrunks.pm index 8f3c81185..6935f97db 100644 --- a/network/audiocodes/snmp/mode/listtrunks.pm +++ b/network/audiocodes/snmp/mode/listtrunks.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/audiocodes/snmp/mode/memory.pm b/network/audiocodes/snmp/mode/memory.pm index bcea3b8da..ef301ba80 100644 --- a/network/audiocodes/snmp/mode/memory.pm +++ b/network/audiocodes/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/audiocodes/snmp/mode/trunkstatus.pm b/network/audiocodes/snmp/mode/trunkstatus.pm index bd4b172f5..d090a3e7e 100644 --- a/network/audiocodes/snmp/mode/trunkstatus.pm +++ b/network/audiocodes/snmp/mode/trunkstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/audiocodes/snmp/plugin.pm b/network/audiocodes/snmp/plugin.pm index f34fc0b63..63e36837e 100644 --- a/network/audiocodes/snmp/plugin.pm +++ b/network/audiocodes/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/beeware/snmp/mode/listreverseproxy.pm b/network/beeware/snmp/mode/listreverseproxy.pm index cbe53b19e..382ee038b 100644 --- a/network/beeware/snmp/mode/listreverseproxy.pm +++ b/network/beeware/snmp/mode/listreverseproxy.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/beeware/snmp/mode/reverseproxyusage.pm b/network/beeware/snmp/mode/reverseproxyusage.pm index bf5eb71ac..1b74a9a02 100644 --- a/network/beeware/snmp/mode/reverseproxyusage.pm +++ b/network/beeware/snmp/mode/reverseproxyusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/beeware/snmp/plugin.pm b/network/beeware/snmp/plugin.pm index 0b63c0a10..36323f8d6 100644 --- a/network/beeware/snmp/plugin.pm +++ b/network/beeware/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/bluecoat/snmp/mode/clientconnections.pm b/network/bluecoat/snmp/mode/clientconnections.pm index aa8d034a8..78f184ccb 100644 --- a/network/bluecoat/snmp/mode/clientconnections.pm +++ b/network/bluecoat/snmp/mode/clientconnections.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/bluecoat/snmp/mode/clientrequests.pm b/network/bluecoat/snmp/mode/clientrequests.pm index 036b5e742..15b9fac27 100644 --- a/network/bluecoat/snmp/mode/clientrequests.pm +++ b/network/bluecoat/snmp/mode/clientrequests.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/bluecoat/snmp/mode/clienttraffic.pm b/network/bluecoat/snmp/mode/clienttraffic.pm index a82741e5b..4a603afb2 100644 --- a/network/bluecoat/snmp/mode/clienttraffic.pm +++ b/network/bluecoat/snmp/mode/clienttraffic.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/bluecoat/snmp/mode/components/disk.pm b/network/bluecoat/snmp/mode/components/disk.pm index 8ca0dcceb..7be387562 100644 --- a/network/bluecoat/snmp/mode/components/disk.pm +++ b/network/bluecoat/snmp/mode/components/disk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/bluecoat/snmp/mode/components/sensor.pm b/network/bluecoat/snmp/mode/components/sensor.pm index 830c94a43..d92e10e33 100644 --- a/network/bluecoat/snmp/mode/components/sensor.pm +++ b/network/bluecoat/snmp/mode/components/sensor.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/bluecoat/snmp/mode/cpu.pm b/network/bluecoat/snmp/mode/cpu.pm index 3c2a05f46..1ff54d861 100644 --- a/network/bluecoat/snmp/mode/cpu.pm +++ b/network/bluecoat/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/bluecoat/snmp/mode/disk.pm b/network/bluecoat/snmp/mode/disk.pm index 575215e0e..11ee42a24 100644 --- a/network/bluecoat/snmp/mode/disk.pm +++ b/network/bluecoat/snmp/mode/disk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/bluecoat/snmp/mode/hardware.pm b/network/bluecoat/snmp/mode/hardware.pm index 7a156c00e..d9e77afff 100644 --- a/network/bluecoat/snmp/mode/hardware.pm +++ b/network/bluecoat/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/bluecoat/snmp/mode/memory.pm b/network/bluecoat/snmp/mode/memory.pm index b90028401..537d43b48 100644 --- a/network/bluecoat/snmp/mode/memory.pm +++ b/network/bluecoat/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/bluecoat/snmp/mode/serverconnections.pm b/network/bluecoat/snmp/mode/serverconnections.pm index b383bf0f7..80185d16c 100644 --- a/network/bluecoat/snmp/mode/serverconnections.pm +++ b/network/bluecoat/snmp/mode/serverconnections.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/bluecoat/snmp/plugin.pm b/network/bluecoat/snmp/plugin.pm index b00e40580..f663b1958 100644 --- a/network/bluecoat/snmp/plugin.pm +++ b/network/bluecoat/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/brocade/snmp/mode/cpu.pm b/network/brocade/snmp/mode/cpu.pm index b58e36880..182348160 100644 --- a/network/brocade/snmp/mode/cpu.pm +++ b/network/brocade/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/brocade/snmp/mode/hardware.pm b/network/brocade/snmp/mode/hardware.pm index 3cb35c319..9d1f373be 100644 --- a/network/brocade/snmp/mode/hardware.pm +++ b/network/brocade/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/brocade/snmp/mode/memory.pm b/network/brocade/snmp/mode/memory.pm index 6ebf64077..54082df69 100644 --- a/network/brocade/snmp/mode/memory.pm +++ b/network/brocade/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/brocade/snmp/plugin.pm b/network/brocade/snmp/plugin.pm index d445cd74f..ea61da471 100644 --- a/network/brocade/snmp/plugin.pm +++ b/network/brocade/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/checkpoint/snmp/mode/components/fan.pm b/network/checkpoint/snmp/mode/components/fan.pm index 6edea5bb4..502b281b5 100644 --- a/network/checkpoint/snmp/mode/components/fan.pm +++ b/network/checkpoint/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/checkpoint/snmp/mode/components/psu.pm b/network/checkpoint/snmp/mode/components/psu.pm index 6b6991dc5..af8407024 100644 --- a/network/checkpoint/snmp/mode/components/psu.pm +++ b/network/checkpoint/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/checkpoint/snmp/mode/components/raiddisk.pm b/network/checkpoint/snmp/mode/components/raiddisk.pm index 075d070ec..f2e46894b 100644 --- a/network/checkpoint/snmp/mode/components/raiddisk.pm +++ b/network/checkpoint/snmp/mode/components/raiddisk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/checkpoint/snmp/mode/components/temperature.pm b/network/checkpoint/snmp/mode/components/temperature.pm index 9f99b8c67..79cd4cfb3 100644 --- a/network/checkpoint/snmp/mode/components/temperature.pm +++ b/network/checkpoint/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/checkpoint/snmp/mode/components/voltage.pm b/network/checkpoint/snmp/mode/components/voltage.pm index 01a9f2a92..e88f72e84 100644 --- a/network/checkpoint/snmp/mode/components/voltage.pm +++ b/network/checkpoint/snmp/mode/components/voltage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/checkpoint/snmp/mode/connections.pm b/network/checkpoint/snmp/mode/connections.pm index e8b82a840..edaaf6eab 100644 --- a/network/checkpoint/snmp/mode/connections.pm +++ b/network/checkpoint/snmp/mode/connections.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/checkpoint/snmp/mode/cpu.pm b/network/checkpoint/snmp/mode/cpu.pm index 0232be381..04fcec41f 100644 --- a/network/checkpoint/snmp/mode/cpu.pm +++ b/network/checkpoint/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/checkpoint/snmp/mode/hardware.pm b/network/checkpoint/snmp/mode/hardware.pm index f411012f4..ecb6bc795 100644 --- a/network/checkpoint/snmp/mode/hardware.pm +++ b/network/checkpoint/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/checkpoint/snmp/mode/hastate.pm b/network/checkpoint/snmp/mode/hastate.pm index 8dee6dbaf..ccc83b294 100644 --- a/network/checkpoint/snmp/mode/hastate.pm +++ b/network/checkpoint/snmp/mode/hastate.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/checkpoint/snmp/mode/memory.pm b/network/checkpoint/snmp/mode/memory.pm index 9216648a9..68ebf63c3 100644 --- a/network/checkpoint/snmp/mode/memory.pm +++ b/network/checkpoint/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/checkpoint/snmp/mode/vpnstatus.pm b/network/checkpoint/snmp/mode/vpnstatus.pm index 8e3d482eb..d4a570b85 100644 --- a/network/checkpoint/snmp/mode/vpnstatus.pm +++ b/network/checkpoint/snmp/mode/vpnstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/checkpoint/snmp/plugin.pm b/network/checkpoint/snmp/plugin.pm index b580c7f29..1f618a913 100644 --- a/network/checkpoint/snmp/plugin.pm +++ b/network/checkpoint/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/WaaS/mode/sessions.pm b/network/cisco/WaaS/mode/sessions.pm index 27ff121af..c59cb26a8 100644 --- a/network/cisco/WaaS/mode/sessions.pm +++ b/network/cisco/WaaS/mode/sessions.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/WaaS/plugin.pm b/network/cisco/WaaS/plugin.pm index 0f24e3499..79d13d515 100644 --- a/network/cisco/WaaS/plugin.pm +++ b/network/cisco/WaaS/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/asa/snmp/mode/failover.pm b/network/cisco/asa/snmp/mode/failover.pm index 287458c5f..dcd8a785e 100644 --- a/network/cisco/asa/snmp/mode/failover.pm +++ b/network/cisco/asa/snmp/mode/failover.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/asa/snmp/plugin.pm b/network/cisco/asa/snmp/plugin.pm index d6dc6df1a..5e2c091e9 100644 --- a/network/cisco/asa/snmp/plugin.pm +++ b/network/cisco/asa/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/callmanager/snmp/mode/ccmusage.pm b/network/cisco/callmanager/snmp/mode/ccmusage.pm index 99fadb87b..52002db2c 100644 --- a/network/cisco/callmanager/snmp/mode/ccmusage.pm +++ b/network/cisco/callmanager/snmp/mode/ccmusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/callmanager/snmp/mode/gatewayusage.pm b/network/cisco/callmanager/snmp/mode/gatewayusage.pm index 57bf999a3..a22e5bf87 100644 --- a/network/cisco/callmanager/snmp/mode/gatewayusage.pm +++ b/network/cisco/callmanager/snmp/mode/gatewayusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/callmanager/snmp/mode/mediadeviceusage.pm b/network/cisco/callmanager/snmp/mode/mediadeviceusage.pm index 3409e5b9d..294d74a3e 100644 --- a/network/cisco/callmanager/snmp/mode/mediadeviceusage.pm +++ b/network/cisco/callmanager/snmp/mode/mediadeviceusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/callmanager/snmp/mode/phoneusage.pm b/network/cisco/callmanager/snmp/mode/phoneusage.pm index c72b51bf0..0b8e24a07 100644 --- a/network/cisco/callmanager/snmp/mode/phoneusage.pm +++ b/network/cisco/callmanager/snmp/mode/phoneusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/callmanager/snmp/plugin.pm b/network/cisco/callmanager/snmp/plugin.pm index 2a943ae1d..b625df51d 100644 --- a/network/cisco/callmanager/snmp/plugin.pm +++ b/network/cisco/callmanager/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/ironport/snmp/mode/components/fan.pm b/network/cisco/ironport/snmp/mode/components/fan.pm index 6f7c42cf1..0e42c6750 100644 --- a/network/cisco/ironport/snmp/mode/components/fan.pm +++ b/network/cisco/ironport/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/ironport/snmp/mode/components/psu.pm b/network/cisco/ironport/snmp/mode/components/psu.pm index b3f6769c4..503f4b339 100644 --- a/network/cisco/ironport/snmp/mode/components/psu.pm +++ b/network/cisco/ironport/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/ironport/snmp/mode/components/raid.pm b/network/cisco/ironport/snmp/mode/components/raid.pm index a28c6d701..35006cc63 100644 --- a/network/cisco/ironport/snmp/mode/components/raid.pm +++ b/network/cisco/ironport/snmp/mode/components/raid.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/ironport/snmp/mode/components/temperature.pm b/network/cisco/ironport/snmp/mode/components/temperature.pm index 0c71028a3..34813e8c3 100644 --- a/network/cisco/ironport/snmp/mode/components/temperature.pm +++ b/network/cisco/ironport/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/ironport/snmp/mode/cpu.pm b/network/cisco/ironport/snmp/mode/cpu.pm index c5a7960c4..d59555203 100644 --- a/network/cisco/ironport/snmp/mode/cpu.pm +++ b/network/cisco/ironport/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/ironport/snmp/mode/hardware.pm b/network/cisco/ironport/snmp/mode/hardware.pm index 11b3c82b5..222d097c2 100644 --- a/network/cisco/ironport/snmp/mode/hardware.pm +++ b/network/cisco/ironport/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/ironport/snmp/mode/keysexpire.pm b/network/cisco/ironport/snmp/mode/keysexpire.pm index fe266afca..a7db9383f 100644 --- a/network/cisco/ironport/snmp/mode/keysexpire.pm +++ b/network/cisco/ironport/snmp/mode/keysexpire.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/ironport/snmp/mode/memory.pm b/network/cisco/ironport/snmp/mode/memory.pm index 13ad6a0ec..f26ee65c6 100644 --- a/network/cisco/ironport/snmp/mode/memory.pm +++ b/network/cisco/ironport/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/ironport/snmp/plugin.pm b/network/cisco/ironport/snmp/plugin.pm index 0ff3946c1..cc2bc984e 100644 --- a/network/cisco/ironport/snmp/plugin.pm +++ b/network/cisco/ironport/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/meraki/cloudcontroller/snmp/mode/deviceusage.pm b/network/cisco/meraki/cloudcontroller/snmp/mode/deviceusage.pm index 29e028b2b..00476152b 100644 --- a/network/cisco/meraki/cloudcontroller/snmp/mode/deviceusage.pm +++ b/network/cisco/meraki/cloudcontroller/snmp/mode/deviceusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/meraki/cloudcontroller/snmp/plugin.pm b/network/cisco/meraki/cloudcontroller/snmp/plugin.pm index a33ebecbe..590277124 100644 --- a/network/cisco/meraki/cloudcontroller/snmp/plugin.pm +++ b/network/cisco/meraki/cloudcontroller/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/prime/restapi/custom/api.pm b/network/cisco/prime/restapi/custom/api.pm index 274acb303..f9ea4e89e 100644 --- a/network/cisco/prime/restapi/custom/api.pm +++ b/network/cisco/prime/restapi/custom/api.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/prime/restapi/mode/apusage.pm b/network/cisco/prime/restapi/mode/apusage.pm index e53b452d7..7f2cd7096 100644 --- a/network/cisco/prime/restapi/mode/apusage.pm +++ b/network/cisco/prime/restapi/mode/apusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/prime/restapi/plugin.pm b/network/cisco/prime/restapi/plugin.pm index fa3a670fc..8a9e5f5cf 100644 --- a/network/cisco/prime/restapi/plugin.pm +++ b/network/cisco/prime/restapi/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/smallbusiness/standard/snmp/plugin.pm b/network/cisco/smallbusiness/standard/snmp/plugin.pm index be4cfe54f..8f0226b9a 100644 --- a/network/cisco/smallbusiness/standard/snmp/plugin.pm +++ b/network/cisco/smallbusiness/standard/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/standard/snmp/plugin.pm b/network/cisco/standard/snmp/plugin.pm index fbc57a62f..6988c44c6 100644 --- a/network/cisco/standard/snmp/plugin.pm +++ b/network/cisco/standard/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/vg/snmp/plugin.pm b/network/cisco/vg/snmp/plugin.pm index 0b79ec114..e250c4cc2 100644 --- a/network/cisco/vg/snmp/plugin.pm +++ b/network/cisco/vg/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cisco/wlc/snmp/plugin.pm b/network/cisco/wlc/snmp/plugin.pm index 965dcc231..dab18cd10 100644 --- a/network/cisco/wlc/snmp/plugin.pm +++ b/network/cisco/wlc/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/citrix/appacceleration/snmp/mode/cpu.pm b/network/citrix/appacceleration/snmp/mode/cpu.pm index c359055bb..b9e088c9a 100644 --- a/network/citrix/appacceleration/snmp/mode/cpu.pm +++ b/network/citrix/appacceleration/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/citrix/appacceleration/snmp/mode/listserviceclass.pm b/network/citrix/appacceleration/snmp/mode/listserviceclass.pm index 32398267d..ec982e67b 100644 --- a/network/citrix/appacceleration/snmp/mode/listserviceclass.pm +++ b/network/citrix/appacceleration/snmp/mode/listserviceclass.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/citrix/appacceleration/snmp/mode/serviceclassusage.pm b/network/citrix/appacceleration/snmp/mode/serviceclassusage.pm index a9d5aa97b..83498a128 100644 --- a/network/citrix/appacceleration/snmp/mode/serviceclassusage.pm +++ b/network/citrix/appacceleration/snmp/mode/serviceclassusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/citrix/appacceleration/snmp/plugin.pm b/network/citrix/appacceleration/snmp/plugin.pm index 0dfacf9b1..88297c8ee 100644 --- a/network/citrix/appacceleration/snmp/plugin.pm +++ b/network/citrix/appacceleration/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/citrix/netscaler/snmp/mode/certificatesexpire.pm b/network/citrix/netscaler/snmp/mode/certificatesexpire.pm index 1b650e39c..e18bb4e86 100644 --- a/network/citrix/netscaler/snmp/mode/certificatesexpire.pm +++ b/network/citrix/netscaler/snmp/mode/certificatesexpire.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/citrix/netscaler/snmp/mode/components/fanspeed.pm b/network/citrix/netscaler/snmp/mode/components/fanspeed.pm index 4ca5567f4..f13dec263 100644 --- a/network/citrix/netscaler/snmp/mode/components/fanspeed.pm +++ b/network/citrix/netscaler/snmp/mode/components/fanspeed.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/citrix/netscaler/snmp/mode/components/psu.pm b/network/citrix/netscaler/snmp/mode/components/psu.pm index 761cc134c..c947ef4c7 100644 --- a/network/citrix/netscaler/snmp/mode/components/psu.pm +++ b/network/citrix/netscaler/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/citrix/netscaler/snmp/mode/components/temperature.pm b/network/citrix/netscaler/snmp/mode/components/temperature.pm index 268f45a7a..cc8091c98 100644 --- a/network/citrix/netscaler/snmp/mode/components/temperature.pm +++ b/network/citrix/netscaler/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/citrix/netscaler/snmp/mode/components/voltage.pm b/network/citrix/netscaler/snmp/mode/components/voltage.pm index f5b72228e..97561616d 100644 --- a/network/citrix/netscaler/snmp/mode/components/voltage.pm +++ b/network/citrix/netscaler/snmp/mode/components/voltage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/citrix/netscaler/snmp/mode/connections.pm b/network/citrix/netscaler/snmp/mode/connections.pm index 75718c11d..d7d158025 100644 --- a/network/citrix/netscaler/snmp/mode/connections.pm +++ b/network/citrix/netscaler/snmp/mode/connections.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/citrix/netscaler/snmp/mode/cpu.pm b/network/citrix/netscaler/snmp/mode/cpu.pm index 86dd9b2ad..0f46cbd09 100644 --- a/network/citrix/netscaler/snmp/mode/cpu.pm +++ b/network/citrix/netscaler/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/citrix/netscaler/snmp/mode/hastate.pm b/network/citrix/netscaler/snmp/mode/hastate.pm index f624abfcc..66f80d922 100644 --- a/network/citrix/netscaler/snmp/mode/hastate.pm +++ b/network/citrix/netscaler/snmp/mode/hastate.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/citrix/netscaler/snmp/mode/health.pm b/network/citrix/netscaler/snmp/mode/health.pm index ef052a3d3..4c6cf2f8f 100644 --- a/network/citrix/netscaler/snmp/mode/health.pm +++ b/network/citrix/netscaler/snmp/mode/health.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/citrix/netscaler/snmp/mode/listvservers.pm b/network/citrix/netscaler/snmp/mode/listvservers.pm index fbeeeeedb..74072ceb7 100644 --- a/network/citrix/netscaler/snmp/mode/listvservers.pm +++ b/network/citrix/netscaler/snmp/mode/listvservers.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/citrix/netscaler/snmp/mode/memory.pm b/network/citrix/netscaler/snmp/mode/memory.pm index 6988f8ff8..d3dddef21 100644 --- a/network/citrix/netscaler/snmp/mode/memory.pm +++ b/network/citrix/netscaler/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/citrix/netscaler/snmp/mode/storage.pm b/network/citrix/netscaler/snmp/mode/storage.pm index cb8dd5bde..1214671ec 100644 --- a/network/citrix/netscaler/snmp/mode/storage.pm +++ b/network/citrix/netscaler/snmp/mode/storage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/citrix/netscaler/snmp/mode/vserverstatus.pm b/network/citrix/netscaler/snmp/mode/vserverstatus.pm index aa5a0584a..19da6d496 100644 --- a/network/citrix/netscaler/snmp/mode/vserverstatus.pm +++ b/network/citrix/netscaler/snmp/mode/vserverstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/citrix/netscaler/snmp/plugin.pm b/network/citrix/netscaler/snmp/plugin.pm index 833f5fcde..d9e36ac9f 100644 --- a/network/citrix/netscaler/snmp/plugin.pm +++ b/network/citrix/netscaler/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/citrix/sdx/snmp/mode/diskusage.pm b/network/citrix/sdx/snmp/mode/diskusage.pm index 44d126b47..6517fd6be 100644 --- a/network/citrix/sdx/snmp/mode/diskusage.pm +++ b/network/citrix/sdx/snmp/mode/diskusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/citrix/sdx/snmp/mode/hardware.pm b/network/citrix/sdx/snmp/mode/hardware.pm index bc870247a..998f61f25 100644 --- a/network/citrix/sdx/snmp/mode/hardware.pm +++ b/network/citrix/sdx/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/citrix/sdx/snmp/mode/srusage.pm b/network/citrix/sdx/snmp/mode/srusage.pm index 8f8dd8bb3..d54f47ca0 100644 --- a/network/citrix/sdx/snmp/mode/srusage.pm +++ b/network/citrix/sdx/snmp/mode/srusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/citrix/sdx/snmp/mode/xenusage.pm b/network/citrix/sdx/snmp/mode/xenusage.pm index 799cd13c4..56b98d730 100644 --- a/network/citrix/sdx/snmp/mode/xenusage.pm +++ b/network/citrix/sdx/snmp/mode/xenusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/citrix/sdx/snmp/plugin.pm b/network/citrix/sdx/snmp/plugin.pm index d019c49c1..2039559f1 100644 --- a/network/citrix/sdx/snmp/plugin.pm +++ b/network/citrix/sdx/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/colubris/snmp/mode/apusage.pm b/network/colubris/snmp/mode/apusage.pm index 9ede7ddbb..fec81e178 100644 --- a/network/colubris/snmp/mode/apusage.pm +++ b/network/colubris/snmp/mode/apusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/colubris/snmp/mode/cpu.pm b/network/colubris/snmp/mode/cpu.pm index d21f38f8f..063dc62a0 100644 --- a/network/colubris/snmp/mode/cpu.pm +++ b/network/colubris/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/colubris/snmp/mode/load.pm b/network/colubris/snmp/mode/load.pm index 7d75dd06f..e1c18f8db 100644 --- a/network/colubris/snmp/mode/load.pm +++ b/network/colubris/snmp/mode/load.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/colubris/snmp/mode/memory.pm b/network/colubris/snmp/mode/memory.pm index 31f7c39ff..095e82ac7 100644 --- a/network/colubris/snmp/mode/memory.pm +++ b/network/colubris/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/colubris/snmp/mode/storage.pm b/network/colubris/snmp/mode/storage.pm index ef6bc1774..5f55b25c8 100644 --- a/network/colubris/snmp/mode/storage.pm +++ b/network/colubris/snmp/mode/storage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/colubris/snmp/plugin.pm b/network/colubris/snmp/plugin.pm index 5fb8332b7..98ac4d996 100644 --- a/network/colubris/snmp/plugin.pm +++ b/network/colubris/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cyberoam/snmp/mode/components/service.pm b/network/cyberoam/snmp/mode/components/service.pm index 6159a7f8e..3c04960a8 100644 --- a/network/cyberoam/snmp/mode/components/service.pm +++ b/network/cyberoam/snmp/mode/components/service.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cyberoam/snmp/mode/cpu.pm b/network/cyberoam/snmp/mode/cpu.pm index 0f4cf04ca..b759a6edd 100644 --- a/network/cyberoam/snmp/mode/cpu.pm +++ b/network/cyberoam/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cyberoam/snmp/mode/memory.pm b/network/cyberoam/snmp/mode/memory.pm index 7b1358d41..74a7ea198 100644 --- a/network/cyberoam/snmp/mode/memory.pm +++ b/network/cyberoam/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cyberoam/snmp/mode/requests.pm b/network/cyberoam/snmp/mode/requests.pm index 8fb803e49..7abdcaf88 100644 --- a/network/cyberoam/snmp/mode/requests.pm +++ b/network/cyberoam/snmp/mode/requests.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cyberoam/snmp/mode/services.pm b/network/cyberoam/snmp/mode/services.pm index a097eb065..c97c7d011 100644 --- a/network/cyberoam/snmp/mode/services.pm +++ b/network/cyberoam/snmp/mode/services.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cyberoam/snmp/mode/storage.pm b/network/cyberoam/snmp/mode/storage.pm index ccad6723e..73bb75e64 100644 --- a/network/cyberoam/snmp/mode/storage.pm +++ b/network/cyberoam/snmp/mode/storage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/cyberoam/snmp/plugin.pm b/network/cyberoam/snmp/plugin.pm index 08501c728..802a1c9c7 100644 --- a/network/cyberoam/snmp/plugin.pm +++ b/network/cyberoam/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/dell/6200/snmp/plugin.pm b/network/dell/6200/snmp/plugin.pm index e321b9244..7585a9c90 100644 --- a/network/dell/6200/snmp/plugin.pm +++ b/network/dell/6200/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/dell/n4000/snmp/plugin.pm b/network/dell/n4000/snmp/plugin.pm index c0a0ad767..d92cb3910 100644 --- a/network/dell/n4000/snmp/plugin.pm +++ b/network/dell/n4000/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/dell/sseries/snmp/plugin.pm b/network/dell/sseries/snmp/plugin.pm index e6a0b1fc3..3e105ce15 100644 --- a/network/dell/sseries/snmp/plugin.pm +++ b/network/dell/sseries/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/digi/anywhereusb/snmp/mode/cpu.pm b/network/digi/anywhereusb/snmp/mode/cpu.pm index 787dac5c8..9aca3137e 100644 --- a/network/digi/anywhereusb/snmp/mode/cpu.pm +++ b/network/digi/anywhereusb/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/digi/anywhereusb/snmp/mode/memory.pm b/network/digi/anywhereusb/snmp/mode/memory.pm index 7232e6940..160d40c59 100644 --- a/network/digi/anywhereusb/snmp/mode/memory.pm +++ b/network/digi/anywhereusb/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/digi/anywhereusb/snmp/plugin.pm b/network/digi/anywhereusb/snmp/plugin.pm index 40db810f4..674cdb7ff 100644 --- a/network/digi/anywhereusb/snmp/plugin.pm +++ b/network/digi/anywhereusb/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/digi/portserverts/snmp/mode/cpu.pm b/network/digi/portserverts/snmp/mode/cpu.pm index 584e8b4cb..d928e1600 100644 --- a/network/digi/portserverts/snmp/mode/cpu.pm +++ b/network/digi/portserverts/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/digi/portserverts/snmp/mode/memory.pm b/network/digi/portserverts/snmp/mode/memory.pm index a4b629703..b80a35c6c 100644 --- a/network/digi/portserverts/snmp/mode/memory.pm +++ b/network/digi/portserverts/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/digi/portserverts/snmp/plugin.pm b/network/digi/portserverts/snmp/plugin.pm index d5eef26c5..f38647de2 100644 --- a/network/digi/portserverts/snmp/plugin.pm +++ b/network/digi/portserverts/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/digi/sarian/snmp/mode/cpu.pm b/network/digi/sarian/snmp/mode/cpu.pm index 361539fc6..755ef5215 100644 --- a/network/digi/sarian/snmp/mode/cpu.pm +++ b/network/digi/sarian/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/digi/sarian/snmp/mode/gprs.pm b/network/digi/sarian/snmp/mode/gprs.pm index 31491dfb1..c9260b584 100644 --- a/network/digi/sarian/snmp/mode/gprs.pm +++ b/network/digi/sarian/snmp/mode/gprs.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/digi/sarian/snmp/mode/memory.pm b/network/digi/sarian/snmp/mode/memory.pm index 8487452ee..1e60a341e 100644 --- a/network/digi/sarian/snmp/mode/memory.pm +++ b/network/digi/sarian/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/digi/sarian/snmp/mode/temperature.pm b/network/digi/sarian/snmp/mode/temperature.pm index 7b348eaec..652b6f389 100644 --- a/network/digi/sarian/snmp/mode/temperature.pm +++ b/network/digi/sarian/snmp/mode/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and temperatureplication monitoring for diff --git a/network/digi/sarian/snmp/plugin.pm b/network/digi/sarian/snmp/plugin.pm index 3d1841625..fb12a5175 100644 --- a/network/digi/sarian/snmp/plugin.pm +++ b/network/digi/sarian/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/dlink/dgs3100/snmp/mode/components/fan.pm b/network/dlink/dgs3100/snmp/mode/components/fan.pm index 7714a43b4..c69ea6097 100644 --- a/network/dlink/dgs3100/snmp/mode/components/fan.pm +++ b/network/dlink/dgs3100/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/dlink/dgs3100/snmp/mode/components/psu.pm b/network/dlink/dgs3100/snmp/mode/components/psu.pm index 5d5060663..2e63d6c68 100644 --- a/network/dlink/dgs3100/snmp/mode/components/psu.pm +++ b/network/dlink/dgs3100/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/dlink/dgs3100/snmp/mode/cpu.pm b/network/dlink/dgs3100/snmp/mode/cpu.pm index 2fd7baa7b..ad2f03818 100644 --- a/network/dlink/dgs3100/snmp/mode/cpu.pm +++ b/network/dlink/dgs3100/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/dlink/dgs3100/snmp/mode/hardware.pm b/network/dlink/dgs3100/snmp/mode/hardware.pm index 7827d8c4f..5603fca67 100644 --- a/network/dlink/dgs3100/snmp/mode/hardware.pm +++ b/network/dlink/dgs3100/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/dlink/dgs3100/snmp/plugin.pm b/network/dlink/dgs3100/snmp/plugin.pm index 2fe6235d0..fcd547e6d 100644 --- a/network/dlink/dgs3100/snmp/plugin.pm +++ b/network/dlink/dgs3100/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/dlink/standard/snmp/mode/components/fan.pm b/network/dlink/standard/snmp/mode/components/fan.pm index cc4270d8c..0f6cd5af1 100644 --- a/network/dlink/standard/snmp/mode/components/fan.pm +++ b/network/dlink/standard/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/dlink/standard/snmp/mode/components/psu.pm b/network/dlink/standard/snmp/mode/components/psu.pm index 0145f6e48..78b092c05 100644 --- a/network/dlink/standard/snmp/mode/components/psu.pm +++ b/network/dlink/standard/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/dlink/standard/snmp/mode/components/temperature.pm b/network/dlink/standard/snmp/mode/components/temperature.pm index d95233bbb..9e2cfb8b5 100644 --- a/network/dlink/standard/snmp/mode/components/temperature.pm +++ b/network/dlink/standard/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/dlink/standard/snmp/mode/cpu.pm b/network/dlink/standard/snmp/mode/cpu.pm index 83ee72c28..f8eccc1ef 100644 --- a/network/dlink/standard/snmp/mode/cpu.pm +++ b/network/dlink/standard/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/dlink/standard/snmp/mode/hardware.pm b/network/dlink/standard/snmp/mode/hardware.pm index b32586770..672abdf80 100644 --- a/network/dlink/standard/snmp/mode/hardware.pm +++ b/network/dlink/standard/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/dlink/standard/snmp/plugin.pm b/network/dlink/standard/snmp/plugin.pm index 455a0e6e2..cd2968914 100644 --- a/network/dlink/standard/snmp/plugin.pm +++ b/network/dlink/standard/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/efficientip/snmp/mode/dhcpusage.pm b/network/efficientip/snmp/mode/dhcpusage.pm index 2859b426f..c3f31c1d4 100644 --- a/network/efficientip/snmp/mode/dhcpusage.pm +++ b/network/efficientip/snmp/mode/dhcpusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/efficientip/snmp/mode/dnsusage.pm b/network/efficientip/snmp/mode/dnsusage.pm index 3a274aea3..534488579 100644 --- a/network/efficientip/snmp/mode/dnsusage.pm +++ b/network/efficientip/snmp/mode/dnsusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/efficientip/snmp/plugin.pm b/network/efficientip/snmp/plugin.pm index 91c3be420..fae65c8fb 100644 --- a/network/efficientip/snmp/plugin.pm +++ b/network/efficientip/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/evertz/AEA47721/snmp/mode/streamstatus.pm b/network/evertz/AEA47721/snmp/mode/streamstatus.pm index 6a8aae4c3..0e0da3cec 100644 --- a/network/evertz/AEA47721/snmp/mode/streamstatus.pm +++ b/network/evertz/AEA47721/snmp/mode/streamstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/evertz/AEA47721/snmp/plugin.pm b/network/evertz/AEA47721/snmp/plugin.pm index 87148cc2a..379e79882 100644 --- a/network/evertz/AEA47721/snmp/plugin.pm +++ b/network/evertz/AEA47721/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/evertz/DA6HDL7700/snmp/mode/videostatus.pm b/network/evertz/DA6HDL7700/snmp/mode/videostatus.pm index 134f4e0e7..40228f1a2 100644 --- a/network/evertz/DA6HDL7700/snmp/mode/videostatus.pm +++ b/network/evertz/DA6HDL7700/snmp/mode/videostatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/evertz/DA6HDL7700/snmp/plugin.pm b/network/evertz/DA6HDL7700/snmp/plugin.pm index 42e83ea5e..0c714b670 100644 --- a/network/evertz/DA6HDL7700/snmp/plugin.pm +++ b/network/evertz/DA6HDL7700/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/evertz/FC7800/snmp/mode/hardware.pm b/network/evertz/FC7800/snmp/mode/hardware.pm index 9e7612fa1..2576e475f 100644 --- a/network/evertz/FC7800/snmp/mode/hardware.pm +++ b/network/evertz/FC7800/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/evertz/FC7800/snmp/plugin.pm b/network/evertz/FC7800/snmp/plugin.pm index 18987093c..ae24e4c53 100644 --- a/network/evertz/FC7800/snmp/plugin.pm +++ b/network/evertz/FC7800/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/extreme/snmp/mode/components/fan.pm b/network/extreme/snmp/mode/components/fan.pm index f8ca2eeee..52fca911c 100644 --- a/network/extreme/snmp/mode/components/fan.pm +++ b/network/extreme/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/extreme/snmp/mode/components/poe.pm b/network/extreme/snmp/mode/components/poe.pm index a9367c1d3..3fa5f2576 100644 --- a/network/extreme/snmp/mode/components/poe.pm +++ b/network/extreme/snmp/mode/components/poe.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/extreme/snmp/mode/components/psu.pm b/network/extreme/snmp/mode/components/psu.pm index 2af8c1e2c..0aeec6c5a 100644 --- a/network/extreme/snmp/mode/components/psu.pm +++ b/network/extreme/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/extreme/snmp/mode/components/slot.pm b/network/extreme/snmp/mode/components/slot.pm index 1b73c83d6..5dd260dbb 100644 --- a/network/extreme/snmp/mode/components/slot.pm +++ b/network/extreme/snmp/mode/components/slot.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/extreme/snmp/mode/components/temperature.pm b/network/extreme/snmp/mode/components/temperature.pm index 52c41ce1e..35764bd6a 100644 --- a/network/extreme/snmp/mode/components/temperature.pm +++ b/network/extreme/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/extreme/snmp/mode/cpu.pm b/network/extreme/snmp/mode/cpu.pm index e7021bc25..6a3da9b09 100644 --- a/network/extreme/snmp/mode/cpu.pm +++ b/network/extreme/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/extreme/snmp/mode/hardware.pm b/network/extreme/snmp/mode/hardware.pm index 127848e06..bd934fbec 100644 --- a/network/extreme/snmp/mode/hardware.pm +++ b/network/extreme/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/extreme/snmp/mode/memory.pm b/network/extreme/snmp/mode/memory.pm index 0f5d80292..159d308f4 100644 --- a/network/extreme/snmp/mode/memory.pm +++ b/network/extreme/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/extreme/snmp/mode/stack.pm b/network/extreme/snmp/mode/stack.pm index fa06eb2ee..7a622855c 100644 --- a/network/extreme/snmp/mode/stack.pm +++ b/network/extreme/snmp/mode/stack.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/extreme/snmp/plugin.pm b/network/extreme/snmp/plugin.pm index c337f4372..1c568deeb 100644 --- a/network/extreme/snmp/plugin.pm +++ b/network/extreme/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/f5/bigip/snmp/mode/components/fan.pm b/network/f5/bigip/snmp/mode/components/fan.pm index 60b21728b..16722ec5b 100644 --- a/network/f5/bigip/snmp/mode/components/fan.pm +++ b/network/f5/bigip/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/f5/bigip/snmp/mode/components/psu.pm b/network/f5/bigip/snmp/mode/components/psu.pm index fb3ac1224..ba64f3b9a 100644 --- a/network/f5/bigip/snmp/mode/components/psu.pm +++ b/network/f5/bigip/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/f5/bigip/snmp/mode/components/temperature.pm b/network/f5/bigip/snmp/mode/components/temperature.pm index ebd2cac2c..4d3d99186 100644 --- a/network/f5/bigip/snmp/mode/components/temperature.pm +++ b/network/f5/bigip/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/f5/bigip/snmp/mode/connections.pm b/network/f5/bigip/snmp/mode/connections.pm index 95bef7211..c4bbbc902 100644 --- a/network/f5/bigip/snmp/mode/connections.pm +++ b/network/f5/bigip/snmp/mode/connections.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/f5/bigip/snmp/mode/failover.pm b/network/f5/bigip/snmp/mode/failover.pm index 82fefe609..948fd3d19 100644 --- a/network/f5/bigip/snmp/mode/failover.pm +++ b/network/f5/bigip/snmp/mode/failover.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/f5/bigip/snmp/mode/hardware.pm b/network/f5/bigip/snmp/mode/hardware.pm index 0ca255cd5..dd3e65dbd 100644 --- a/network/f5/bigip/snmp/mode/hardware.pm +++ b/network/f5/bigip/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/f5/bigip/snmp/mode/listnodes.pm b/network/f5/bigip/snmp/mode/listnodes.pm index ca6a5fa00..d96ad9523 100644 --- a/network/f5/bigip/snmp/mode/listnodes.pm +++ b/network/f5/bigip/snmp/mode/listnodes.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/f5/bigip/snmp/mode/listpools.pm b/network/f5/bigip/snmp/mode/listpools.pm index c2f2ef5f3..cc109385d 100644 --- a/network/f5/bigip/snmp/mode/listpools.pm +++ b/network/f5/bigip/snmp/mode/listpools.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/f5/bigip/snmp/mode/listvirtualservers.pm b/network/f5/bigip/snmp/mode/listvirtualservers.pm index 6e781e32e..3f96317e3 100644 --- a/network/f5/bigip/snmp/mode/listvirtualservers.pm +++ b/network/f5/bigip/snmp/mode/listvirtualservers.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/f5/bigip/snmp/mode/nodestatus.pm b/network/f5/bigip/snmp/mode/nodestatus.pm index b37977d93..0d22b6510 100644 --- a/network/f5/bigip/snmp/mode/nodestatus.pm +++ b/network/f5/bigip/snmp/mode/nodestatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/f5/bigip/snmp/mode/poolstatus.pm b/network/f5/bigip/snmp/mode/poolstatus.pm index 91cc81830..a1449f0a6 100644 --- a/network/f5/bigip/snmp/mode/poolstatus.pm +++ b/network/f5/bigip/snmp/mode/poolstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/f5/bigip/snmp/mode/tmmusage.pm b/network/f5/bigip/snmp/mode/tmmusage.pm index b130108de..3c44bc38d 100644 --- a/network/f5/bigip/snmp/mode/tmmusage.pm +++ b/network/f5/bigip/snmp/mode/tmmusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/f5/bigip/snmp/mode/virtualserverstatus.pm b/network/f5/bigip/snmp/mode/virtualserverstatus.pm index a73f19a9a..b2ab6d60c 100644 --- a/network/f5/bigip/snmp/mode/virtualserverstatus.pm +++ b/network/f5/bigip/snmp/mode/virtualserverstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/f5/bigip/snmp/plugin.pm b/network/f5/bigip/snmp/plugin.pm index 73cd5dcf3..fa257f290 100644 --- a/network/f5/bigip/snmp/plugin.pm +++ b/network/f5/bigip/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/fortinet/fortigate/plugin.pm b/network/fortinet/fortigate/plugin.pm index 9af09f4d8..1503b763a 100644 --- a/network/fortinet/fortigate/plugin.pm +++ b/network/fortinet/fortigate/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/fortinet/fortimanager/snmp/mode/cpu.pm b/network/fortinet/fortimanager/snmp/mode/cpu.pm index 773b9f7bf..5441fcce6 100644 --- a/network/fortinet/fortimanager/snmp/mode/cpu.pm +++ b/network/fortinet/fortimanager/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/fortinet/fortimanager/snmp/mode/devicestatus.pm b/network/fortinet/fortimanager/snmp/mode/devicestatus.pm index 2a2cb40b8..8ea5f20e4 100644 --- a/network/fortinet/fortimanager/snmp/mode/devicestatus.pm +++ b/network/fortinet/fortimanager/snmp/mode/devicestatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/fortinet/fortimanager/snmp/mode/disk.pm b/network/fortinet/fortimanager/snmp/mode/disk.pm index 8cde82c53..b5b46ca1b 100644 --- a/network/fortinet/fortimanager/snmp/mode/disk.pm +++ b/network/fortinet/fortimanager/snmp/mode/disk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/fortinet/fortimanager/snmp/mode/memory.pm b/network/fortinet/fortimanager/snmp/mode/memory.pm index 9c3384d9e..cd2580865 100644 --- a/network/fortinet/fortimanager/snmp/mode/memory.pm +++ b/network/fortinet/fortimanager/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/fortinet/fortimanager/snmp/plugin.pm b/network/fortinet/fortimanager/snmp/plugin.pm index f7bacad03..b3b727900 100644 --- a/network/fortinet/fortimanager/snmp/plugin.pm +++ b/network/fortinet/fortimanager/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/freebox/restapi/custom/api.pm b/network/freebox/restapi/custom/api.pm index b75c9cfaa..35e9b4e1f 100644 --- a/network/freebox/restapi/custom/api.pm +++ b/network/freebox/restapi/custom/api.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/freebox/restapi/mode/dslusage.pm b/network/freebox/restapi/mode/dslusage.pm index cc804e111..612a3b1ac 100644 --- a/network/freebox/restapi/mode/dslusage.pm +++ b/network/freebox/restapi/mode/dslusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/freebox/restapi/mode/netusage.pm b/network/freebox/restapi/mode/netusage.pm index f241dbfb2..f36359f27 100644 --- a/network/freebox/restapi/mode/netusage.pm +++ b/network/freebox/restapi/mode/netusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/freebox/restapi/mode/system.pm b/network/freebox/restapi/mode/system.pm index 4f11eb1ab..d9dcc8105 100644 --- a/network/freebox/restapi/mode/system.pm +++ b/network/freebox/restapi/mode/system.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/freebox/restapi/plugin.pm b/network/freebox/restapi/plugin.pm index e88849059..cfe9a6484 100644 --- a/network/freebox/restapi/plugin.pm +++ b/network/freebox/restapi/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/fritzbox/mode/libgetdata.pm b/network/fritzbox/mode/libgetdata.pm index c94b8a08b..80380b619 100644 --- a/network/fritzbox/mode/libgetdata.pm +++ b/network/fritzbox/mode/libgetdata.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/fritzbox/mode/traffic.pm b/network/fritzbox/mode/traffic.pm index 2f3b1a0b0..972f607d8 100644 --- a/network/fritzbox/mode/traffic.pm +++ b/network/fritzbox/mode/traffic.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/fritzbox/mode/upstatus.pm b/network/fritzbox/mode/upstatus.pm index a7e33e9c1..0bb6afbcc 100644 --- a/network/fritzbox/mode/upstatus.pm +++ b/network/fritzbox/mode/upstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/fritzbox/plugin.pm b/network/fritzbox/plugin.pm index 45dce432d..ca4b174e2 100644 --- a/network/fritzbox/plugin.pm +++ b/network/fritzbox/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/h3c/snmp/mode/components/default.pm b/network/h3c/snmp/mode/components/default.pm index 065e829ab..97eb6a7a4 100644 --- a/network/h3c/snmp/mode/components/default.pm +++ b/network/h3c/snmp/mode/components/default.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/h3c/snmp/mode/components/fan.pm b/network/h3c/snmp/mode/components/fan.pm index b4a38edfe..caf9dfc5c 100644 --- a/network/h3c/snmp/mode/components/fan.pm +++ b/network/h3c/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/h3c/snmp/mode/components/psu.pm b/network/h3c/snmp/mode/components/psu.pm index 5d8c38b5d..3eb487aa1 100644 --- a/network/h3c/snmp/mode/components/psu.pm +++ b/network/h3c/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/h3c/snmp/mode/components/sensor.pm b/network/h3c/snmp/mode/components/sensor.pm index ab08fe13c..60917ec5c 100644 --- a/network/h3c/snmp/mode/components/sensor.pm +++ b/network/h3c/snmp/mode/components/sensor.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/h3c/snmp/mode/cpu.pm b/network/h3c/snmp/mode/cpu.pm index 39e87373f..ea1722c06 100644 --- a/network/h3c/snmp/mode/cpu.pm +++ b/network/h3c/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/h3c/snmp/mode/hardware.pm b/network/h3c/snmp/mode/hardware.pm index 524fb4181..83d2c8544 100644 --- a/network/h3c/snmp/mode/hardware.pm +++ b/network/h3c/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/h3c/snmp/mode/memory.pm b/network/h3c/snmp/mode/memory.pm index c76880d06..5a7620c27 100644 --- a/network/h3c/snmp/mode/memory.pm +++ b/network/h3c/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/h3c/snmp/plugin.pm b/network/h3c/snmp/plugin.pm index 5989ce7f5..5b80c857c 100644 --- a/network/h3c/snmp/plugin.pm +++ b/network/h3c/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hirschmann/standard/snmp/mode/components/fan.pm b/network/hirschmann/standard/snmp/mode/components/fan.pm index e5135a839..26cf36877 100644 --- a/network/hirschmann/standard/snmp/mode/components/fan.pm +++ b/network/hirschmann/standard/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hirschmann/standard/snmp/mode/components/led.pm b/network/hirschmann/standard/snmp/mode/components/led.pm index 6082766c1..66457af55 100644 --- a/network/hirschmann/standard/snmp/mode/components/led.pm +++ b/network/hirschmann/standard/snmp/mode/components/led.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hirschmann/standard/snmp/mode/components/psu.pm b/network/hirschmann/standard/snmp/mode/components/psu.pm index c08bca32f..96773de51 100644 --- a/network/hirschmann/standard/snmp/mode/components/psu.pm +++ b/network/hirschmann/standard/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hirschmann/standard/snmp/mode/components/temperature.pm b/network/hirschmann/standard/snmp/mode/components/temperature.pm index 6028c18aa..9ab3fb3ab 100644 --- a/network/hirschmann/standard/snmp/mode/components/temperature.pm +++ b/network/hirschmann/standard/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hirschmann/standard/snmp/mode/cpu.pm b/network/hirschmann/standard/snmp/mode/cpu.pm index 7a2d3aed7..516419341 100644 --- a/network/hirschmann/standard/snmp/mode/cpu.pm +++ b/network/hirschmann/standard/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hirschmann/standard/snmp/mode/hardware.pm b/network/hirschmann/standard/snmp/mode/hardware.pm index 23df3b016..cadbdb260 100644 --- a/network/hirschmann/standard/snmp/mode/hardware.pm +++ b/network/hirschmann/standard/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hirschmann/standard/snmp/mode/memory.pm b/network/hirschmann/standard/snmp/mode/memory.pm index 0d89a5a24..b0c03c87f 100644 --- a/network/hirschmann/standard/snmp/mode/memory.pm +++ b/network/hirschmann/standard/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hirschmann/standard/snmp/mode/processcount.pm b/network/hirschmann/standard/snmp/mode/processcount.pm index 972499e40..69521845d 100644 --- a/network/hirschmann/standard/snmp/mode/processcount.pm +++ b/network/hirschmann/standard/snmp/mode/processcount.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hirschmann/standard/snmp/plugin.pm b/network/hirschmann/standard/snmp/plugin.pm index ec3a45200..5e7dd1cc3 100644 --- a/network/hirschmann/standard/snmp/plugin.pm +++ b/network/hirschmann/standard/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hp/procurve/snmp/mode/components/fan.pm b/network/hp/procurve/snmp/mode/components/fan.pm index 7d39bde58..2e414cc0b 100644 --- a/network/hp/procurve/snmp/mode/components/fan.pm +++ b/network/hp/procurve/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hp/procurve/snmp/mode/components/psu.pm b/network/hp/procurve/snmp/mode/components/psu.pm index 223d47a47..0f5e5a4a1 100644 --- a/network/hp/procurve/snmp/mode/components/psu.pm +++ b/network/hp/procurve/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hp/procurve/snmp/mode/components/sensor.pm b/network/hp/procurve/snmp/mode/components/sensor.pm index 7b0aa7990..98434e1c7 100644 --- a/network/hp/procurve/snmp/mode/components/sensor.pm +++ b/network/hp/procurve/snmp/mode/components/sensor.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hp/procurve/snmp/mode/cpu.pm b/network/hp/procurve/snmp/mode/cpu.pm index d3ac112a3..4d7c1f0c9 100644 --- a/network/hp/procurve/snmp/mode/cpu.pm +++ b/network/hp/procurve/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hp/procurve/snmp/mode/environment.pm b/network/hp/procurve/snmp/mode/environment.pm index 270bbfa37..a56d680ee 100644 --- a/network/hp/procurve/snmp/mode/environment.pm +++ b/network/hp/procurve/snmp/mode/environment.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hp/procurve/snmp/mode/memory.pm b/network/hp/procurve/snmp/mode/memory.pm index f0af7150f..35fab7a6b 100644 --- a/network/hp/procurve/snmp/mode/memory.pm +++ b/network/hp/procurve/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hp/procurve/snmp/plugin.pm b/network/hp/procurve/snmp/plugin.pm index 6bc47d95e..d036aa98d 100644 --- a/network/hp/procurve/snmp/plugin.pm +++ b/network/hp/procurve/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hp/vc/snmp/mode/components/domain.pm b/network/hp/vc/snmp/mode/components/domain.pm index 1175360cf..43a4d4648 100644 --- a/network/hp/vc/snmp/mode/components/domain.pm +++ b/network/hp/vc/snmp/mode/components/domain.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hp/vc/snmp/mode/components/enclosure.pm b/network/hp/vc/snmp/mode/components/enclosure.pm index ea41ec846..063c85698 100644 --- a/network/hp/vc/snmp/mode/components/enclosure.pm +++ b/network/hp/vc/snmp/mode/components/enclosure.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hp/vc/snmp/mode/components/enet.pm b/network/hp/vc/snmp/mode/components/enet.pm index b447fd8f4..e3fba4918 100644 --- a/network/hp/vc/snmp/mode/components/enet.pm +++ b/network/hp/vc/snmp/mode/components/enet.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hp/vc/snmp/mode/components/fc.pm b/network/hp/vc/snmp/mode/components/fc.pm index 31ad87f3e..ea53577cb 100644 --- a/network/hp/vc/snmp/mode/components/fc.pm +++ b/network/hp/vc/snmp/mode/components/fc.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hp/vc/snmp/mode/components/module.pm b/network/hp/vc/snmp/mode/components/module.pm index 3d9397089..4acb219c4 100644 --- a/network/hp/vc/snmp/mode/components/module.pm +++ b/network/hp/vc/snmp/mode/components/module.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hp/vc/snmp/mode/components/moduleport.pm b/network/hp/vc/snmp/mode/components/moduleport.pm index 46b2ceea7..34f146a0d 100644 --- a/network/hp/vc/snmp/mode/components/moduleport.pm +++ b/network/hp/vc/snmp/mode/components/moduleport.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hp/vc/snmp/mode/components/physicalserver.pm b/network/hp/vc/snmp/mode/components/physicalserver.pm index ce5fa3ef8..462bb87d5 100644 --- a/network/hp/vc/snmp/mode/components/physicalserver.pm +++ b/network/hp/vc/snmp/mode/components/physicalserver.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hp/vc/snmp/mode/components/port.pm b/network/hp/vc/snmp/mode/components/port.pm index 8b9770f2c..bee54db99 100644 --- a/network/hp/vc/snmp/mode/components/port.pm +++ b/network/hp/vc/snmp/mode/components/port.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hp/vc/snmp/mode/components/profile.pm b/network/hp/vc/snmp/mode/components/profile.pm index 8d7b9bc7f..f52a7f5a0 100644 --- a/network/hp/vc/snmp/mode/components/profile.pm +++ b/network/hp/vc/snmp/mode/components/profile.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hp/vc/snmp/mode/components/resources.pm b/network/hp/vc/snmp/mode/components/resources.pm index 16939ee05..d2ac529ec 100644 --- a/network/hp/vc/snmp/mode/components/resources.pm +++ b/network/hp/vc/snmp/mode/components/resources.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hp/vc/snmp/mode/hardware.pm b/network/hp/vc/snmp/mode/hardware.pm index 809f400fa..7110a59d6 100644 --- a/network/hp/vc/snmp/mode/hardware.pm +++ b/network/hp/vc/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/hp/vc/snmp/plugin.pm b/network/hp/vc/snmp/plugin.pm index 425afc94c..1d46c49e6 100644 --- a/network/hp/vc/snmp/plugin.pm +++ b/network/hp/vc/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/huawei/snmp/mode/cpu.pm b/network/huawei/snmp/mode/cpu.pm index b9d702598..3ff5a09b8 100644 --- a/network/huawei/snmp/mode/cpu.pm +++ b/network/huawei/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/huawei/snmp/mode/memory.pm b/network/huawei/snmp/mode/memory.pm index 80a6c324b..baa3aa851 100644 --- a/network/huawei/snmp/mode/memory.pm +++ b/network/huawei/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/huawei/snmp/plugin.pm b/network/huawei/snmp/plugin.pm index 3289100c7..f40593113 100644 --- a/network/huawei/snmp/plugin.pm +++ b/network/huawei/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/infoblox/snmp/mode/cpu.pm b/network/infoblox/snmp/mode/cpu.pm index f9b2e26ad..7a644931f 100644 --- a/network/infoblox/snmp/mode/cpu.pm +++ b/network/infoblox/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/infoblox/snmp/mode/dhcpusage.pm b/network/infoblox/snmp/mode/dhcpusage.pm index 001cf7ae2..6e80d0920 100644 --- a/network/infoblox/snmp/mode/dhcpusage.pm +++ b/network/infoblox/snmp/mode/dhcpusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/infoblox/snmp/mode/dnsusage.pm b/network/infoblox/snmp/mode/dnsusage.pm index 8fee91ba4..099a2672d 100644 --- a/network/infoblox/snmp/mode/dnsusage.pm +++ b/network/infoblox/snmp/mode/dnsusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/infoblox/snmp/mode/memory.pm b/network/infoblox/snmp/mode/memory.pm index 49996cdea..95c57b1c1 100644 --- a/network/infoblox/snmp/mode/memory.pm +++ b/network/infoblox/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/infoblox/snmp/mode/services.pm b/network/infoblox/snmp/mode/services.pm index fd4ef9b09..36b88a1f0 100644 --- a/network/infoblox/snmp/mode/services.pm +++ b/network/infoblox/snmp/mode/services.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/infoblox/snmp/plugin.pm b/network/infoblox/snmp/plugin.pm index dacdb286f..b5c81df0e 100644 --- a/network/infoblox/snmp/plugin.pm +++ b/network/infoblox/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/common/ive/mode/cpu.pm b/network/juniper/common/ive/mode/cpu.pm index 61c8ef999..82ec53d23 100644 --- a/network/juniper/common/ive/mode/cpu.pm +++ b/network/juniper/common/ive/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/common/ive/mode/disk.pm b/network/juniper/common/ive/mode/disk.pm index a054c11d4..5daa72845 100644 --- a/network/juniper/common/ive/mode/disk.pm +++ b/network/juniper/common/ive/mode/disk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/common/ive/mode/logfile.pm b/network/juniper/common/ive/mode/logfile.pm index b5090f02c..b88a57ced 100644 --- a/network/juniper/common/ive/mode/logfile.pm +++ b/network/juniper/common/ive/mode/logfile.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/common/ive/mode/users.pm b/network/juniper/common/ive/mode/users.pm index 90437d080..837551151 100644 --- a/network/juniper/common/ive/mode/users.pm +++ b/network/juniper/common/ive/mode/users.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/common/junos/mode/components/fru.pm b/network/juniper/common/junos/mode/components/fru.pm index 120fa1637..28fb137f9 100644 --- a/network/juniper/common/junos/mode/components/fru.pm +++ b/network/juniper/common/junos/mode/components/fru.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/common/junos/mode/components/operating.pm b/network/juniper/common/junos/mode/components/operating.pm index 74bf6b6cc..248f58e48 100644 --- a/network/juniper/common/junos/mode/components/operating.pm +++ b/network/juniper/common/junos/mode/components/operating.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/common/junos/mode/cpsessions.pm b/network/juniper/common/junos/mode/cpsessions.pm index 77900043f..58b4d1fa8 100644 --- a/network/juniper/common/junos/mode/cpsessions.pm +++ b/network/juniper/common/junos/mode/cpsessions.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/common/junos/mode/cpuforwarding.pm b/network/juniper/common/junos/mode/cpuforwarding.pm index 59a97662d..39d8b1fe9 100644 --- a/network/juniper/common/junos/mode/cpuforwarding.pm +++ b/network/juniper/common/junos/mode/cpuforwarding.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/common/junos/mode/cpurouting.pm b/network/juniper/common/junos/mode/cpurouting.pm index 57f2e31cc..a9591afb6 100644 --- a/network/juniper/common/junos/mode/cpurouting.pm +++ b/network/juniper/common/junos/mode/cpurouting.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/common/junos/mode/flowsessions.pm b/network/juniper/common/junos/mode/flowsessions.pm index a00af99ee..612c90ae4 100644 --- a/network/juniper/common/junos/mode/flowsessions.pm +++ b/network/juniper/common/junos/mode/flowsessions.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/common/junos/mode/hardware.pm b/network/juniper/common/junos/mode/hardware.pm index 86204080b..40183fe68 100644 --- a/network/juniper/common/junos/mode/hardware.pm +++ b/network/juniper/common/junos/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/common/junos/mode/memoryforwarding.pm b/network/juniper/common/junos/mode/memoryforwarding.pm index 3512d3066..b4df187f6 100644 --- a/network/juniper/common/junos/mode/memoryforwarding.pm +++ b/network/juniper/common/junos/mode/memoryforwarding.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/common/junos/mode/memoryrouting.pm b/network/juniper/common/junos/mode/memoryrouting.pm index c5d135eb2..70ae7e39e 100644 --- a/network/juniper/common/junos/mode/memoryrouting.pm +++ b/network/juniper/common/junos/mode/memoryrouting.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/common/screenos/snmp/mode/components/fan.pm b/network/juniper/common/screenos/snmp/mode/components/fan.pm index 37daf4c3a..1fd3f64dd 100644 --- a/network/juniper/common/screenos/snmp/mode/components/fan.pm +++ b/network/juniper/common/screenos/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/common/screenos/snmp/mode/components/module.pm b/network/juniper/common/screenos/snmp/mode/components/module.pm index 41588f971..e7df8c88e 100644 --- a/network/juniper/common/screenos/snmp/mode/components/module.pm +++ b/network/juniper/common/screenos/snmp/mode/components/module.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/common/screenos/snmp/mode/components/psu.pm b/network/juniper/common/screenos/snmp/mode/components/psu.pm index 361769bf0..3c7fca895 100644 --- a/network/juniper/common/screenos/snmp/mode/components/psu.pm +++ b/network/juniper/common/screenos/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/common/screenos/snmp/mode/components/temperature.pm b/network/juniper/common/screenos/snmp/mode/components/temperature.pm index 1c5c7778e..1354c07b9 100644 --- a/network/juniper/common/screenos/snmp/mode/components/temperature.pm +++ b/network/juniper/common/screenos/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/common/screenos/snmp/mode/cpu.pm b/network/juniper/common/screenos/snmp/mode/cpu.pm index ab7c0759d..126317243 100644 --- a/network/juniper/common/screenos/snmp/mode/cpu.pm +++ b/network/juniper/common/screenos/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/common/screenos/snmp/mode/hardware.pm b/network/juniper/common/screenos/snmp/mode/hardware.pm index a8f573c21..c98866e58 100644 --- a/network/juniper/common/screenos/snmp/mode/hardware.pm +++ b/network/juniper/common/screenos/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/common/screenos/snmp/mode/memory.pm b/network/juniper/common/screenos/snmp/mode/memory.pm index b9290d578..312b59728 100644 --- a/network/juniper/common/screenos/snmp/mode/memory.pm +++ b/network/juniper/common/screenos/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/common/screenos/snmp/mode/sessions.pm b/network/juniper/common/screenos/snmp/mode/sessions.pm index 6c1b89496..cc7ebead1 100644 --- a/network/juniper/common/screenos/snmp/mode/sessions.pm +++ b/network/juniper/common/screenos/snmp/mode/sessions.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/ex/plugin.pm b/network/juniper/ex/plugin.pm index 05f0c3f24..ae81b28f3 100644 --- a/network/juniper/ex/plugin.pm +++ b/network/juniper/ex/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/ggsn/mode/apnstats.pm b/network/juniper/ggsn/mode/apnstats.pm index 3f0fab829..4d9ab2233 100644 --- a/network/juniper/ggsn/mode/apnstats.pm +++ b/network/juniper/ggsn/mode/apnstats.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/ggsn/mode/globalstats.pm b/network/juniper/ggsn/mode/globalstats.pm index 6a9c67b95..895ef393d 100644 --- a/network/juniper/ggsn/mode/globalstats.pm +++ b/network/juniper/ggsn/mode/globalstats.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/ggsn/plugin.pm b/network/juniper/ggsn/plugin.pm index 143114ed9..e2e2eaef3 100644 --- a/network/juniper/ggsn/plugin.pm +++ b/network/juniper/ggsn/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/isg/snmp/plugin.pm b/network/juniper/isg/snmp/plugin.pm index 130f4e62a..915f186c6 100644 --- a/network/juniper/isg/snmp/plugin.pm +++ b/network/juniper/isg/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/mag/mode/bladetemperature.pm b/network/juniper/mag/mode/bladetemperature.pm index 3050268a0..f1906c854 100644 --- a/network/juniper/mag/mode/bladetemperature.pm +++ b/network/juniper/mag/mode/bladetemperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/mag/plugin.pm b/network/juniper/mag/plugin.pm index b7401621c..337574887 100644 --- a/network/juniper/mag/plugin.pm +++ b/network/juniper/mag/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/mseries/plugin.pm b/network/juniper/mseries/plugin.pm index f046df89f..ce71c95ce 100644 --- a/network/juniper/mseries/plugin.pm +++ b/network/juniper/mseries/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/sa/plugin.pm b/network/juniper/sa/plugin.pm index 500f08b06..3902b5004 100644 --- a/network/juniper/sa/plugin.pm +++ b/network/juniper/sa/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/srx/plugin.pm b/network/juniper/srx/plugin.pm index 758aeb94a..50cb3449b 100644 --- a/network/juniper/srx/plugin.pm +++ b/network/juniper/srx/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/juniper/ssg/snmp/plugin.pm b/network/juniper/ssg/snmp/plugin.pm index 3dad3f014..460b41dbc 100644 --- a/network/juniper/ssg/snmp/plugin.pm +++ b/network/juniper/ssg/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/kemp/snmp/mode/hastatus.pm b/network/kemp/snmp/mode/hastatus.pm index 518c2e44e..3f5c33c64 100644 --- a/network/kemp/snmp/mode/hastatus.pm +++ b/network/kemp/snmp/mode/hastatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/kemp/snmp/mode/listvs.pm b/network/kemp/snmp/mode/listvs.pm index c15726f22..8bf7d152e 100644 --- a/network/kemp/snmp/mode/listvs.pm +++ b/network/kemp/snmp/mode/listvs.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/kemp/snmp/mode/rsstatus.pm b/network/kemp/snmp/mode/rsstatus.pm index 8922b13fb..d86ae4cb6 100644 --- a/network/kemp/snmp/mode/rsstatus.pm +++ b/network/kemp/snmp/mode/rsstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/kemp/snmp/mode/vsstatus.pm b/network/kemp/snmp/mode/vsstatus.pm index 9fd35e493..fc918962d 100644 --- a/network/kemp/snmp/mode/vsstatus.pm +++ b/network/kemp/snmp/mode/vsstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/kemp/snmp/plugin.pm b/network/kemp/snmp/plugin.pm index 77b04a84c..f5bd5c3be 100644 --- a/network/kemp/snmp/plugin.pm +++ b/network/kemp/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/netgear/mseries/snmp/mode/components/fan.pm b/network/netgear/mseries/snmp/mode/components/fan.pm index 04ab649b7..e6b3ecb40 100644 --- a/network/netgear/mseries/snmp/mode/components/fan.pm +++ b/network/netgear/mseries/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/netgear/mseries/snmp/mode/components/psu.pm b/network/netgear/mseries/snmp/mode/components/psu.pm index e7e0ef28a..321b13383 100644 --- a/network/netgear/mseries/snmp/mode/components/psu.pm +++ b/network/netgear/mseries/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/netgear/mseries/snmp/mode/components/temperature.pm b/network/netgear/mseries/snmp/mode/components/temperature.pm index 36a1a6603..f06e24458 100644 --- a/network/netgear/mseries/snmp/mode/components/temperature.pm +++ b/network/netgear/mseries/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/netgear/mseries/snmp/mode/cpu.pm b/network/netgear/mseries/snmp/mode/cpu.pm index 4ad787a62..4131081b6 100644 --- a/network/netgear/mseries/snmp/mode/cpu.pm +++ b/network/netgear/mseries/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/netgear/mseries/snmp/mode/hardware.pm b/network/netgear/mseries/snmp/mode/hardware.pm index 3f48cfb07..f2b762acd 100644 --- a/network/netgear/mseries/snmp/mode/hardware.pm +++ b/network/netgear/mseries/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/netgear/mseries/snmp/mode/memory.pm b/network/netgear/mseries/snmp/mode/memory.pm index d2e2e646e..b94f15188 100644 --- a/network/netgear/mseries/snmp/mode/memory.pm +++ b/network/netgear/mseries/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/netgear/mseries/snmp/plugin.pm b/network/netgear/mseries/snmp/plugin.pm index 454375a16..f58113040 100644 --- a/network/netgear/mseries/snmp/plugin.pm +++ b/network/netgear/mseries/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/nokia/timos/snmp/mode/bgpusage.pm b/network/nokia/timos/snmp/mode/bgpusage.pm index abbefca8f..3f80717bc 100644 --- a/network/nokia/timos/snmp/mode/bgpusage.pm +++ b/network/nokia/timos/snmp/mode/bgpusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/nokia/timos/snmp/mode/cpu.pm b/network/nokia/timos/snmp/mode/cpu.pm index cb642449b..a860be2f1 100644 --- a/network/nokia/timos/snmp/mode/cpu.pm +++ b/network/nokia/timos/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/nokia/timos/snmp/mode/hardware.pm b/network/nokia/timos/snmp/mode/hardware.pm index 5721aec2b..211d4a238 100644 --- a/network/nokia/timos/snmp/mode/hardware.pm +++ b/network/nokia/timos/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/nokia/timos/snmp/mode/isisusage.pm b/network/nokia/timos/snmp/mode/isisusage.pm index 595a34894..1210c729b 100644 --- a/network/nokia/timos/snmp/mode/isisusage.pm +++ b/network/nokia/timos/snmp/mode/isisusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/nokia/timos/snmp/mode/l2tpusage.pm b/network/nokia/timos/snmp/mode/l2tpusage.pm index 24526d6ae..9442369fd 100644 --- a/network/nokia/timos/snmp/mode/l2tpusage.pm +++ b/network/nokia/timos/snmp/mode/l2tpusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/nokia/timos/snmp/mode/ldpusage.pm b/network/nokia/timos/snmp/mode/ldpusage.pm index 4947db849..17d547a9f 100644 --- a/network/nokia/timos/snmp/mode/ldpusage.pm +++ b/network/nokia/timos/snmp/mode/ldpusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/nokia/timos/snmp/mode/listbgp.pm b/network/nokia/timos/snmp/mode/listbgp.pm index fc07a6960..e530ac928 100644 --- a/network/nokia/timos/snmp/mode/listbgp.pm +++ b/network/nokia/timos/snmp/mode/listbgp.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/nokia/timos/snmp/mode/listisis.pm b/network/nokia/timos/snmp/mode/listisis.pm index 41f32c0f2..6bfac5ea3 100644 --- a/network/nokia/timos/snmp/mode/listisis.pm +++ b/network/nokia/timos/snmp/mode/listisis.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/nokia/timos/snmp/mode/listldp.pm b/network/nokia/timos/snmp/mode/listldp.pm index c0686433c..4015391d6 100644 --- a/network/nokia/timos/snmp/mode/listldp.pm +++ b/network/nokia/timos/snmp/mode/listldp.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/nokia/timos/snmp/mode/listsap.pm b/network/nokia/timos/snmp/mode/listsap.pm index dff5ee06a..5a02e35f9 100644 --- a/network/nokia/timos/snmp/mode/listsap.pm +++ b/network/nokia/timos/snmp/mode/listsap.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/nokia/timos/snmp/mode/listvrtr.pm b/network/nokia/timos/snmp/mode/listvrtr.pm index 8250192f3..812c6ed4e 100644 --- a/network/nokia/timos/snmp/mode/listvrtr.pm +++ b/network/nokia/timos/snmp/mode/listvrtr.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/nokia/timos/snmp/mode/memory.pm b/network/nokia/timos/snmp/mode/memory.pm index 9b59ba400..bd012f6bd 100644 --- a/network/nokia/timos/snmp/mode/memory.pm +++ b/network/nokia/timos/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/nokia/timos/snmp/mode/sapusage.pm b/network/nokia/timos/snmp/mode/sapusage.pm index 60cf7561e..725c15ec4 100644 --- a/network/nokia/timos/snmp/mode/sapusage.pm +++ b/network/nokia/timos/snmp/mode/sapusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/nokia/timos/snmp/plugin.pm b/network/nokia/timos/snmp/plugin.pm index 2e13bdccc..e6c97f03d 100644 --- a/network/nokia/timos/snmp/plugin.pm +++ b/network/nokia/timos/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/nortel/standard/snmp/mode/components/card.pm b/network/nortel/standard/snmp/mode/components/card.pm index 95c231277..01e6d8ca0 100644 --- a/network/nortel/standard/snmp/mode/components/card.pm +++ b/network/nortel/standard/snmp/mode/components/card.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/nortel/standard/snmp/mode/components/entity.pm b/network/nortel/standard/snmp/mode/components/entity.pm index db6e95539..d7ef1d0dd 100644 --- a/network/nortel/standard/snmp/mode/components/entity.pm +++ b/network/nortel/standard/snmp/mode/components/entity.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/nortel/standard/snmp/mode/components/fan.pm b/network/nortel/standard/snmp/mode/components/fan.pm index 6363c429d..4c31d23e7 100644 --- a/network/nortel/standard/snmp/mode/components/fan.pm +++ b/network/nortel/standard/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/nortel/standard/snmp/mode/components/psu.pm b/network/nortel/standard/snmp/mode/components/psu.pm index 692be94ae..cd433a957 100644 --- a/network/nortel/standard/snmp/mode/components/psu.pm +++ b/network/nortel/standard/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/nortel/standard/snmp/mode/components/resources.pm b/network/nortel/standard/snmp/mode/components/resources.pm index fdc7af1ad..17ad5d69a 100644 --- a/network/nortel/standard/snmp/mode/components/resources.pm +++ b/network/nortel/standard/snmp/mode/components/resources.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/nortel/standard/snmp/mode/components/temperature.pm b/network/nortel/standard/snmp/mode/components/temperature.pm index 2a2c0975a..74b3c9f29 100644 --- a/network/nortel/standard/snmp/mode/components/temperature.pm +++ b/network/nortel/standard/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/nortel/standard/snmp/mode/cpu.pm b/network/nortel/standard/snmp/mode/cpu.pm index 26ec3f8a3..8e41bd62b 100644 --- a/network/nortel/standard/snmp/mode/cpu.pm +++ b/network/nortel/standard/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/nortel/standard/snmp/mode/hardware.pm b/network/nortel/standard/snmp/mode/hardware.pm index 5f984d13b..fa7d56f97 100644 --- a/network/nortel/standard/snmp/mode/hardware.pm +++ b/network/nortel/standard/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/nortel/standard/snmp/mode/memory.pm b/network/nortel/standard/snmp/mode/memory.pm index 23d3b9f43..82d63e4f9 100644 --- a/network/nortel/standard/snmp/mode/memory.pm +++ b/network/nortel/standard/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/nortel/standard/snmp/plugin.pm b/network/nortel/standard/snmp/plugin.pm index 69909d258..e8a9adeaa 100644 --- a/network/nortel/standard/snmp/plugin.pm +++ b/network/nortel/standard/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/oneaccess/snmp/mode/cpu.pm b/network/oneaccess/snmp/mode/cpu.pm index bea0f1063..608f74156 100644 --- a/network/oneaccess/snmp/mode/cpu.pm +++ b/network/oneaccess/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/oneaccess/snmp/mode/memory.pm b/network/oneaccess/snmp/mode/memory.pm index e81ec5392..dee7b786f 100644 --- a/network/oneaccess/snmp/mode/memory.pm +++ b/network/oneaccess/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/oneaccess/snmp/plugin.pm b/network/oneaccess/snmp/plugin.pm index 59956bf3a..8d6dd8fd8 100644 --- a/network/oneaccess/snmp/plugin.pm +++ b/network/oneaccess/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/oracle/infiniband/snmp/mode/infinibandusage.pm b/network/oracle/infiniband/snmp/mode/infinibandusage.pm index 52aea1cdb..eb5236e63 100644 --- a/network/oracle/infiniband/snmp/mode/infinibandusage.pm +++ b/network/oracle/infiniband/snmp/mode/infinibandusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/oracle/infiniband/snmp/mode/listinfinibands.pm b/network/oracle/infiniband/snmp/mode/listinfinibands.pm index 16dc3c657..86e1085ba 100644 --- a/network/oracle/infiniband/snmp/mode/listinfinibands.pm +++ b/network/oracle/infiniband/snmp/mode/listinfinibands.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/oracle/infiniband/snmp/plugin.pm b/network/oracle/infiniband/snmp/plugin.pm index bb8e8ee86..658329db8 100644 --- a/network/oracle/infiniband/snmp/plugin.pm +++ b/network/oracle/infiniband/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/oracle/otd/snmp/mode/listvservers.pm b/network/oracle/otd/snmp/mode/listvservers.pm index c73e83437..d8cfcc622 100644 --- a/network/oracle/otd/snmp/mode/listvservers.pm +++ b/network/oracle/otd/snmp/mode/listvservers.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/oracle/otd/snmp/mode/vserverusage.pm b/network/oracle/otd/snmp/mode/vserverusage.pm index 414989a9d..2324a0d49 100644 --- a/network/oracle/otd/snmp/mode/vserverusage.pm +++ b/network/oracle/otd/snmp/mode/vserverusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/oracle/otd/snmp/plugin.pm b/network/oracle/otd/snmp/plugin.pm index 855ecbf50..713fda872 100644 --- a/network/oracle/otd/snmp/plugin.pm +++ b/network/oracle/otd/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/paloalto/snmp/mode/clusterstatus.pm b/network/paloalto/snmp/mode/clusterstatus.pm index c61805748..0acc5cb16 100644 --- a/network/paloalto/snmp/mode/clusterstatus.pm +++ b/network/paloalto/snmp/mode/clusterstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/paloalto/snmp/mode/memory.pm b/network/paloalto/snmp/mode/memory.pm index 4384a87f7..ffea4d0fd 100644 --- a/network/paloalto/snmp/mode/memory.pm +++ b/network/paloalto/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/paloalto/snmp/mode/panorama.pm b/network/paloalto/snmp/mode/panorama.pm index 271c7d89b..c4c0476e7 100644 --- a/network/paloalto/snmp/mode/panorama.pm +++ b/network/paloalto/snmp/mode/panorama.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/paloalto/snmp/mode/sessions.pm b/network/paloalto/snmp/mode/sessions.pm index 33e2578b9..05cc01748 100644 --- a/network/paloalto/snmp/mode/sessions.pm +++ b/network/paloalto/snmp/mode/sessions.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/paloalto/snmp/plugin.pm b/network/paloalto/snmp/plugin.pm index 42e4a13cb..f18a0b3e4 100644 --- a/network/paloalto/snmp/plugin.pm +++ b/network/paloalto/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/polycom/rmx/snmp/mode/components/board.pm b/network/polycom/rmx/snmp/mode/components/board.pm index a16b26526..7c62f5805 100644 --- a/network/polycom/rmx/snmp/mode/components/board.pm +++ b/network/polycom/rmx/snmp/mode/components/board.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/polycom/rmx/snmp/mode/components/fan.pm b/network/polycom/rmx/snmp/mode/components/fan.pm index 3f11fed17..a7148b0d5 100644 --- a/network/polycom/rmx/snmp/mode/components/fan.pm +++ b/network/polycom/rmx/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/polycom/rmx/snmp/mode/components/psu.pm b/network/polycom/rmx/snmp/mode/components/psu.pm index 07eab4077..9db25afe3 100644 --- a/network/polycom/rmx/snmp/mode/components/psu.pm +++ b/network/polycom/rmx/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/polycom/rmx/snmp/mode/hardware.pm b/network/polycom/rmx/snmp/mode/hardware.pm index 2ef7c7100..61c7710ef 100644 --- a/network/polycom/rmx/snmp/mode/hardware.pm +++ b/network/polycom/rmx/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/polycom/rmx/snmp/mode/videoconferencingusage.pm b/network/polycom/rmx/snmp/mode/videoconferencingusage.pm index 9a32843e6..735ece228 100644 --- a/network/polycom/rmx/snmp/mode/videoconferencingusage.pm +++ b/network/polycom/rmx/snmp/mode/videoconferencingusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/polycom/rmx/snmp/plugin.pm b/network/polycom/rmx/snmp/plugin.pm index 6d6076bfc..b33d27419 100644 --- a/network/polycom/rmx/snmp/plugin.pm +++ b/network/polycom/rmx/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/radware/alteon/snmp/mode/cpu.pm b/network/radware/alteon/snmp/mode/cpu.pm index 2f74dcacd..dd819f9d4 100644 --- a/network/radware/alteon/snmp/mode/cpu.pm +++ b/network/radware/alteon/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/radware/alteon/snmp/mode/hardware.pm b/network/radware/alteon/snmp/mode/hardware.pm index dfa3bee60..0d36ca80c 100644 --- a/network/radware/alteon/snmp/mode/hardware.pm +++ b/network/radware/alteon/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/radware/alteon/snmp/mode/listvservers.pm b/network/radware/alteon/snmp/mode/listvservers.pm index 4bd3e5a1d..663affdc4 100644 --- a/network/radware/alteon/snmp/mode/listvservers.pm +++ b/network/radware/alteon/snmp/mode/listvservers.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/radware/alteon/snmp/mode/memory.pm b/network/radware/alteon/snmp/mode/memory.pm index 5798cd1c4..edae12751 100644 --- a/network/radware/alteon/snmp/mode/memory.pm +++ b/network/radware/alteon/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/radware/alteon/snmp/mode/vserverstatus.pm b/network/radware/alteon/snmp/mode/vserverstatus.pm index a26209f6f..a8ca06cf5 100644 --- a/network/radware/alteon/snmp/mode/vserverstatus.pm +++ b/network/radware/alteon/snmp/mode/vserverstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/radware/alteon/snmp/plugin.pm b/network/radware/alteon/snmp/plugin.pm index fafb8bea0..0890d7dcd 100644 --- a/network/radware/alteon/snmp/plugin.pm +++ b/network/radware/alteon/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/raisecom/snmp/mode/components/fan.pm b/network/raisecom/snmp/mode/components/fan.pm index f75b3ca9b..9f129c53a 100644 --- a/network/raisecom/snmp/mode/components/fan.pm +++ b/network/raisecom/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/raisecom/snmp/mode/components/temperature.pm b/network/raisecom/snmp/mode/components/temperature.pm index 03b5844a3..13a3cb9d6 100644 --- a/network/raisecom/snmp/mode/components/temperature.pm +++ b/network/raisecom/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/raisecom/snmp/mode/components/voltage.pm b/network/raisecom/snmp/mode/components/voltage.pm index af685576c..e3bbea28b 100644 --- a/network/raisecom/snmp/mode/components/voltage.pm +++ b/network/raisecom/snmp/mode/components/voltage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/raisecom/snmp/mode/cpu.pm b/network/raisecom/snmp/mode/cpu.pm index f95f06f03..d504d377e 100644 --- a/network/raisecom/snmp/mode/cpu.pm +++ b/network/raisecom/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/raisecom/snmp/mode/hardware.pm b/network/raisecom/snmp/mode/hardware.pm index 45be0e383..e9dac8d4b 100644 --- a/network/raisecom/snmp/mode/hardware.pm +++ b/network/raisecom/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/raisecom/snmp/mode/memory.pm b/network/raisecom/snmp/mode/memory.pm index 58e1cfa2e..b1ae559da 100644 --- a/network/raisecom/snmp/mode/memory.pm +++ b/network/raisecom/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/raisecom/snmp/plugin.pm b/network/raisecom/snmp/plugin.pm index bcfde70be..b421ca351 100644 --- a/network/raisecom/snmp/plugin.pm +++ b/network/raisecom/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/redback/snmp/mode/components/disk.pm b/network/redback/snmp/mode/components/disk.pm index 726f6098d..6196b6fae 100644 --- a/network/redback/snmp/mode/components/disk.pm +++ b/network/redback/snmp/mode/components/disk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/redback/snmp/mode/components/fan.pm b/network/redback/snmp/mode/components/fan.pm index a17169583..ec35c08ce 100644 --- a/network/redback/snmp/mode/components/fan.pm +++ b/network/redback/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/redback/snmp/mode/components/psu.pm b/network/redback/snmp/mode/components/psu.pm index ddc495993..eb55e9ad6 100644 --- a/network/redback/snmp/mode/components/psu.pm +++ b/network/redback/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/redback/snmp/mode/components/temperature.pm b/network/redback/snmp/mode/components/temperature.pm index 8b8b9beb8..fef25348f 100644 --- a/network/redback/snmp/mode/components/temperature.pm +++ b/network/redback/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/redback/snmp/mode/components/voltage.pm b/network/redback/snmp/mode/components/voltage.pm index 649e4ea4f..49bb8d563 100644 --- a/network/redback/snmp/mode/components/voltage.pm +++ b/network/redback/snmp/mode/components/voltage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/redback/snmp/mode/cpu.pm b/network/redback/snmp/mode/cpu.pm index 31af9fb1c..b72338bd9 100644 --- a/network/redback/snmp/mode/cpu.pm +++ b/network/redback/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/redback/snmp/mode/disk.pm b/network/redback/snmp/mode/disk.pm index 61ebd9998..4cc7fc7bf 100644 --- a/network/redback/snmp/mode/disk.pm +++ b/network/redback/snmp/mode/disk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/redback/snmp/mode/hardware.pm b/network/redback/snmp/mode/hardware.pm index 3c6533512..fb20c35fa 100644 --- a/network/redback/snmp/mode/hardware.pm +++ b/network/redback/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/redback/snmp/mode/memory.pm b/network/redback/snmp/mode/memory.pm index ee0fd5131..859de0817 100644 --- a/network/redback/snmp/mode/memory.pm +++ b/network/redback/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/redback/snmp/plugin.pm b/network/redback/snmp/plugin.pm index 420ae0f28..3ddcb26d9 100644 --- a/network/redback/snmp/plugin.pm +++ b/network/redback/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/riverbed/steelhead/snmp/mode/bwoptimization.pm b/network/riverbed/steelhead/snmp/mode/bwoptimization.pm index e43beeaee..97ebadaf2 100644 --- a/network/riverbed/steelhead/snmp/mode/bwoptimization.pm +++ b/network/riverbed/steelhead/snmp/mode/bwoptimization.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/riverbed/steelhead/snmp/mode/bwpassthrough.pm b/network/riverbed/steelhead/snmp/mode/bwpassthrough.pm index 2560dfae1..be51fd6a1 100644 --- a/network/riverbed/steelhead/snmp/mode/bwpassthrough.pm +++ b/network/riverbed/steelhead/snmp/mode/bwpassthrough.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/riverbed/steelhead/snmp/mode/connections.pm b/network/riverbed/steelhead/snmp/mode/connections.pm index 7280f89af..acbde2d78 100644 --- a/network/riverbed/steelhead/snmp/mode/connections.pm +++ b/network/riverbed/steelhead/snmp/mode/connections.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/riverbed/steelhead/snmp/mode/diskutilization.pm b/network/riverbed/steelhead/snmp/mode/diskutilization.pm index 1378af005..59cdc50f2 100644 --- a/network/riverbed/steelhead/snmp/mode/diskutilization.pm +++ b/network/riverbed/steelhead/snmp/mode/diskutilization.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/riverbed/steelhead/snmp/mode/health.pm b/network/riverbed/steelhead/snmp/mode/health.pm index a7aa0125b..1a1073e9d 100644 --- a/network/riverbed/steelhead/snmp/mode/health.pm +++ b/network/riverbed/steelhead/snmp/mode/health.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/riverbed/steelhead/snmp/mode/loadaverage.pm b/network/riverbed/steelhead/snmp/mode/loadaverage.pm index 88902e52d..06139e9c4 100644 --- a/network/riverbed/steelhead/snmp/mode/loadaverage.pm +++ b/network/riverbed/steelhead/snmp/mode/loadaverage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/riverbed/steelhead/snmp/mode/servicestatus.pm b/network/riverbed/steelhead/snmp/mode/servicestatus.pm index c98d82783..7430fa02a 100644 --- a/network/riverbed/steelhead/snmp/mode/servicestatus.pm +++ b/network/riverbed/steelhead/snmp/mode/servicestatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/riverbed/steelhead/snmp/mode/serviceuptime.pm b/network/riverbed/steelhead/snmp/mode/serviceuptime.pm index b6e1ba619..938f23a97 100644 --- a/network/riverbed/steelhead/snmp/mode/serviceuptime.pm +++ b/network/riverbed/steelhead/snmp/mode/serviceuptime.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/riverbed/steelhead/snmp/mode/temperature.pm b/network/riverbed/steelhead/snmp/mode/temperature.pm index d0fa0b38c..deac1d38f 100644 --- a/network/riverbed/steelhead/snmp/mode/temperature.pm +++ b/network/riverbed/steelhead/snmp/mode/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/riverbed/steelhead/snmp/plugin.pm b/network/riverbed/steelhead/snmp/plugin.pm index 39920ad5c..673b111a1 100644 --- a/network/riverbed/steelhead/snmp/plugin.pm +++ b/network/riverbed/steelhead/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/ruckus/ap/snmp/mode/cpu.pm b/network/ruckus/ap/snmp/mode/cpu.pm index e313a46ca..ce66b21d8 100644 --- a/network/ruckus/ap/snmp/mode/cpu.pm +++ b/network/ruckus/ap/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/ruckus/ap/snmp/mode/memory.pm b/network/ruckus/ap/snmp/mode/memory.pm index dd76415cb..8ccc44b9a 100644 --- a/network/ruckus/ap/snmp/mode/memory.pm +++ b/network/ruckus/ap/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/ruckus/ap/snmp/mode/users.pm b/network/ruckus/ap/snmp/mode/users.pm index aa7de5071..1b237d839 100644 --- a/network/ruckus/ap/snmp/mode/users.pm +++ b/network/ruckus/ap/snmp/mode/users.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/ruckus/ap/snmp/plugin.pm b/network/ruckus/ap/snmp/plugin.pm index ed63dca98..29a90cd74 100644 --- a/network/ruckus/ap/snmp/plugin.pm +++ b/network/ruckus/ap/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/ruggedcom/mode/errors.pm b/network/ruggedcom/mode/errors.pm index fb6534442..6a33c4fda 100644 --- a/network/ruggedcom/mode/errors.pm +++ b/network/ruggedcom/mode/errors.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/ruggedcom/mode/hardware.pm b/network/ruggedcom/mode/hardware.pm index d4bab7179..6b8987ffd 100644 --- a/network/ruggedcom/mode/hardware.pm +++ b/network/ruggedcom/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/ruggedcom/mode/memory.pm b/network/ruggedcom/mode/memory.pm index 2cb93cafb..96d3da113 100644 --- a/network/ruggedcom/mode/memory.pm +++ b/network/ruggedcom/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/ruggedcom/mode/temperature.pm b/network/ruggedcom/mode/temperature.pm index 635559c7a..e1a2a462e 100644 --- a/network/ruggedcom/mode/temperature.pm +++ b/network/ruggedcom/mode/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/ruggedcom/plugin.pm b/network/ruggedcom/plugin.pm index 2609aa247..1db0cd6a2 100644 --- a/network/ruggedcom/plugin.pm +++ b/network/ruggedcom/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/securactive/mode/bca.pm b/network/securactive/mode/bca.pm index 854479538..56684bc64 100644 --- a/network/securactive/mode/bca.pm +++ b/network/securactive/mode/bca.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/securactive/mode/bcn.pm b/network/securactive/mode/bcn.pm index aaadc51ba..e073dc281 100644 --- a/network/securactive/mode/bcn.pm +++ b/network/securactive/mode/bcn.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/securactive/mode/listbca.pm b/network/securactive/mode/listbca.pm index 4a2012b82..1dd6124ba 100644 --- a/network/securactive/mode/listbca.pm +++ b/network/securactive/mode/listbca.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/securactive/mode/listbcn.pm b/network/securactive/mode/listbcn.pm index 5ddd13188..226899d03 100644 --- a/network/securactive/mode/listbcn.pm +++ b/network/securactive/mode/listbcn.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/securactive/plugin.pm b/network/securactive/plugin.pm index bbe5ef667..193da1ad2 100644 --- a/network/securactive/plugin.pm +++ b/network/securactive/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/sonus/sbc/snmp/mode/callstats.pm b/network/sonus/sbc/snmp/mode/callstats.pm index 8f54c5427..17371b2d4 100644 --- a/network/sonus/sbc/snmp/mode/callstats.pm +++ b/network/sonus/sbc/snmp/mode/callstats.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/sonus/sbc/snmp/mode/channels.pm b/network/sonus/sbc/snmp/mode/channels.pm index 8a615e30b..cfc720601 100644 --- a/network/sonus/sbc/snmp/mode/channels.pm +++ b/network/sonus/sbc/snmp/mode/channels.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/sonus/sbc/snmp/mode/dspstats.pm b/network/sonus/sbc/snmp/mode/dspstats.pm index 81c771aa9..7f2b61589 100644 --- a/network/sonus/sbc/snmp/mode/dspstats.pm +++ b/network/sonus/sbc/snmp/mode/dspstats.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/sonus/sbc/snmp/plugin.pm b/network/sonus/sbc/snmp/plugin.pm index 75d9a4cd3..8cf3ce364 100644 --- a/network/sonus/sbc/snmp/plugin.pm +++ b/network/sonus/sbc/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/sophos/es/snmp/mode/components/component.pm b/network/sophos/es/snmp/mode/components/component.pm index 0a7fa8fc2..7f8dfa7bf 100644 --- a/network/sophos/es/snmp/mode/components/component.pm +++ b/network/sophos/es/snmp/mode/components/component.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/sophos/es/snmp/mode/components/system.pm b/network/sophos/es/snmp/mode/components/system.pm index a76a17754..ba68bc5d1 100644 --- a/network/sophos/es/snmp/mode/components/system.pm +++ b/network/sophos/es/snmp/mode/components/system.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/sophos/es/snmp/mode/health.pm b/network/sophos/es/snmp/mode/health.pm index 5ae756ce7..c84bd2fd9 100644 --- a/network/sophos/es/snmp/mode/health.pm +++ b/network/sophos/es/snmp/mode/health.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/sophos/es/snmp/mode/message.pm b/network/sophos/es/snmp/mode/message.pm index 79239f27e..41dd030ce 100644 --- a/network/sophos/es/snmp/mode/message.pm +++ b/network/sophos/es/snmp/mode/message.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/sophos/es/snmp/plugin.pm b/network/sophos/es/snmp/plugin.pm index e762eec21..29657caf0 100644 --- a/network/sophos/es/snmp/plugin.pm +++ b/network/sophos/es/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/stonesoft/snmp/mode/clusterload.pm b/network/stonesoft/snmp/mode/clusterload.pm index 59c0523dc..1905b0bc3 100644 --- a/network/stonesoft/snmp/mode/clusterload.pm +++ b/network/stonesoft/snmp/mode/clusterload.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/stonesoft/snmp/mode/clusterstate.pm b/network/stonesoft/snmp/mode/clusterstate.pm index 46c8c1581..b7e9cf5c6 100644 --- a/network/stonesoft/snmp/mode/clusterstate.pm +++ b/network/stonesoft/snmp/mode/clusterstate.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/stonesoft/snmp/mode/connections.pm b/network/stonesoft/snmp/mode/connections.pm index 8a31f4e59..fe9bc472f 100644 --- a/network/stonesoft/snmp/mode/connections.pm +++ b/network/stonesoft/snmp/mode/connections.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/stonesoft/snmp/mode/cpu.pm b/network/stonesoft/snmp/mode/cpu.pm index 32890b332..179a25c45 100644 --- a/network/stonesoft/snmp/mode/cpu.pm +++ b/network/stonesoft/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/stonesoft/snmp/mode/droppedpackets.pm b/network/stonesoft/snmp/mode/droppedpackets.pm index ccd31aeb2..2c93688c4 100644 --- a/network/stonesoft/snmp/mode/droppedpackets.pm +++ b/network/stonesoft/snmp/mode/droppedpackets.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/stonesoft/snmp/mode/memory.pm b/network/stonesoft/snmp/mode/memory.pm index c679334fc..32a75152e 100644 --- a/network/stonesoft/snmp/mode/memory.pm +++ b/network/stonesoft/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/stonesoft/snmp/mode/rejectedpackets.pm b/network/stonesoft/snmp/mode/rejectedpackets.pm index a8b281a78..719b75f33 100644 --- a/network/stonesoft/snmp/mode/rejectedpackets.pm +++ b/network/stonesoft/snmp/mode/rejectedpackets.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/stonesoft/snmp/mode/storage.pm b/network/stonesoft/snmp/mode/storage.pm index 26ca13a8a..509b8ac84 100644 --- a/network/stonesoft/snmp/mode/storage.pm +++ b/network/stonesoft/snmp/mode/storage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/stonesoft/snmp/plugin.pm b/network/stonesoft/snmp/plugin.pm index ca9474c47..bca67faa7 100644 --- a/network/stonesoft/snmp/plugin.pm +++ b/network/stonesoft/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/stormshield/local/mode/qosusage.pm b/network/stormshield/local/mode/qosusage.pm index fe8bc7bc2..c70df92ed 100644 --- a/network/stormshield/local/mode/qosusage.pm +++ b/network/stormshield/local/mode/qosusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/stormshield/local/plugin.pm b/network/stormshield/local/plugin.pm index f046ec1d2..953fc139f 100644 --- a/network/stormshield/local/plugin.pm +++ b/network/stormshield/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/stormshield/snmp/mode/connections.pm b/network/stormshield/snmp/mode/connections.pm index 7d532bdd8..a5d10ed3e 100644 --- a/network/stormshield/snmp/mode/connections.pm +++ b/network/stormshield/snmp/mode/connections.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/stormshield/snmp/mode/hanodes.pm b/network/stormshield/snmp/mode/hanodes.pm index f1053c770..b77aa9e29 100644 --- a/network/stormshield/snmp/mode/hanodes.pm +++ b/network/stormshield/snmp/mode/hanodes.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/stormshield/snmp/mode/vpnstatus.pm b/network/stormshield/snmp/mode/vpnstatus.pm index 28642edbc..1193e9b4d 100644 --- a/network/stormshield/snmp/mode/vpnstatus.pm +++ b/network/stormshield/snmp/mode/vpnstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/stormshield/snmp/plugin.pm b/network/stormshield/snmp/plugin.pm index 4f1a755b2..8ec8a20ca 100644 --- a/network/stormshield/snmp/plugin.pm +++ b/network/stormshield/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/ubiquiti/edge/snmp/plugin.pm b/network/ubiquiti/edge/snmp/plugin.pm index c3cf26c72..6de190b07 100644 --- a/network/ubiquiti/edge/snmp/plugin.pm +++ b/network/ubiquiti/edge/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/ucopia/wlc/snmp/mode/temperature.pm b/network/ucopia/wlc/snmp/mode/temperature.pm index 3609d9f5d..03c684fd9 100644 --- a/network/ucopia/wlc/snmp/mode/temperature.pm +++ b/network/ucopia/wlc/snmp/mode/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/ucopia/wlc/snmp/mode/users.pm b/network/ucopia/wlc/snmp/mode/users.pm index 0a84effc6..e32e0f699 100644 --- a/network/ucopia/wlc/snmp/mode/users.pm +++ b/network/ucopia/wlc/snmp/mode/users.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/ucopia/wlc/snmp/plugin.pm b/network/ucopia/wlc/snmp/plugin.pm index 422846d51..ab46a6dbd 100644 --- a/network/ucopia/wlc/snmp/plugin.pm +++ b/network/ucopia/wlc/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/watchguard/snmp/mode/cpu.pm b/network/watchguard/snmp/mode/cpu.pm index 3094fb576..578d6bbc6 100644 --- a/network/watchguard/snmp/mode/cpu.pm +++ b/network/watchguard/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/watchguard/snmp/mode/policyusage.pm b/network/watchguard/snmp/mode/policyusage.pm index 4ffd00007..4226a29ae 100644 --- a/network/watchguard/snmp/mode/policyusage.pm +++ b/network/watchguard/snmp/mode/policyusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/watchguard/snmp/mode/system.pm b/network/watchguard/snmp/mode/system.pm index 6d02c1514..a06f41862 100644 --- a/network/watchguard/snmp/mode/system.pm +++ b/network/watchguard/snmp/mode/system.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/watchguard/snmp/plugin.pm b/network/watchguard/snmp/plugin.pm index 7e7de9cd7..b2ab731ef 100644 --- a/network/watchguard/snmp/plugin.pm +++ b/network/watchguard/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/zyxel/snmp/mode/cpu.pm b/network/zyxel/snmp/mode/cpu.pm index 88dcbc887..b9eea138f 100644 --- a/network/zyxel/snmp/mode/cpu.pm +++ b/network/zyxel/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/zyxel/snmp/mode/listvpn.pm b/network/zyxel/snmp/mode/listvpn.pm index 2b9323f09..ccf36cc2c 100644 --- a/network/zyxel/snmp/mode/listvpn.pm +++ b/network/zyxel/snmp/mode/listvpn.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/zyxel/snmp/mode/memory.pm b/network/zyxel/snmp/mode/memory.pm index 5bfe7eb76..fac8213b7 100644 --- a/network/zyxel/snmp/mode/memory.pm +++ b/network/zyxel/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/zyxel/snmp/mode/sessions.pm b/network/zyxel/snmp/mode/sessions.pm index a26c71883..f1b136cfe 100644 --- a/network/zyxel/snmp/mode/sessions.pm +++ b/network/zyxel/snmp/mode/sessions.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/zyxel/snmp/mode/vpnstatus.pm b/network/zyxel/snmp/mode/vpnstatus.pm index 4671aef59..159a55b58 100644 --- a/network/zyxel/snmp/mode/vpnstatus.pm +++ b/network/zyxel/snmp/mode/vpnstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/network/zyxel/snmp/plugin.pm b/network/zyxel/snmp/plugin.pm index 1a58c741b..b78c07afd 100644 --- a/network/zyxel/snmp/plugin.pm +++ b/network/zyxel/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/notification/foxbox/mode/alert.pm b/notification/foxbox/mode/alert.pm index bd3fc802b..c0c32778e 100644 --- a/notification/foxbox/mode/alert.pm +++ b/notification/foxbox/mode/alert.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/notification/foxbox/plugin.pm b/notification/foxbox/plugin.pm index a92307172..08156cf1d 100644 --- a/notification/foxbox/plugin.pm +++ b/notification/foxbox/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/notification/highsms/mode/alert.pm b/notification/highsms/mode/alert.pm index 4aee355c2..a0d0c2df2 100644 --- a/notification/highsms/mode/alert.pm +++ b/notification/highsms/mode/alert.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/notification/highsms/plugin.pm b/notification/highsms/plugin.pm index daf83c906..c5014233e 100644 --- a/notification/highsms/plugin.pm +++ b/notification/highsms/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/notification/slack/mode/alert.pm b/notification/slack/mode/alert.pm index e28eec2b3..cc4933752 100644 --- a/notification/slack/mode/alert.pm +++ b/notification/slack/mode/alert.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/notification/slack/plugin.pm b/notification/slack/plugin.pm index c2335288b..ecac907ee 100644 --- a/notification/slack/plugin.pm +++ b/notification/slack/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/aix/local/mode/errpt.pm b/os/aix/local/mode/errpt.pm index 84a86a534..070c06ae1 100644 --- a/os/aix/local/mode/errpt.pm +++ b/os/aix/local/mode/errpt.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/aix/local/mode/liststorages.pm b/os/aix/local/mode/liststorages.pm index 204374b05..2e256cda0 100644 --- a/os/aix/local/mode/liststorages.pm +++ b/os/aix/local/mode/liststorages.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/aix/local/mode/lvsync.pm b/os/aix/local/mode/lvsync.pm index afd7d768e..64ba4e492 100644 --- a/os/aix/local/mode/lvsync.pm +++ b/os/aix/local/mode/lvsync.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/aix/local/mode/storage.pm b/os/aix/local/mode/storage.pm index 4e7469007..dfe3bece2 100644 --- a/os/aix/local/mode/storage.pm +++ b/os/aix/local/mode/storage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/aix/local/plugin.pm b/os/aix/local/plugin.pm index 023aed54c..8ddf911fc 100644 --- a/os/aix/local/plugin.pm +++ b/os/aix/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/aix/snmp/mode/swap.pm b/os/aix/snmp/mode/swap.pm index 9a9267935..b030382eb 100644 --- a/os/aix/snmp/mode/swap.pm +++ b/os/aix/snmp/mode/swap.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/aix/snmp/plugin.pm b/os/aix/snmp/plugin.pm index 054faf549..1b7ecd6c5 100644 --- a/os/aix/snmp/plugin.pm +++ b/os/aix/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/freebsd/snmp/mode/memory.pm b/os/freebsd/snmp/mode/memory.pm index 5f13fc8cd..5ca9d3799 100644 --- a/os/freebsd/snmp/mode/memory.pm +++ b/os/freebsd/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/freebsd/snmp/plugin.pm b/os/freebsd/snmp/plugin.pm index 86e6475bd..bc165eb1d 100644 --- a/os/freebsd/snmp/plugin.pm +++ b/os/freebsd/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/hpux/snmp/mode/cpu.pm b/os/hpux/snmp/mode/cpu.pm index c9e4c1eaa..96f6d68b6 100644 --- a/os/hpux/snmp/mode/cpu.pm +++ b/os/hpux/snmp/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/hpux/snmp/mode/load.pm b/os/hpux/snmp/mode/load.pm index de5694833..d25318b27 100644 --- a/os/hpux/snmp/mode/load.pm +++ b/os/hpux/snmp/mode/load.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/hpux/snmp/mode/memory.pm b/os/hpux/snmp/mode/memory.pm index a72ef0a22..4ca2d06bc 100644 --- a/os/hpux/snmp/mode/memory.pm +++ b/os/hpux/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/hpux/snmp/mode/process.pm b/os/hpux/snmp/mode/process.pm index a3eb86dd8..a6d45f1bf 100644 --- a/os/hpux/snmp/mode/process.pm +++ b/os/hpux/snmp/mode/process.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/hpux/snmp/mode/storage.pm b/os/hpux/snmp/mode/storage.pm index e85c991eb..5521b2de2 100644 --- a/os/hpux/snmp/mode/storage.pm +++ b/os/hpux/snmp/mode/storage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/hpux/snmp/plugin.pm b/os/hpux/snmp/plugin.pm index 179bef208..16d8b01db 100644 --- a/os/hpux/snmp/plugin.pm +++ b/os/hpux/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/local/mode/cmdreturn.pm b/os/linux/local/mode/cmdreturn.pm index 6881e8357..b6cc82d72 100644 --- a/os/linux/local/mode/cmdreturn.pm +++ b/os/linux/local/mode/cmdreturn.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/local/mode/connections.pm b/os/linux/local/mode/connections.pm index 70dd0f465..6ac14513f 100644 --- a/os/linux/local/mode/connections.pm +++ b/os/linux/local/mode/connections.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/local/mode/cpu.pm b/os/linux/local/mode/cpu.pm index 53d045e1f..0d039da14 100644 --- a/os/linux/local/mode/cpu.pm +++ b/os/linux/local/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/local/mode/cpudetailed.pm b/os/linux/local/mode/cpudetailed.pm index dadc2432a..37caa18e6 100644 --- a/os/linux/local/mode/cpudetailed.pm +++ b/os/linux/local/mode/cpudetailed.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/local/mode/directlvmusage.pm b/os/linux/local/mode/directlvmusage.pm index 0a28bf8da..3d4aa36f0 100644 --- a/os/linux/local/mode/directlvmusage.pm +++ b/os/linux/local/mode/directlvmusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/local/mode/diskio.pm b/os/linux/local/mode/diskio.pm index 519fc2c7c..19cfdd581 100644 --- a/os/linux/local/mode/diskio.pm +++ b/os/linux/local/mode/diskio.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/local/mode/filesdate.pm b/os/linux/local/mode/filesdate.pm index 0cc8a2175..5ad5607c7 100644 --- a/os/linux/local/mode/filesdate.pm +++ b/os/linux/local/mode/filesdate.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/local/mode/filessize.pm b/os/linux/local/mode/filessize.pm index eae8cbda4..738664345 100644 --- a/os/linux/local/mode/filessize.pm +++ b/os/linux/local/mode/filessize.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/local/mode/inodes.pm b/os/linux/local/mode/inodes.pm index 21a905365..319018e33 100644 --- a/os/linux/local/mode/inodes.pm +++ b/os/linux/local/mode/inodes.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/local/mode/listinterfaces.pm b/os/linux/local/mode/listinterfaces.pm index c5078176c..f03ac555a 100644 --- a/os/linux/local/mode/listinterfaces.pm +++ b/os/linux/local/mode/listinterfaces.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/local/mode/listpartitions.pm b/os/linux/local/mode/listpartitions.pm index ed5e8f81d..d89feb50b 100644 --- a/os/linux/local/mode/listpartitions.pm +++ b/os/linux/local/mode/listpartitions.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/local/mode/liststorages.pm b/os/linux/local/mode/liststorages.pm index c3f5540f7..2317ea411 100644 --- a/os/linux/local/mode/liststorages.pm +++ b/os/linux/local/mode/liststorages.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/local/mode/loadaverage.pm b/os/linux/local/mode/loadaverage.pm index 990a6aabe..8214c23e8 100644 --- a/os/linux/local/mode/loadaverage.pm +++ b/os/linux/local/mode/loadaverage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/local/mode/memory.pm b/os/linux/local/mode/memory.pm index 2ecac988a..54acd6aaa 100644 --- a/os/linux/local/mode/memory.pm +++ b/os/linux/local/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/local/mode/packeterrors.pm b/os/linux/local/mode/packeterrors.pm index 3fc3e995b..14bcf82e4 100644 --- a/os/linux/local/mode/packeterrors.pm +++ b/os/linux/local/mode/packeterrors.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/local/mode/paging.pm b/os/linux/local/mode/paging.pm index c6a5a7e04..4f80d9367 100644 --- a/os/linux/local/mode/paging.pm +++ b/os/linux/local/mode/paging.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/local/mode/process.pm b/os/linux/local/mode/process.pm index fabd7e91c..ce2865c42 100644 --- a/os/linux/local/mode/process.pm +++ b/os/linux/local/mode/process.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/local/mode/quota.pm b/os/linux/local/mode/quota.pm index 8fb9c3460..9076f44a1 100644 --- a/os/linux/local/mode/quota.pm +++ b/os/linux/local/mode/quota.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/local/mode/storage.pm b/os/linux/local/mode/storage.pm index fefff5d98..eca0e13bb 100644 --- a/os/linux/local/mode/storage.pm +++ b/os/linux/local/mode/storage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/local/mode/swap.pm b/os/linux/local/mode/swap.pm index 9e44594dd..e2a4bb74c 100644 --- a/os/linux/local/mode/swap.pm +++ b/os/linux/local/mode/swap.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/local/mode/systemdscstatus.pm b/os/linux/local/mode/systemdscstatus.pm index 6ee618dbf..8b4a0918a 100644 --- a/os/linux/local/mode/systemdscstatus.pm +++ b/os/linux/local/mode/systemdscstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/local/mode/traffic.pm b/os/linux/local/mode/traffic.pm index 966abf979..74550f042 100644 --- a/os/linux/local/mode/traffic.pm +++ b/os/linux/local/mode/traffic.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/local/mode/uptime.pm b/os/linux/local/mode/uptime.pm index b606dd10b..5c0858a4d 100644 --- a/os/linux/local/mode/uptime.pm +++ b/os/linux/local/mode/uptime.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/local/plugin.pm b/os/linux/local/plugin.pm index 7b55cde2f..c52a48d03 100644 --- a/os/linux/local/plugin.pm +++ b/os/linux/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/linux/snmp/plugin.pm b/os/linux/snmp/plugin.pm index 32d4fe659..212ddad7a 100644 --- a/os/linux/snmp/plugin.pm +++ b/os/linux/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/solaris/local/mode/analyzedisks.pm b/os/solaris/local/mode/analyzedisks.pm index 5dda734f5..1448f3ca0 100644 --- a/os/solaris/local/mode/analyzedisks.pm +++ b/os/solaris/local/mode/analyzedisks.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/solaris/local/mode/cpu.pm b/os/solaris/local/mode/cpu.pm index 953acbb80..07a97647e 100644 --- a/os/solaris/local/mode/cpu.pm +++ b/os/solaris/local/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/solaris/local/mode/fcconnected.pm b/os/solaris/local/mode/fcconnected.pm index 79d650661..fc913b8dd 100644 --- a/os/solaris/local/mode/fcconnected.pm +++ b/os/solaris/local/mode/fcconnected.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/solaris/local/mode/fmadm.pm b/os/solaris/local/mode/fmadm.pm index faf44122f..6bd56ad6c 100644 --- a/os/solaris/local/mode/fmadm.pm +++ b/os/solaris/local/mode/fmadm.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/solaris/local/mode/hwraidctl.pm b/os/solaris/local/mode/hwraidctl.pm index 45a56ec35..76a46cb5e 100644 --- a/os/solaris/local/mode/hwraidctl.pm +++ b/os/solaris/local/mode/hwraidctl.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/solaris/local/mode/hwsas2ircu.pm b/os/solaris/local/mode/hwsas2ircu.pm index 1832dc831..362d2e1fe 100644 --- a/os/solaris/local/mode/hwsas2ircu.pm +++ b/os/solaris/local/mode/hwsas2ircu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/solaris/local/mode/lomv120.pm b/os/solaris/local/mode/lomv120.pm index 2682f54ef..9b6570654 100644 --- a/os/solaris/local/mode/lomv120.pm +++ b/os/solaris/local/mode/lomv120.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/solaris/local/mode/lomv120components/fan.pm b/os/solaris/local/mode/lomv120components/fan.pm index 299310c0a..2f8cae61b 100644 --- a/os/solaris/local/mode/lomv120components/fan.pm +++ b/os/solaris/local/mode/lomv120components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/solaris/local/mode/lomv120components/psu.pm b/os/solaris/local/mode/lomv120components/psu.pm index b710ae4ae..e99a490a1 100644 --- a/os/solaris/local/mode/lomv120components/psu.pm +++ b/os/solaris/local/mode/lomv120components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/solaris/local/mode/lomv120components/sf.pm b/os/solaris/local/mode/lomv120components/sf.pm index 38c57b32f..2c6d823ef 100644 --- a/os/solaris/local/mode/lomv120components/sf.pm +++ b/os/solaris/local/mode/lomv120components/sf.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/solaris/local/mode/lomv120components/voltage.pm b/os/solaris/local/mode/lomv120components/voltage.pm index ebfff2bbc..cee6f2f53 100644 --- a/os/solaris/local/mode/lomv120components/voltage.pm +++ b/os/solaris/local/mode/lomv120components/voltage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/solaris/local/mode/lomv1280.pm b/os/solaris/local/mode/lomv1280.pm index d9246ef6c..1da43ac51 100644 --- a/os/solaris/local/mode/lomv1280.pm +++ b/os/solaris/local/mode/lomv1280.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/solaris/local/mode/prtdiag.pm b/os/solaris/local/mode/prtdiag.pm index 3f1ba6f9c..b200c703d 100644 --- a/os/solaris/local/mode/prtdiag.pm +++ b/os/solaris/local/mode/prtdiag.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/solaris/local/mode/svmdisks.pm b/os/solaris/local/mode/svmdisks.pm index 8712c790f..b66064bea 100644 --- a/os/solaris/local/mode/svmdisks.pm +++ b/os/solaris/local/mode/svmdisks.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/solaris/local/mode/vxdisks.pm b/os/solaris/local/mode/vxdisks.pm index 02b44e60d..b991e10a5 100644 --- a/os/solaris/local/mode/vxdisks.pm +++ b/os/solaris/local/mode/vxdisks.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/solaris/local/plugin.pm b/os/solaris/local/plugin.pm index 3f30faeb7..98abc52d3 100644 --- a/os/solaris/local/plugin.pm +++ b/os/solaris/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/solaris/snmp/plugin.pm b/os/solaris/snmp/plugin.pm index b5b9fd8cc..63e85bd11 100644 --- a/os/solaris/snmp/plugin.pm +++ b/os/solaris/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/windows/local/mode/cmdreturn.pm b/os/windows/local/mode/cmdreturn.pm index e03be3dd7..9b0f93789 100644 --- a/os/windows/local/mode/cmdreturn.pm +++ b/os/windows/local/mode/cmdreturn.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/windows/local/mode/ntp.pm b/os/windows/local/mode/ntp.pm index efb2fd6e6..5d6d657db 100644 --- a/os/windows/local/mode/ntp.pm +++ b/os/windows/local/mode/ntp.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/windows/local/mode/pendingreboot.pm b/os/windows/local/mode/pendingreboot.pm index 1c84c2b59..54d97aabc 100644 --- a/os/windows/local/mode/pendingreboot.pm +++ b/os/windows/local/mode/pendingreboot.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/windows/local/mode/sessions.pm b/os/windows/local/mode/sessions.pm index e9b0d573e..cf62dcacf 100644 --- a/os/windows/local/mode/sessions.pm +++ b/os/windows/local/mode/sessions.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/windows/local/plugin.pm b/os/windows/local/plugin.pm index 0d428c699..c5125862a 100644 --- a/os/windows/local/plugin.pm +++ b/os/windows/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/windows/snmp/mode/memory.pm b/os/windows/snmp/mode/memory.pm index bbb6452f7..a758c8adf 100644 --- a/os/windows/snmp/mode/memory.pm +++ b/os/windows/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/windows/snmp/mode/service.pm b/os/windows/snmp/mode/service.pm index f20784c64..0f99478f7 100644 --- a/os/windows/snmp/mode/service.pm +++ b/os/windows/snmp/mode/service.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/windows/snmp/mode/swap.pm b/os/windows/snmp/mode/swap.pm index 33f01d24c..48b1a31f3 100644 --- a/os/windows/snmp/mode/swap.pm +++ b/os/windows/snmp/mode/swap.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/windows/snmp/plugin.pm b/os/windows/snmp/plugin.pm index 832d8df23..86cfa0131 100644 --- a/os/windows/snmp/plugin.pm +++ b/os/windows/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/windows/wsman/mode/listservices.pm b/os/windows/wsman/mode/listservices.pm index b2f475561..fec026bd1 100644 --- a/os/windows/wsman/mode/listservices.pm +++ b/os/windows/wsman/mode/listservices.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/windows/wsman/mode/service.pm b/os/windows/wsman/mode/service.pm index dd86fa4c5..828e984c3 100644 --- a/os/windows/wsman/mode/service.pm +++ b/os/windows/wsman/mode/service.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/os/windows/wsman/plugin.pm b/os/windows/wsman/plugin.pm index 5729eec50..ff4d9bf85 100644 --- a/os/windows/wsman/plugin.pm +++ b/os/windows/wsman/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/cpu.pm b/snmp_standard/mode/cpu.pm index 99181f6d3..2740b09d3 100644 --- a/snmp_standard/mode/cpu.pm +++ b/snmp_standard/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/cpudetailed.pm b/snmp_standard/mode/cpudetailed.pm index 0bedd37fe..1a99a0b13 100644 --- a/snmp_standard/mode/cpudetailed.pm +++ b/snmp_standard/mode/cpudetailed.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/diskio.pm b/snmp_standard/mode/diskio.pm index f7b36c5ec..a655ddd89 100644 --- a/snmp_standard/mode/diskio.pm +++ b/snmp_standard/mode/diskio.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/diskusage.pm b/snmp_standard/mode/diskusage.pm index cdc9fa6a3..5dbe56d36 100644 --- a/snmp_standard/mode/diskusage.pm +++ b/snmp_standard/mode/diskusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/dynamiccommand.pm b/snmp_standard/mode/dynamiccommand.pm index 9169dd2a6..31829cec8 100644 --- a/snmp_standard/mode/dynamiccommand.pm +++ b/snmp_standard/mode/dynamiccommand.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/entity.pm b/snmp_standard/mode/entity.pm index 8610e38f9..c561640a6 100644 --- a/snmp_standard/mode/entity.pm +++ b/snmp_standard/mode/entity.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/hardwaredevice.pm b/snmp_standard/mode/hardwaredevice.pm index a7b35bf74..4ea2fad90 100644 --- a/snmp_standard/mode/hardwaredevice.pm +++ b/snmp_standard/mode/hardwaredevice.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/hardwarefibrealliance.pm b/snmp_standard/mode/hardwarefibrealliance.pm index a89749ea5..334b241ed 100644 --- a/snmp_standard/mode/hardwarefibrealliance.pm +++ b/snmp_standard/mode/hardwarefibrealliance.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/inodes.pm b/snmp_standard/mode/inodes.pm index e89f68662..8c1486e92 100644 --- a/snmp_standard/mode/inodes.pm +++ b/snmp_standard/mode/inodes.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/interfaces.pm b/snmp_standard/mode/interfaces.pm index 58b3cf3fa..19ef2ee3f 100644 --- a/snmp_standard/mode/interfaces.pm +++ b/snmp_standard/mode/interfaces.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/isdnusage.pm b/snmp_standard/mode/isdnusage.pm index 681b565de..e44938afb 100644 --- a/snmp_standard/mode/isdnusage.pm +++ b/snmp_standard/mode/isdnusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/listdiskspath.pm b/snmp_standard/mode/listdiskspath.pm index 4a27878cd..57572f0dd 100644 --- a/snmp_standard/mode/listdiskspath.pm +++ b/snmp_standard/mode/listdiskspath.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/listinterfaces.pm b/snmp_standard/mode/listinterfaces.pm index 35a6f9485..2e8eea69f 100644 --- a/snmp_standard/mode/listinterfaces.pm +++ b/snmp_standard/mode/listinterfaces.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/liststorages.pm b/snmp_standard/mode/liststorages.pm index 2c3e3ae8a..f536c0c43 100644 --- a/snmp_standard/mode/liststorages.pm +++ b/snmp_standard/mode/liststorages.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/loadaverage.pm b/snmp_standard/mode/loadaverage.pm index 39d45f2bd..41652d80f 100644 --- a/snmp_standard/mode/loadaverage.pm +++ b/snmp_standard/mode/loadaverage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/memory.pm b/snmp_standard/mode/memory.pm index 4a815ce63..516f4cfca 100644 --- a/snmp_standard/mode/memory.pm +++ b/snmp_standard/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/mtausage.pm b/snmp_standard/mode/mtausage.pm index 0c702398c..3a2b5ac81 100644 --- a/snmp_standard/mode/mtausage.pm +++ b/snmp_standard/mode/mtausage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/ntp.pm b/snmp_standard/mode/ntp.pm index c1a7143b2..2fb697a7f 100644 --- a/snmp_standard/mode/ntp.pm +++ b/snmp_standard/mode/ntp.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/numericvalue.pm b/snmp_standard/mode/numericvalue.pm index 6cf4770ca..8ba91fde3 100644 --- a/snmp_standard/mode/numericvalue.pm +++ b/snmp_standard/mode/numericvalue.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/printererror.pm b/snmp_standard/mode/printererror.pm index 0cea63e51..13bb28ab9 100644 --- a/snmp_standard/mode/printererror.pm +++ b/snmp_standard/mode/printererror.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/processcount.pm b/snmp_standard/mode/processcount.pm index 98130bd6a..9acf4c274 100644 --- a/snmp_standard/mode/processcount.pm +++ b/snmp_standard/mode/processcount.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/spanningtree.pm b/snmp_standard/mode/spanningtree.pm index f512b1094..411094242 100644 --- a/snmp_standard/mode/spanningtree.pm +++ b/snmp_standard/mode/spanningtree.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/storage.pm b/snmp_standard/mode/storage.pm index 6a99caa69..fcc5f20e7 100644 --- a/snmp_standard/mode/storage.pm +++ b/snmp_standard/mode/storage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/stringvalue.pm b/snmp_standard/mode/stringvalue.pm index c00f2d12e..27623dd4f 100644 --- a/snmp_standard/mode/stringvalue.pm +++ b/snmp_standard/mode/stringvalue.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/swap.pm b/snmp_standard/mode/swap.pm index 968b2e2dc..08680d5c6 100644 --- a/snmp_standard/mode/swap.pm +++ b/snmp_standard/mode/swap.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/tcpcon.pm b/snmp_standard/mode/tcpcon.pm index 090608a3e..5553cf310 100644 --- a/snmp_standard/mode/tcpcon.pm +++ b/snmp_standard/mode/tcpcon.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/uptime.pm b/snmp_standard/mode/uptime.pm index e4a26deaf..aa849ae90 100644 --- a/snmp_standard/mode/uptime.pm +++ b/snmp_standard/mode/uptime.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/snmp_standard/mode/vrrp.pm b/snmp_standard/mode/vrrp.pm index f992608f1..c87092c9f 100644 --- a/snmp_standard/mode/vrrp.pm +++ b/snmp_standard/mode/vrrp.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/MD3000/cli/plugin.pm b/storage/dell/MD3000/cli/plugin.pm index 1b1b2f054..f8d6bb266 100644 --- a/storage/dell/MD3000/cli/plugin.pm +++ b/storage/dell/MD3000/cli/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/TL2000/mode/globalstatus.pm b/storage/dell/TL2000/mode/globalstatus.pm index ab70ec99d..31c62e7d0 100644 --- a/storage/dell/TL2000/mode/globalstatus.pm +++ b/storage/dell/TL2000/mode/globalstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/TL2000/plugin.pm b/storage/dell/TL2000/plugin.pm index 7b69cc923..59117827b 100644 --- a/storage/dell/TL2000/plugin.pm +++ b/storage/dell/TL2000/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/compellent/local/mode/hbausage.pm b/storage/dell/compellent/local/mode/hbausage.pm index 6f10344d4..2d6ee86eb 100644 --- a/storage/dell/compellent/local/mode/hbausage.pm +++ b/storage/dell/compellent/local/mode/hbausage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/compellent/local/mode/volumeusage.pm b/storage/dell/compellent/local/mode/volumeusage.pm index 900a99c12..13a5bb6ac 100644 --- a/storage/dell/compellent/local/mode/volumeusage.pm +++ b/storage/dell/compellent/local/mode/volumeusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/compellent/local/plugin.pm b/storage/dell/compellent/local/plugin.pm index 98b94dae6..e83fac56f 100644 --- a/storage/dell/compellent/local/plugin.pm +++ b/storage/dell/compellent/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/compellent/snmp/mode/components/cache.pm b/storage/dell/compellent/snmp/mode/components/cache.pm index 0e5eff02a..89d0b9c63 100644 --- a/storage/dell/compellent/snmp/mode/components/cache.pm +++ b/storage/dell/compellent/snmp/mode/components/cache.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/compellent/snmp/mode/components/ctrl.pm b/storage/dell/compellent/snmp/mode/components/ctrl.pm index e844e01c9..279ef1baf 100644 --- a/storage/dell/compellent/snmp/mode/components/ctrl.pm +++ b/storage/dell/compellent/snmp/mode/components/ctrl.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/compellent/snmp/mode/components/ctrlfan.pm b/storage/dell/compellent/snmp/mode/components/ctrlfan.pm index 514d50d3c..416e94b28 100644 --- a/storage/dell/compellent/snmp/mode/components/ctrlfan.pm +++ b/storage/dell/compellent/snmp/mode/components/ctrlfan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/compellent/snmp/mode/components/ctrlpower.pm b/storage/dell/compellent/snmp/mode/components/ctrlpower.pm index 7b5cde3d6..c7728a6a1 100644 --- a/storage/dell/compellent/snmp/mode/components/ctrlpower.pm +++ b/storage/dell/compellent/snmp/mode/components/ctrlpower.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/compellent/snmp/mode/components/ctrltemp.pm b/storage/dell/compellent/snmp/mode/components/ctrltemp.pm index 00c807350..7aebd91a7 100644 --- a/storage/dell/compellent/snmp/mode/components/ctrltemp.pm +++ b/storage/dell/compellent/snmp/mode/components/ctrltemp.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/compellent/snmp/mode/components/ctrlvoltage.pm b/storage/dell/compellent/snmp/mode/components/ctrlvoltage.pm index 744e1b8c5..694bf22e6 100644 --- a/storage/dell/compellent/snmp/mode/components/ctrlvoltage.pm +++ b/storage/dell/compellent/snmp/mode/components/ctrlvoltage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/compellent/snmp/mode/components/disk.pm b/storage/dell/compellent/snmp/mode/components/disk.pm index 69ba9304f..42ac42873 100644 --- a/storage/dell/compellent/snmp/mode/components/disk.pm +++ b/storage/dell/compellent/snmp/mode/components/disk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/compellent/snmp/mode/components/encl.pm b/storage/dell/compellent/snmp/mode/components/encl.pm index 4844491c1..d69cac35e 100644 --- a/storage/dell/compellent/snmp/mode/components/encl.pm +++ b/storage/dell/compellent/snmp/mode/components/encl.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/compellent/snmp/mode/components/enclfan.pm b/storage/dell/compellent/snmp/mode/components/enclfan.pm index 6e38041d0..2888a2e95 100644 --- a/storage/dell/compellent/snmp/mode/components/enclfan.pm +++ b/storage/dell/compellent/snmp/mode/components/enclfan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/compellent/snmp/mode/components/encliomod.pm b/storage/dell/compellent/snmp/mode/components/encliomod.pm index 438aeba71..e9527d733 100644 --- a/storage/dell/compellent/snmp/mode/components/encliomod.pm +++ b/storage/dell/compellent/snmp/mode/components/encliomod.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/compellent/snmp/mode/components/enclpower.pm b/storage/dell/compellent/snmp/mode/components/enclpower.pm index 216c81ae7..1fe6dd946 100644 --- a/storage/dell/compellent/snmp/mode/components/enclpower.pm +++ b/storage/dell/compellent/snmp/mode/components/enclpower.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/compellent/snmp/mode/components/encltemp.pm b/storage/dell/compellent/snmp/mode/components/encltemp.pm index 802a08b3d..9263eed36 100644 --- a/storage/dell/compellent/snmp/mode/components/encltemp.pm +++ b/storage/dell/compellent/snmp/mode/components/encltemp.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/compellent/snmp/mode/components/resources.pm b/storage/dell/compellent/snmp/mode/components/resources.pm index 88487e7f5..e76c6b55e 100644 --- a/storage/dell/compellent/snmp/mode/components/resources.pm +++ b/storage/dell/compellent/snmp/mode/components/resources.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/compellent/snmp/mode/components/sc.pm b/storage/dell/compellent/snmp/mode/components/sc.pm index 76a990a9f..ba8a814d1 100644 --- a/storage/dell/compellent/snmp/mode/components/sc.pm +++ b/storage/dell/compellent/snmp/mode/components/sc.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/compellent/snmp/mode/components/server.pm b/storage/dell/compellent/snmp/mode/components/server.pm index 8c5e6e733..a7cabbb75 100644 --- a/storage/dell/compellent/snmp/mode/components/server.pm +++ b/storage/dell/compellent/snmp/mode/components/server.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/compellent/snmp/mode/components/volume.pm b/storage/dell/compellent/snmp/mode/components/volume.pm index 66e4f2175..cff24e320 100644 --- a/storage/dell/compellent/snmp/mode/components/volume.pm +++ b/storage/dell/compellent/snmp/mode/components/volume.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/compellent/snmp/mode/hardware.pm b/storage/dell/compellent/snmp/mode/hardware.pm index 355665f1e..6706b4657 100644 --- a/storage/dell/compellent/snmp/mode/hardware.pm +++ b/storage/dell/compellent/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/compellent/snmp/plugin.pm b/storage/dell/compellent/snmp/plugin.pm index c0276d774..9df41c5ca 100644 --- a/storage/dell/compellent/snmp/plugin.pm +++ b/storage/dell/compellent/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/equallogic/snmp/mode/arraystats.pm b/storage/dell/equallogic/snmp/mode/arraystats.pm index 2c51ee205..5eb506974 100644 --- a/storage/dell/equallogic/snmp/mode/arraystats.pm +++ b/storage/dell/equallogic/snmp/mode/arraystats.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/equallogic/snmp/mode/components/disk.pm b/storage/dell/equallogic/snmp/mode/components/disk.pm index 375d347d5..786388788 100644 --- a/storage/dell/equallogic/snmp/mode/components/disk.pm +++ b/storage/dell/equallogic/snmp/mode/components/disk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/equallogic/snmp/mode/components/fan.pm b/storage/dell/equallogic/snmp/mode/components/fan.pm index 031d15e85..501d8e823 100644 --- a/storage/dell/equallogic/snmp/mode/components/fan.pm +++ b/storage/dell/equallogic/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/equallogic/snmp/mode/components/health.pm b/storage/dell/equallogic/snmp/mode/components/health.pm index b3af94754..463927c66 100644 --- a/storage/dell/equallogic/snmp/mode/components/health.pm +++ b/storage/dell/equallogic/snmp/mode/components/health.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/equallogic/snmp/mode/components/psu.pm b/storage/dell/equallogic/snmp/mode/components/psu.pm index 363f9f41b..170920a87 100644 --- a/storage/dell/equallogic/snmp/mode/components/psu.pm +++ b/storage/dell/equallogic/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/equallogic/snmp/mode/components/raid.pm b/storage/dell/equallogic/snmp/mode/components/raid.pm index a80404f59..b8f2fb191 100644 --- a/storage/dell/equallogic/snmp/mode/components/raid.pm +++ b/storage/dell/equallogic/snmp/mode/components/raid.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/equallogic/snmp/mode/components/temperature.pm b/storage/dell/equallogic/snmp/mode/components/temperature.pm index 028a711b2..8db148d52 100644 --- a/storage/dell/equallogic/snmp/mode/components/temperature.pm +++ b/storage/dell/equallogic/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/equallogic/snmp/mode/diskusage.pm b/storage/dell/equallogic/snmp/mode/diskusage.pm index c18b2b726..c4602166d 100644 --- a/storage/dell/equallogic/snmp/mode/diskusage.pm +++ b/storage/dell/equallogic/snmp/mode/diskusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/equallogic/snmp/mode/hardware.pm b/storage/dell/equallogic/snmp/mode/hardware.pm index 455140e8d..cc8f701fe 100644 --- a/storage/dell/equallogic/snmp/mode/hardware.pm +++ b/storage/dell/equallogic/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/equallogic/snmp/mode/poolusage.pm b/storage/dell/equallogic/snmp/mode/poolusage.pm index f2e0b9059..a46fc156b 100644 --- a/storage/dell/equallogic/snmp/mode/poolusage.pm +++ b/storage/dell/equallogic/snmp/mode/poolusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/equallogic/snmp/plugin.pm b/storage/dell/equallogic/snmp/plugin.pm index b68de53a6..17ed17e87 100644 --- a/storage/dell/equallogic/snmp/plugin.pm +++ b/storage/dell/equallogic/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/fluidfs/snmp/mode/components/ad.pm b/storage/dell/fluidfs/snmp/mode/components/ad.pm index 5f159a89d..c560f372c 100644 --- a/storage/dell/fluidfs/snmp/mode/components/ad.pm +++ b/storage/dell/fluidfs/snmp/mode/components/ad.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/fluidfs/snmp/mode/components/extservers.pm b/storage/dell/fluidfs/snmp/mode/components/extservers.pm index 8aad88709..b8847f0f3 100644 --- a/storage/dell/fluidfs/snmp/mode/components/extservers.pm +++ b/storage/dell/fluidfs/snmp/mode/components/extservers.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/fluidfs/snmp/mode/components/overall.pm b/storage/dell/fluidfs/snmp/mode/components/overall.pm index 8ee1c6481..f891dfa1f 100644 --- a/storage/dell/fluidfs/snmp/mode/components/overall.pm +++ b/storage/dell/fluidfs/snmp/mode/components/overall.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/fluidfs/snmp/mode/components/substorage.pm b/storage/dell/fluidfs/snmp/mode/components/substorage.pm index 99459afd9..ffacd5927 100644 --- a/storage/dell/fluidfs/snmp/mode/components/substorage.pm +++ b/storage/dell/fluidfs/snmp/mode/components/substorage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/fluidfs/snmp/mode/hardware.pm b/storage/dell/fluidfs/snmp/mode/hardware.pm index b147c8b7e..6c2e6b70a 100644 --- a/storage/dell/fluidfs/snmp/mode/hardware.pm +++ b/storage/dell/fluidfs/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/fluidfs/snmp/mode/volumeusage.pm b/storage/dell/fluidfs/snmp/mode/volumeusage.pm index 74fb6404f..c50688749 100644 --- a/storage/dell/fluidfs/snmp/mode/volumeusage.pm +++ b/storage/dell/fluidfs/snmp/mode/volumeusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/fluidfs/snmp/plugin.pm b/storage/dell/fluidfs/snmp/plugin.pm index 9388c09fb..5d23326a4 100644 --- a/storage/dell/fluidfs/snmp/plugin.pm +++ b/storage/dell/fluidfs/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/dell/ml6000/snmp/plugin.pm b/storage/dell/ml6000/snmp/plugin.pm index 9eacb6fbd..af69dafc9 100644 --- a/storage/dell/ml6000/snmp/plugin.pm +++ b/storage/dell/ml6000/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/DataDomain/lib/functions.pm b/storage/emc/DataDomain/lib/functions.pm index 29177f695..5e8229673 100644 --- a/storage/emc/DataDomain/lib/functions.pm +++ b/storage/emc/DataDomain/lib/functions.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/DataDomain/mode/components/battery.pm b/storage/emc/DataDomain/mode/components/battery.pm index 49868abbd..dae7df996 100644 --- a/storage/emc/DataDomain/mode/components/battery.pm +++ b/storage/emc/DataDomain/mode/components/battery.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/DataDomain/mode/components/disk.pm b/storage/emc/DataDomain/mode/components/disk.pm index a73df6d7b..937e44f8f 100644 --- a/storage/emc/DataDomain/mode/components/disk.pm +++ b/storage/emc/DataDomain/mode/components/disk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/DataDomain/mode/components/fan.pm b/storage/emc/DataDomain/mode/components/fan.pm index c6e302432..9ccf5bcdf 100644 --- a/storage/emc/DataDomain/mode/components/fan.pm +++ b/storage/emc/DataDomain/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/DataDomain/mode/components/psu.pm b/storage/emc/DataDomain/mode/components/psu.pm index 357ae23a4..d660e3fbb 100644 --- a/storage/emc/DataDomain/mode/components/psu.pm +++ b/storage/emc/DataDomain/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/DataDomain/mode/components/temperature.pm b/storage/emc/DataDomain/mode/components/temperature.pm index 1d4908f3e..8cabd2612 100644 --- a/storage/emc/DataDomain/mode/components/temperature.pm +++ b/storage/emc/DataDomain/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/DataDomain/mode/filesystem.pm b/storage/emc/DataDomain/mode/filesystem.pm index 97ffd604b..509a9a4e1 100644 --- a/storage/emc/DataDomain/mode/filesystem.pm +++ b/storage/emc/DataDomain/mode/filesystem.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/DataDomain/mode/hardware.pm b/storage/emc/DataDomain/mode/hardware.pm index 2d5b115cb..2ba9fd9fb 100644 --- a/storage/emc/DataDomain/mode/hardware.pm +++ b/storage/emc/DataDomain/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/DataDomain/mode/replication.pm b/storage/emc/DataDomain/mode/replication.pm index c5655fde9..149218b6e 100644 --- a/storage/emc/DataDomain/mode/replication.pm +++ b/storage/emc/DataDomain/mode/replication.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/DataDomain/plugin.pm b/storage/emc/DataDomain/plugin.pm index 4bd3d92a0..af8f84c74 100644 --- a/storage/emc/DataDomain/plugin.pm +++ b/storage/emc/DataDomain/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/celerra/local/mode/components/controlstation.pm b/storage/emc/celerra/local/mode/components/controlstation.pm index 567643fc9..305a5f727 100644 --- a/storage/emc/celerra/local/mode/components/controlstation.pm +++ b/storage/emc/celerra/local/mode/components/controlstation.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/celerra/local/mode/components/datamover.pm b/storage/emc/celerra/local/mode/components/datamover.pm index 95a1abdc8..8943bcd6f 100644 --- a/storage/emc/celerra/local/mode/components/datamover.pm +++ b/storage/emc/celerra/local/mode/components/datamover.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/celerra/local/mode/getreason.pm b/storage/emc/celerra/local/mode/getreason.pm index e67e02c93..fab325a51 100644 --- a/storage/emc/celerra/local/mode/getreason.pm +++ b/storage/emc/celerra/local/mode/getreason.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/celerra/local/plugin.pm b/storage/emc/celerra/local/plugin.pm index cce06f76d..6f6b6aebd 100644 --- a/storage/emc/celerra/local/plugin.pm +++ b/storage/emc/celerra/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/clariion/plugin.pm b/storage/emc/clariion/plugin.pm index b14d26a17..04e87965c 100644 --- a/storage/emc/clariion/plugin.pm +++ b/storage/emc/clariion/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/isilon/snmp/mode/clusterusage.pm b/storage/emc/isilon/snmp/mode/clusterusage.pm index aeacaa9f2..4edab3570 100644 --- a/storage/emc/isilon/snmp/mode/clusterusage.pm +++ b/storage/emc/isilon/snmp/mode/clusterusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/isilon/snmp/mode/components/disk.pm b/storage/emc/isilon/snmp/mode/components/disk.pm index ebd7468f7..76db0e7cc 100644 --- a/storage/emc/isilon/snmp/mode/components/disk.pm +++ b/storage/emc/isilon/snmp/mode/components/disk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/isilon/snmp/mode/components/fan.pm b/storage/emc/isilon/snmp/mode/components/fan.pm index eeb64daf0..90f02ee63 100644 --- a/storage/emc/isilon/snmp/mode/components/fan.pm +++ b/storage/emc/isilon/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/isilon/snmp/mode/components/power.pm b/storage/emc/isilon/snmp/mode/components/power.pm index 1fe40b82b..4750e8eb6 100644 --- a/storage/emc/isilon/snmp/mode/components/power.pm +++ b/storage/emc/isilon/snmp/mode/components/power.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/isilon/snmp/mode/components/temperature.pm b/storage/emc/isilon/snmp/mode/components/temperature.pm index b4ab36114..ec5415bac 100644 --- a/storage/emc/isilon/snmp/mode/components/temperature.pm +++ b/storage/emc/isilon/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/isilon/snmp/mode/hardware.pm b/storage/emc/isilon/snmp/mode/hardware.pm index 3e33fdcfd..8c9e67bbb 100644 --- a/storage/emc/isilon/snmp/mode/hardware.pm +++ b/storage/emc/isilon/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/isilon/snmp/plugin.pm b/storage/emc/isilon/snmp/plugin.pm index c8a23ef34..b47d55f8f 100644 --- a/storage/emc/isilon/snmp/plugin.pm +++ b/storage/emc/isilon/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/recoverypoint/ssh/mode/monitoredparameters.pm b/storage/emc/recoverypoint/ssh/mode/monitoredparameters.pm index b96ff16f6..3f824b029 100644 --- a/storage/emc/recoverypoint/ssh/mode/monitoredparameters.pm +++ b/storage/emc/recoverypoint/ssh/mode/monitoredparameters.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/recoverypoint/ssh/mode/systemstatus.pm b/storage/emc/recoverypoint/ssh/mode/systemstatus.pm index 3e563c75b..72a4616e1 100644 --- a/storage/emc/recoverypoint/ssh/mode/systemstatus.pm +++ b/storage/emc/recoverypoint/ssh/mode/systemstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/recoverypoint/ssh/plugin.pm b/storage/emc/recoverypoint/ssh/plugin.pm index cb87c4676..697f5a54b 100644 --- a/storage/emc/recoverypoint/ssh/plugin.pm +++ b/storage/emc/recoverypoint/ssh/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/symmetrix/dmx34/local/mode/components/config.pm b/storage/emc/symmetrix/dmx34/local/mode/components/config.pm index 1ae8dc216..35aa8e56c 100644 --- a/storage/emc/symmetrix/dmx34/local/mode/components/config.pm +++ b/storage/emc/symmetrix/dmx34/local/mode/components/config.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/symmetrix/dmx34/local/mode/components/director.pm b/storage/emc/symmetrix/dmx34/local/mode/components/director.pm index b0de54ed4..ab732eec2 100644 --- a/storage/emc/symmetrix/dmx34/local/mode/components/director.pm +++ b/storage/emc/symmetrix/dmx34/local/mode/components/director.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/symmetrix/dmx34/local/mode/components/disk.pm b/storage/emc/symmetrix/dmx34/local/mode/components/disk.pm index 6018235e2..b3d0e3b31 100644 --- a/storage/emc/symmetrix/dmx34/local/mode/components/disk.pm +++ b/storage/emc/symmetrix/dmx34/local/mode/components/disk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/symmetrix/dmx34/local/mode/components/fru.pm b/storage/emc/symmetrix/dmx34/local/mode/components/fru.pm index d71a4d488..0705016ce 100644 --- a/storage/emc/symmetrix/dmx34/local/mode/components/fru.pm +++ b/storage/emc/symmetrix/dmx34/local/mode/components/fru.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/symmetrix/dmx34/local/mode/components/memory.pm b/storage/emc/symmetrix/dmx34/local/mode/components/memory.pm index 619c7b69e..b24b43678 100644 --- a/storage/emc/symmetrix/dmx34/local/mode/components/memory.pm +++ b/storage/emc/symmetrix/dmx34/local/mode/components/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/symmetrix/dmx34/local/mode/components/test.pm b/storage/emc/symmetrix/dmx34/local/mode/components/test.pm index 84f454997..f3bf1bb74 100644 --- a/storage/emc/symmetrix/dmx34/local/mode/components/test.pm +++ b/storage/emc/symmetrix/dmx34/local/mode/components/test.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/symmetrix/dmx34/local/mode/components/xcm.pm b/storage/emc/symmetrix/dmx34/local/mode/components/xcm.pm index 8a5a3ce96..1dcd88a1c 100644 --- a/storage/emc/symmetrix/dmx34/local/mode/components/xcm.pm +++ b/storage/emc/symmetrix/dmx34/local/mode/components/xcm.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/symmetrix/dmx34/local/mode/hardware.pm b/storage/emc/symmetrix/dmx34/local/mode/hardware.pm index d99408d1e..0e4107715 100644 --- a/storage/emc/symmetrix/dmx34/local/mode/hardware.pm +++ b/storage/emc/symmetrix/dmx34/local/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/symmetrix/dmx34/local/plugin.pm b/storage/emc/symmetrix/dmx34/local/plugin.pm index 6fbcae556..fb4971f9e 100644 --- a/storage/emc/symmetrix/dmx34/local/plugin.pm +++ b/storage/emc/symmetrix/dmx34/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/symmetrix/vmax/local/mode/components/cabling.pm b/storage/emc/symmetrix/vmax/local/mode/components/cabling.pm index a408fe87d..29c3af69a 100644 --- a/storage/emc/symmetrix/vmax/local/mode/components/cabling.pm +++ b/storage/emc/symmetrix/vmax/local/mode/components/cabling.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/symmetrix/vmax/local/mode/components/director.pm b/storage/emc/symmetrix/vmax/local/mode/components/director.pm index 2570c4033..f20c998d8 100644 --- a/storage/emc/symmetrix/vmax/local/mode/components/director.pm +++ b/storage/emc/symmetrix/vmax/local/mode/components/director.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/symmetrix/vmax/local/mode/components/fabric.pm b/storage/emc/symmetrix/vmax/local/mode/components/fabric.pm index db40162c6..15c1c5dee 100644 --- a/storage/emc/symmetrix/vmax/local/mode/components/fabric.pm +++ b/storage/emc/symmetrix/vmax/local/mode/components/fabric.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/symmetrix/vmax/local/mode/components/module.pm b/storage/emc/symmetrix/vmax/local/mode/components/module.pm index f9ad8b502..f6b70bd22 100644 --- a/storage/emc/symmetrix/vmax/local/mode/components/module.pm +++ b/storage/emc/symmetrix/vmax/local/mode/components/module.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/symmetrix/vmax/local/mode/components/power.pm b/storage/emc/symmetrix/vmax/local/mode/components/power.pm index c70676716..8f39ae5b0 100644 --- a/storage/emc/symmetrix/vmax/local/mode/components/power.pm +++ b/storage/emc/symmetrix/vmax/local/mode/components/power.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/symmetrix/vmax/local/mode/components/sparedisk.pm b/storage/emc/symmetrix/vmax/local/mode/components/sparedisk.pm index 64a743518..3797050dc 100644 --- a/storage/emc/symmetrix/vmax/local/mode/components/sparedisk.pm +++ b/storage/emc/symmetrix/vmax/local/mode/components/sparedisk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/symmetrix/vmax/local/mode/components/temperature.pm b/storage/emc/symmetrix/vmax/local/mode/components/temperature.pm index d4e2a1b32..cc3b241d0 100644 --- a/storage/emc/symmetrix/vmax/local/mode/components/temperature.pm +++ b/storage/emc/symmetrix/vmax/local/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/symmetrix/vmax/local/mode/components/voltage.pm b/storage/emc/symmetrix/vmax/local/mode/components/voltage.pm index fd57ee04d..110509ca9 100644 --- a/storage/emc/symmetrix/vmax/local/mode/components/voltage.pm +++ b/storage/emc/symmetrix/vmax/local/mode/components/voltage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/symmetrix/vmax/local/mode/hardware.pm b/storage/emc/symmetrix/vmax/local/mode/hardware.pm index a93932ca6..377b89ba8 100644 --- a/storage/emc/symmetrix/vmax/local/mode/hardware.pm +++ b/storage/emc/symmetrix/vmax/local/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/symmetrix/vmax/local/plugin.pm b/storage/emc/symmetrix/vmax/local/plugin.pm index 49a1c1985..c8f334a83 100644 --- a/storage/emc/symmetrix/vmax/local/plugin.pm +++ b/storage/emc/symmetrix/vmax/local/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/vplex/restapi/custom/vplexapi.pm b/storage/emc/vplex/restapi/custom/vplexapi.pm index 32430d3b6..10abf93fa 100644 --- a/storage/emc/vplex/restapi/custom/vplexapi.pm +++ b/storage/emc/vplex/restapi/custom/vplexapi.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/vplex/restapi/mode/clustercommunication.pm b/storage/emc/vplex/restapi/mode/clustercommunication.pm index 4c0741c50..ca9a53379 100644 --- a/storage/emc/vplex/restapi/mode/clustercommunication.pm +++ b/storage/emc/vplex/restapi/mode/clustercommunication.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/vplex/restapi/mode/clusterdevices.pm b/storage/emc/vplex/restapi/mode/clusterdevices.pm index 4a61eb654..7d0c656f8 100644 --- a/storage/emc/vplex/restapi/mode/clusterdevices.pm +++ b/storage/emc/vplex/restapi/mode/clusterdevices.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/vplex/restapi/mode/directors.pm b/storage/emc/vplex/restapi/mode/directors.pm index bbd0dcf35..554637c43 100644 --- a/storage/emc/vplex/restapi/mode/directors.pm +++ b/storage/emc/vplex/restapi/mode/directors.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/vplex/restapi/mode/distributeddevices.pm b/storage/emc/vplex/restapi/mode/distributeddevices.pm index 9d1b5cee3..d162d42a9 100644 --- a/storage/emc/vplex/restapi/mode/distributeddevices.pm +++ b/storage/emc/vplex/restapi/mode/distributeddevices.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/vplex/restapi/mode/fans.pm b/storage/emc/vplex/restapi/mode/fans.pm index 5942bd2a4..e169e860c 100644 --- a/storage/emc/vplex/restapi/mode/fans.pm +++ b/storage/emc/vplex/restapi/mode/fans.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/vplex/restapi/mode/psus.pm b/storage/emc/vplex/restapi/mode/psus.pm index 9f00a96b6..f9736d593 100644 --- a/storage/emc/vplex/restapi/mode/psus.pm +++ b/storage/emc/vplex/restapi/mode/psus.pm @@ -1,4 +1,4 @@ -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/vplex/restapi/mode/storagevolumes.pm b/storage/emc/vplex/restapi/mode/storagevolumes.pm index 78944b9af..3816112d2 100644 --- a/storage/emc/vplex/restapi/mode/storagevolumes.pm +++ b/storage/emc/vplex/restapi/mode/storagevolumes.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/vplex/restapi/plugin.pm b/storage/emc/vplex/restapi/plugin.pm index ee652d963..3bdc00c0e 100644 --- a/storage/emc/vplex/restapi/plugin.pm +++ b/storage/emc/vplex/restapi/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/xtremio/restapi/custom/xtremioapi.pm b/storage/emc/xtremio/restapi/custom/xtremioapi.pm index af3ba4ac0..7b6a224ed 100644 --- a/storage/emc/xtremio/restapi/custom/xtremioapi.pm +++ b/storage/emc/xtremio/restapi/custom/xtremioapi.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/xtremio/restapi/mode/clusterhealth.pm b/storage/emc/xtremio/restapi/mode/clusterhealth.pm index 3ad65cf32..439cbb3d3 100644 --- a/storage/emc/xtremio/restapi/mode/clusterhealth.pm +++ b/storage/emc/xtremio/restapi/mode/clusterhealth.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/xtremio/restapi/mode/ssdendurance.pm b/storage/emc/xtremio/restapi/mode/ssdendurance.pm index 2873af532..15842a529 100644 --- a/storage/emc/xtremio/restapi/mode/ssdendurance.pm +++ b/storage/emc/xtremio/restapi/mode/ssdendurance.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/xtremio/restapi/mode/ssdiops.pm b/storage/emc/xtremio/restapi/mode/ssdiops.pm index 63d013659..01de1d0ed 100644 --- a/storage/emc/xtremio/restapi/mode/ssdiops.pm +++ b/storage/emc/xtremio/restapi/mode/ssdiops.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/xtremio/restapi/mode/xenvscpu.pm b/storage/emc/xtremio/restapi/mode/xenvscpu.pm index c64f1ac01..e207e092a 100644 --- a/storage/emc/xtremio/restapi/mode/xenvscpu.pm +++ b/storage/emc/xtremio/restapi/mode/xenvscpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/xtremio/restapi/mode/xenvsstate.pm b/storage/emc/xtremio/restapi/mode/xenvsstate.pm index 34a84d430..3aaf18d10 100644 --- a/storage/emc/xtremio/restapi/mode/xenvsstate.pm +++ b/storage/emc/xtremio/restapi/mode/xenvsstate.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/emc/xtremio/restapi/plugin.pm b/storage/emc/xtremio/restapi/plugin.pm index 216166766..f8ceb8705 100644 --- a/storage/emc/xtremio/restapi/plugin.pm +++ b/storage/emc/xtremio/restapi/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/exagrid/snmp/mode/serverusage.pm b/storage/exagrid/snmp/mode/serverusage.pm index f8b2ae1ec..7652b929f 100644 --- a/storage/exagrid/snmp/mode/serverusage.pm +++ b/storage/exagrid/snmp/mode/serverusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/exagrid/snmp/plugin.pm b/storage/exagrid/snmp/plugin.pm index 434f537fe..1175d53ea 100644 --- a/storage/exagrid/snmp/plugin.pm +++ b/storage/exagrid/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/fujitsu/eternus/dx/ssh/mode/cpu.pm b/storage/fujitsu/eternus/dx/ssh/mode/cpu.pm index 296b59791..a7aabb5e0 100644 --- a/storage/fujitsu/eternus/dx/ssh/mode/cpu.pm +++ b/storage/fujitsu/eternus/dx/ssh/mode/cpu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/fujitsu/eternus/dx/ssh/mode/physicaldisk.pm b/storage/fujitsu/eternus/dx/ssh/mode/physicaldisk.pm index 665e082af..01435be08 100644 --- a/storage/fujitsu/eternus/dx/ssh/mode/physicaldisk.pm +++ b/storage/fujitsu/eternus/dx/ssh/mode/physicaldisk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/fujitsu/eternus/dx/ssh/mode/portstats.pm b/storage/fujitsu/eternus/dx/ssh/mode/portstats.pm index e32d4d318..47e541aeb 100644 --- a/storage/fujitsu/eternus/dx/ssh/mode/portstats.pm +++ b/storage/fujitsu/eternus/dx/ssh/mode/portstats.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/fujitsu/eternus/dx/ssh/mode/psu.pm b/storage/fujitsu/eternus/dx/ssh/mode/psu.pm index 80d85ff02..4269cc951 100644 --- a/storage/fujitsu/eternus/dx/ssh/mode/psu.pm +++ b/storage/fujitsu/eternus/dx/ssh/mode/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/fujitsu/eternus/dx/ssh/mode/raidgroups.pm b/storage/fujitsu/eternus/dx/ssh/mode/raidgroups.pm index cff517e52..d0a9d12cd 100644 --- a/storage/fujitsu/eternus/dx/ssh/mode/raidgroups.pm +++ b/storage/fujitsu/eternus/dx/ssh/mode/raidgroups.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/fujitsu/eternus/dx/ssh/mode/volumestats.pm b/storage/fujitsu/eternus/dx/ssh/mode/volumestats.pm index 151a04e3d..e5500f437 100644 --- a/storage/fujitsu/eternus/dx/ssh/mode/volumestats.pm +++ b/storage/fujitsu/eternus/dx/ssh/mode/volumestats.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/fujitsu/eternus/dx/ssh/plugin.pm b/storage/fujitsu/eternus/dx/ssh/plugin.pm index f1688fe8a..7e64c1d2b 100644 --- a/storage/fujitsu/eternus/dx/ssh/plugin.pm +++ b/storage/fujitsu/eternus/dx/ssh/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hitachi/hnas/snmp/plugin.pm b/storage/hitachi/hnas/snmp/plugin.pm index 805536bfe..6c403b2aa 100644 --- a/storage/hitachi/hnas/snmp/plugin.pm +++ b/storage/hitachi/hnas/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hitachi/standard/snmp/mode/components/component.pm b/storage/hitachi/standard/snmp/mode/components/component.pm index f7f364edc..441c455c9 100644 --- a/storage/hitachi/standard/snmp/mode/components/component.pm +++ b/storage/hitachi/standard/snmp/mode/components/component.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hitachi/standard/snmp/mode/components/dkc.pm b/storage/hitachi/standard/snmp/mode/components/dkc.pm index f07264c63..43544c0b0 100644 --- a/storage/hitachi/standard/snmp/mode/components/dkc.pm +++ b/storage/hitachi/standard/snmp/mode/components/dkc.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hitachi/standard/snmp/mode/components/dku.pm b/storage/hitachi/standard/snmp/mode/components/dku.pm index 1805719d8..a5ac777ee 100644 --- a/storage/hitachi/standard/snmp/mode/components/dku.pm +++ b/storage/hitachi/standard/snmp/mode/components/dku.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hitachi/standard/snmp/mode/hardware.pm b/storage/hitachi/standard/snmp/mode/hardware.pm index 8f1ba552d..e32f322fa 100644 --- a/storage/hitachi/standard/snmp/mode/hardware.pm +++ b/storage/hitachi/standard/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hitachi/standard/snmp/plugin.pm b/storage/hitachi/standard/snmp/plugin.pm index 8d21b1854..90c16b6b3 100644 --- a/storage/hitachi/standard/snmp/plugin.pm +++ b/storage/hitachi/standard/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/3par/7000/mode/battery.pm b/storage/hp/3par/7000/mode/battery.pm index 82bf678e1..f65d2b5ce 100644 --- a/storage/hp/3par/7000/mode/battery.pm +++ b/storage/hp/3par/7000/mode/battery.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/3par/7000/mode/cim.pm b/storage/hp/3par/7000/mode/cim.pm index 5d055fdc9..ee2580c75 100644 --- a/storage/hp/3par/7000/mode/cim.pm +++ b/storage/hp/3par/7000/mode/cim.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/3par/7000/mode/iscsi.pm b/storage/hp/3par/7000/mode/iscsi.pm index d2be4f21a..ab69583a1 100644 --- a/storage/hp/3par/7000/mode/iscsi.pm +++ b/storage/hp/3par/7000/mode/iscsi.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/3par/7000/mode/node.pm b/storage/hp/3par/7000/mode/node.pm index 91c55f1b7..08bde9051 100644 --- a/storage/hp/3par/7000/mode/node.pm +++ b/storage/hp/3par/7000/mode/node.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/3par/7000/mode/physicaldisk.pm b/storage/hp/3par/7000/mode/physicaldisk.pm index 550b5f214..b3846d066 100644 --- a/storage/hp/3par/7000/mode/physicaldisk.pm +++ b/storage/hp/3par/7000/mode/physicaldisk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/3par/7000/mode/psu.pm b/storage/hp/3par/7000/mode/psu.pm index c69fc8c70..5dda4d6c0 100644 --- a/storage/hp/3par/7000/mode/psu.pm +++ b/storage/hp/3par/7000/mode/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/3par/7000/mode/storage.pm b/storage/hp/3par/7000/mode/storage.pm index 1a5b7df59..79bd22a9e 100644 --- a/storage/hp/3par/7000/mode/storage.pm +++ b/storage/hp/3par/7000/mode/storage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/3par/7000/mode/temperature.pm b/storage/hp/3par/7000/mode/temperature.pm index ca2072834..10ab06d5a 100644 --- a/storage/hp/3par/7000/mode/temperature.pm +++ b/storage/hp/3par/7000/mode/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/3par/7000/mode/volume.pm b/storage/hp/3par/7000/mode/volume.pm index 13dca9850..61f471893 100644 --- a/storage/hp/3par/7000/mode/volume.pm +++ b/storage/hp/3par/7000/mode/volume.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/3par/7000/mode/wsapi.pm b/storage/hp/3par/7000/mode/wsapi.pm index d794b01b9..2d5cbf9af 100644 --- a/storage/hp/3par/7000/mode/wsapi.pm +++ b/storage/hp/3par/7000/mode/wsapi.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/3par/7000/plugin.pm b/storage/hp/3par/7000/plugin.pm index e6ca52829..21bc3e3f4 100644 --- a/storage/hp/3par/7000/plugin.pm +++ b/storage/hp/3par/7000/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/eva/cli/custom/api.pm b/storage/hp/eva/cli/custom/api.pm index 4cbba0307..8daddb1d4 100644 --- a/storage/hp/eva/cli/custom/api.pm +++ b/storage/hp/eva/cli/custom/api.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/eva/cli/mode/components/battery.pm b/storage/hp/eva/cli/mode/components/battery.pm index 6c9f132ad..5625fb4b7 100644 --- a/storage/hp/eva/cli/mode/components/battery.pm +++ b/storage/hp/eva/cli/mode/components/battery.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/eva/cli/mode/components/disk.pm b/storage/hp/eva/cli/mode/components/disk.pm index da6549c0e..e454f1f57 100644 --- a/storage/hp/eva/cli/mode/components/disk.pm +++ b/storage/hp/eva/cli/mode/components/disk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/eva/cli/mode/components/diskgrp.pm b/storage/hp/eva/cli/mode/components/diskgrp.pm index 95794760b..deec03a3a 100644 --- a/storage/hp/eva/cli/mode/components/diskgrp.pm +++ b/storage/hp/eva/cli/mode/components/diskgrp.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/eva/cli/mode/components/fan.pm b/storage/hp/eva/cli/mode/components/fan.pm index 9ae236d1f..cf7826082 100644 --- a/storage/hp/eva/cli/mode/components/fan.pm +++ b/storage/hp/eva/cli/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/eva/cli/mode/components/iomodule.pm b/storage/hp/eva/cli/mode/components/iomodule.pm index 2b744a876..9b720ff3c 100644 --- a/storage/hp/eva/cli/mode/components/iomodule.pm +++ b/storage/hp/eva/cli/mode/components/iomodule.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/eva/cli/mode/components/psu.pm b/storage/hp/eva/cli/mode/components/psu.pm index 7afef9270..747f13f09 100644 --- a/storage/hp/eva/cli/mode/components/psu.pm +++ b/storage/hp/eva/cli/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/eva/cli/mode/components/system.pm b/storage/hp/eva/cli/mode/components/system.pm index 2d9b368c8..00ed0a9b8 100644 --- a/storage/hp/eva/cli/mode/components/system.pm +++ b/storage/hp/eva/cli/mode/components/system.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/eva/cli/mode/components/temperature.pm b/storage/hp/eva/cli/mode/components/temperature.pm index 29ed9cafc..a9a28d0f8 100644 --- a/storage/hp/eva/cli/mode/components/temperature.pm +++ b/storage/hp/eva/cli/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/eva/cli/mode/hardware.pm b/storage/hp/eva/cli/mode/hardware.pm index b84a3526c..d92eaf505 100644 --- a/storage/hp/eva/cli/mode/hardware.pm +++ b/storage/hp/eva/cli/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/eva/cli/mode/storageusage.pm b/storage/hp/eva/cli/mode/storageusage.pm index ac64dfbe2..a2267c38d 100644 --- a/storage/hp/eva/cli/mode/storageusage.pm +++ b/storage/hp/eva/cli/mode/storageusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/eva/cli/plugin.pm b/storage/hp/eva/cli/plugin.pm index c193eeebf..7fd90317c 100644 --- a/storage/hp/eva/cli/plugin.pm +++ b/storage/hp/eva/cli/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/lefthand/snmp/mode/components/device.pm b/storage/hp/lefthand/snmp/mode/components/device.pm index 51659cfca..474e8eab8 100644 --- a/storage/hp/lefthand/snmp/mode/components/device.pm +++ b/storage/hp/lefthand/snmp/mode/components/device.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/lefthand/snmp/mode/components/fan.pm b/storage/hp/lefthand/snmp/mode/components/fan.pm index 3ed2bd922..8528110d9 100644 --- a/storage/hp/lefthand/snmp/mode/components/fan.pm +++ b/storage/hp/lefthand/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/lefthand/snmp/mode/components/psu.pm b/storage/hp/lefthand/snmp/mode/components/psu.pm index 82af3350f..a0d8961f3 100644 --- a/storage/hp/lefthand/snmp/mode/components/psu.pm +++ b/storage/hp/lefthand/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/lefthand/snmp/mode/components/rc.pm b/storage/hp/lefthand/snmp/mode/components/rc.pm index 072058760..53b57c707 100644 --- a/storage/hp/lefthand/snmp/mode/components/rc.pm +++ b/storage/hp/lefthand/snmp/mode/components/rc.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/lefthand/snmp/mode/components/rcc.pm b/storage/hp/lefthand/snmp/mode/components/rcc.pm index 2972bc02d..2917ada52 100644 --- a/storage/hp/lefthand/snmp/mode/components/rcc.pm +++ b/storage/hp/lefthand/snmp/mode/components/rcc.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/lefthand/snmp/mode/components/resources.pm b/storage/hp/lefthand/snmp/mode/components/resources.pm index 8c81baa2e..156c60af5 100644 --- a/storage/hp/lefthand/snmp/mode/components/resources.pm +++ b/storage/hp/lefthand/snmp/mode/components/resources.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/lefthand/snmp/mode/components/ro.pm b/storage/hp/lefthand/snmp/mode/components/ro.pm index 863db84d2..6fb381540 100644 --- a/storage/hp/lefthand/snmp/mode/components/ro.pm +++ b/storage/hp/lefthand/snmp/mode/components/ro.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/lefthand/snmp/mode/components/temperature.pm b/storage/hp/lefthand/snmp/mode/components/temperature.pm index ffa59bf80..0d68bc5e9 100644 --- a/storage/hp/lefthand/snmp/mode/components/temperature.pm +++ b/storage/hp/lefthand/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/lefthand/snmp/mode/components/voltage.pm b/storage/hp/lefthand/snmp/mode/components/voltage.pm index d01b35537..568c4d633 100644 --- a/storage/hp/lefthand/snmp/mode/components/voltage.pm +++ b/storage/hp/lefthand/snmp/mode/components/voltage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/lefthand/snmp/mode/hardware.pm b/storage/hp/lefthand/snmp/mode/hardware.pm index 3740026a9..9b2f41c05 100644 --- a/storage/hp/lefthand/snmp/mode/hardware.pm +++ b/storage/hp/lefthand/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/lefthand/snmp/mode/volumeusage.pm b/storage/hp/lefthand/snmp/mode/volumeusage.pm index d30473a7c..e0cd6c08c 100644 --- a/storage/hp/lefthand/snmp/mode/volumeusage.pm +++ b/storage/hp/lefthand/snmp/mode/volumeusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/lefthand/snmp/plugin.pm b/storage/hp/lefthand/snmp/plugin.pm index 900f0519a..6da2805ae 100644 --- a/storage/hp/lefthand/snmp/plugin.pm +++ b/storage/hp/lefthand/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/msa2000/snmp/plugin.pm b/storage/hp/msa2000/snmp/plugin.pm index 2f6a7fb14..4ad03e5b9 100644 --- a/storage/hp/msa2000/snmp/plugin.pm +++ b/storage/hp/msa2000/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/msl/snmp/mode/hardware.pm b/storage/hp/msl/snmp/mode/hardware.pm index cdae4bb3a..5c8385add 100644 --- a/storage/hp/msl/snmp/mode/hardware.pm +++ b/storage/hp/msl/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/msl/snmp/plugin.pm b/storage/hp/msl/snmp/plugin.pm index 4c7cdc464..cd7aae90d 100644 --- a/storage/hp/msl/snmp/plugin.pm +++ b/storage/hp/msl/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/p2000/xmlapi/custom.pm b/storage/hp/p2000/xmlapi/custom.pm index 90d523a32..d99078ead 100644 --- a/storage/hp/p2000/xmlapi/custom.pm +++ b/storage/hp/p2000/xmlapi/custom.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/p2000/xmlapi/mode/components/disk.pm b/storage/hp/p2000/xmlapi/mode/components/disk.pm index beff831c7..eefa4d73c 100644 --- a/storage/hp/p2000/xmlapi/mode/components/disk.pm +++ b/storage/hp/p2000/xmlapi/mode/components/disk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/p2000/xmlapi/mode/components/enclosure.pm b/storage/hp/p2000/xmlapi/mode/components/enclosure.pm index 1b06eeabe..a21d30df8 100644 --- a/storage/hp/p2000/xmlapi/mode/components/enclosure.pm +++ b/storage/hp/p2000/xmlapi/mode/components/enclosure.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/p2000/xmlapi/mode/components/fru.pm b/storage/hp/p2000/xmlapi/mode/components/fru.pm index 6bc59c6df..954c3e444 100644 --- a/storage/hp/p2000/xmlapi/mode/components/fru.pm +++ b/storage/hp/p2000/xmlapi/mode/components/fru.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/p2000/xmlapi/mode/components/sensors.pm b/storage/hp/p2000/xmlapi/mode/components/sensors.pm index 42520f6ce..4af4f6fdd 100644 --- a/storage/hp/p2000/xmlapi/mode/components/sensors.pm +++ b/storage/hp/p2000/xmlapi/mode/components/sensors.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/p2000/xmlapi/mode/components/vdisk.pm b/storage/hp/p2000/xmlapi/mode/components/vdisk.pm index bf96c75f2..880b726bb 100644 --- a/storage/hp/p2000/xmlapi/mode/components/vdisk.pm +++ b/storage/hp/p2000/xmlapi/mode/components/vdisk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/p2000/xmlapi/mode/health.pm b/storage/hp/p2000/xmlapi/mode/health.pm index 7cee07fe7..8eefa3617 100644 --- a/storage/hp/p2000/xmlapi/mode/health.pm +++ b/storage/hp/p2000/xmlapi/mode/health.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/p2000/xmlapi/mode/listvolumes.pm b/storage/hp/p2000/xmlapi/mode/listvolumes.pm index 2940fa4a1..6ddc3d9bb 100644 --- a/storage/hp/p2000/xmlapi/mode/listvolumes.pm +++ b/storage/hp/p2000/xmlapi/mode/listvolumes.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/p2000/xmlapi/mode/volumesstats.pm b/storage/hp/p2000/xmlapi/mode/volumesstats.pm index 72486a401..dd23ab1b2 100644 --- a/storage/hp/p2000/xmlapi/mode/volumesstats.pm +++ b/storage/hp/p2000/xmlapi/mode/volumesstats.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/p2000/xmlapi/plugin.pm b/storage/hp/p2000/xmlapi/plugin.pm index 04a58cc6c..305e49f60 100644 --- a/storage/hp/p2000/xmlapi/plugin.pm +++ b/storage/hp/p2000/xmlapi/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/storeonce/restapi/custom/api.pm b/storage/hp/storeonce/restapi/custom/api.pm index 6cb495765..b2f05bc8f 100644 --- a/storage/hp/storeonce/restapi/custom/api.pm +++ b/storage/hp/storeonce/restapi/custom/api.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/storeonce/restapi/mode/clusterusage.pm b/storage/hp/storeonce/restapi/mode/clusterusage.pm index 3abcb02be..37f6fde08 100644 --- a/storage/hp/storeonce/restapi/mode/clusterusage.pm +++ b/storage/hp/storeonce/restapi/mode/clusterusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/storeonce/restapi/mode/fcsusage.pm b/storage/hp/storeonce/restapi/mode/fcsusage.pm index 0c99ca83d..6053e62c2 100644 --- a/storage/hp/storeonce/restapi/mode/fcsusage.pm +++ b/storage/hp/storeonce/restapi/mode/fcsusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/storeonce/restapi/mode/nasusage.pm b/storage/hp/storeonce/restapi/mode/nasusage.pm index a41d7c4e6..1cb254c6e 100644 --- a/storage/hp/storeonce/restapi/mode/nasusage.pm +++ b/storage/hp/storeonce/restapi/mode/nasusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/storeonce/restapi/mode/servicesetusage.pm b/storage/hp/storeonce/restapi/mode/servicesetusage.pm index 5e84754e6..cc75bfda5 100644 --- a/storage/hp/storeonce/restapi/mode/servicesetusage.pm +++ b/storage/hp/storeonce/restapi/mode/servicesetusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/storeonce/restapi/plugin.pm b/storage/hp/storeonce/restapi/plugin.pm index 7f457d8eb..c56064633 100644 --- a/storage/hp/storeonce/restapi/plugin.pm +++ b/storage/hp/storeonce/restapi/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/storeonce/ssh/custom/custom.pm b/storage/hp/storeonce/ssh/custom/custom.pm index 68de4af2a..851d329f8 100644 --- a/storage/hp/storeonce/ssh/custom/custom.pm +++ b/storage/hp/storeonce/ssh/custom/custom.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/storeonce/ssh/mode/components/hardware.pm b/storage/hp/storeonce/ssh/mode/components/hardware.pm index 6db9bbe27..10af3567c 100644 --- a/storage/hp/storeonce/ssh/mode/components/hardware.pm +++ b/storage/hp/storeonce/ssh/mode/components/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/storeonce/ssh/mode/components/serviceset.pm b/storage/hp/storeonce/ssh/mode/components/serviceset.pm index 9584c0442..415cbd311 100644 --- a/storage/hp/storeonce/ssh/mode/components/serviceset.pm +++ b/storage/hp/storeonce/ssh/mode/components/serviceset.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/storeonce/ssh/mode/hardware.pm b/storage/hp/storeonce/ssh/mode/hardware.pm index 546e41c90..018a56165 100644 --- a/storage/hp/storeonce/ssh/mode/hardware.pm +++ b/storage/hp/storeonce/ssh/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/hp/storeonce/ssh/plugin.pm b/storage/hp/storeonce/ssh/plugin.pm index 7639bd4db..b2b3ecbe1 100644 --- a/storage/hp/storeonce/ssh/plugin.pm +++ b/storage/hp/storeonce/ssh/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/DS3000/cli/plugin.pm b/storage/ibm/DS3000/cli/plugin.pm index 9d24d269c..a8a00552c 100644 --- a/storage/ibm/DS3000/cli/plugin.pm +++ b/storage/ibm/DS3000/cli/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/DS4000/cli/plugin.pm b/storage/ibm/DS4000/cli/plugin.pm index 9c196c6e6..f9b906cae 100644 --- a/storage/ibm/DS4000/cli/plugin.pm +++ b/storage/ibm/DS4000/cli/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/DS5000/cli/plugin.pm b/storage/ibm/DS5000/cli/plugin.pm index 59530a16e..e6841de01 100644 --- a/storage/ibm/DS5000/cli/plugin.pm +++ b/storage/ibm/DS5000/cli/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/storwize/ssh/mode/components/array.pm b/storage/ibm/storwize/ssh/mode/components/array.pm index 09e8b2c96..e0923f948 100644 --- a/storage/ibm/storwize/ssh/mode/components/array.pm +++ b/storage/ibm/storwize/ssh/mode/components/array.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/storwize/ssh/mode/components/drive.pm b/storage/ibm/storwize/ssh/mode/components/drive.pm index d6d97f31f..ea17561ab 100644 --- a/storage/ibm/storwize/ssh/mode/components/drive.pm +++ b/storage/ibm/storwize/ssh/mode/components/drive.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/storwize/ssh/mode/components/enclosure.pm b/storage/ibm/storwize/ssh/mode/components/enclosure.pm index 64329f1dd..9a17836ff 100644 --- a/storage/ibm/storwize/ssh/mode/components/enclosure.pm +++ b/storage/ibm/storwize/ssh/mode/components/enclosure.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/storwize/ssh/mode/components/enclosurebattery.pm b/storage/ibm/storwize/ssh/mode/components/enclosurebattery.pm index 003f2a95c..1e98a3d0c 100644 --- a/storage/ibm/storwize/ssh/mode/components/enclosurebattery.pm +++ b/storage/ibm/storwize/ssh/mode/components/enclosurebattery.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/storwize/ssh/mode/components/enclosurecanister.pm b/storage/ibm/storwize/ssh/mode/components/enclosurecanister.pm index d6461c7db..2ad079ac4 100644 --- a/storage/ibm/storwize/ssh/mode/components/enclosurecanister.pm +++ b/storage/ibm/storwize/ssh/mode/components/enclosurecanister.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/storwize/ssh/mode/components/enclosurepsu.pm b/storage/ibm/storwize/ssh/mode/components/enclosurepsu.pm index 5979780df..2b8529849 100644 --- a/storage/ibm/storwize/ssh/mode/components/enclosurepsu.pm +++ b/storage/ibm/storwize/ssh/mode/components/enclosurepsu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/storwize/ssh/mode/components/host.pm b/storage/ibm/storwize/ssh/mode/components/host.pm index 937c71df7..dab1fa17f 100644 --- a/storage/ibm/storwize/ssh/mode/components/host.pm +++ b/storage/ibm/storwize/ssh/mode/components/host.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/storwize/ssh/mode/components/mdisk.pm b/storage/ibm/storwize/ssh/mode/components/mdisk.pm index 6a95e7e4c..48d22ee90 100644 --- a/storage/ibm/storwize/ssh/mode/components/mdisk.pm +++ b/storage/ibm/storwize/ssh/mode/components/mdisk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/storwize/ssh/mode/components/node.pm b/storage/ibm/storwize/ssh/mode/components/node.pm index 6c844f7fe..95abf1870 100644 --- a/storage/ibm/storwize/ssh/mode/components/node.pm +++ b/storage/ibm/storwize/ssh/mode/components/node.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/storwize/ssh/mode/components/portfc.pm b/storage/ibm/storwize/ssh/mode/components/portfc.pm index f7c684eb5..07b969d6d 100644 --- a/storage/ibm/storwize/ssh/mode/components/portfc.pm +++ b/storage/ibm/storwize/ssh/mode/components/portfc.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/storwize/ssh/mode/components/portsas.pm b/storage/ibm/storwize/ssh/mode/components/portsas.pm index 255e419e0..6080788ed 100644 --- a/storage/ibm/storwize/ssh/mode/components/portsas.pm +++ b/storage/ibm/storwize/ssh/mode/components/portsas.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/storwize/ssh/mode/components/quorum.pm b/storage/ibm/storwize/ssh/mode/components/quorum.pm index 4358530ba..1140c243c 100644 --- a/storage/ibm/storwize/ssh/mode/components/quorum.pm +++ b/storage/ibm/storwize/ssh/mode/components/quorum.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/storwize/ssh/mode/components/systemstats.pm b/storage/ibm/storwize/ssh/mode/components/systemstats.pm index 214e16ac0..b8c861403 100644 --- a/storage/ibm/storwize/ssh/mode/components/systemstats.pm +++ b/storage/ibm/storwize/ssh/mode/components/systemstats.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/storwize/ssh/mode/components/vdisk.pm b/storage/ibm/storwize/ssh/mode/components/vdisk.pm index 23d534748..1b2ca7392 100644 --- a/storage/ibm/storwize/ssh/mode/components/vdisk.pm +++ b/storage/ibm/storwize/ssh/mode/components/vdisk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/storwize/ssh/mode/eventlog.pm b/storage/ibm/storwize/ssh/mode/eventlog.pm index 260d7fbfe..e8213bac3 100644 --- a/storage/ibm/storwize/ssh/mode/eventlog.pm +++ b/storage/ibm/storwize/ssh/mode/eventlog.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/storwize/ssh/mode/hardware.pm b/storage/ibm/storwize/ssh/mode/hardware.pm index 2453c3040..93ed775fe 100644 --- a/storage/ibm/storwize/ssh/mode/hardware.pm +++ b/storage/ibm/storwize/ssh/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/storwize/ssh/mode/poolusage.pm b/storage/ibm/storwize/ssh/mode/poolusage.pm index e9285062e..aaff22485 100644 --- a/storage/ibm/storwize/ssh/mode/poolusage.pm +++ b/storage/ibm/storwize/ssh/mode/poolusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/storwize/ssh/plugin.pm b/storage/ibm/storwize/ssh/plugin.pm index 24d9759e0..ca97af6e6 100644 --- a/storage/ibm/storwize/ssh/plugin.pm +++ b/storage/ibm/storwize/ssh/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/ts2900/snmp/mode/hardware.pm b/storage/ibm/ts2900/snmp/mode/hardware.pm index 73cf94fd9..02b4e0645 100644 --- a/storage/ibm/ts2900/snmp/mode/hardware.pm +++ b/storage/ibm/ts2900/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/ts2900/snmp/plugin.pm b/storage/ibm/ts2900/snmp/plugin.pm index 58fdf9f77..94df8c262 100644 --- a/storage/ibm/ts2900/snmp/plugin.pm +++ b/storage/ibm/ts2900/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/ts3100/snmp/mode/globalstatus.pm b/storage/ibm/ts3100/snmp/mode/globalstatus.pm index 19aba64f7..137af05d4 100644 --- a/storage/ibm/ts3100/snmp/mode/globalstatus.pm +++ b/storage/ibm/ts3100/snmp/mode/globalstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/ts3100/snmp/plugin.pm b/storage/ibm/ts3100/snmp/plugin.pm index e53e1533d..ca95f7b03 100644 --- a/storage/ibm/ts3100/snmp/plugin.pm +++ b/storage/ibm/ts3100/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/ts3200/snmp/mode/globalstatus.pm b/storage/ibm/ts3200/snmp/mode/globalstatus.pm index 7ff6889ac..c74c20409 100644 --- a/storage/ibm/ts3200/snmp/mode/globalstatus.pm +++ b/storage/ibm/ts3200/snmp/mode/globalstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/ts3200/snmp/plugin.pm b/storage/ibm/ts3200/snmp/plugin.pm index f4ab9732c..25b1707d1 100644 --- a/storage/ibm/ts3200/snmp/plugin.pm +++ b/storage/ibm/ts3200/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/ibm/ts3500/snmp/plugin.pm b/storage/ibm/ts3500/snmp/plugin.pm index a662e2789..75ea92fc2 100644 --- a/storage/ibm/ts3500/snmp/plugin.pm +++ b/storage/ibm/ts3500/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/kaminario/restapi/custom/api.pm b/storage/kaminario/restapi/custom/api.pm index 022bfdc2d..4ff8c8def 100644 --- a/storage/kaminario/restapi/custom/api.pm +++ b/storage/kaminario/restapi/custom/api.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/kaminario/restapi/mode/systemusage.pm b/storage/kaminario/restapi/mode/systemusage.pm index d865a334b..6777a7759 100644 --- a/storage/kaminario/restapi/mode/systemusage.pm +++ b/storage/kaminario/restapi/mode/systemusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/kaminario/restapi/mode/volumeusage.pm b/storage/kaminario/restapi/mode/volumeusage.pm index 0a3078e8f..c28707e6c 100644 --- a/storage/kaminario/restapi/mode/volumeusage.pm +++ b/storage/kaminario/restapi/mode/volumeusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/kaminario/restapi/plugin.pm b/storage/kaminario/restapi/plugin.pm index bd3316d46..d3c34e701 100644 --- a/storage/kaminario/restapi/plugin.pm +++ b/storage/kaminario/restapi/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/lenovo/sseries/snmp/plugin.pm b/storage/lenovo/sseries/snmp/plugin.pm index cea735226..a2b4b1ff9 100644 --- a/storage/lenovo/sseries/snmp/plugin.pm +++ b/storage/lenovo/sseries/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/aggregatestate.pm b/storage/netapp/snmp/mode/aggregatestate.pm index 037cffb9c..cca115467 100644 --- a/storage/netapp/snmp/mode/aggregatestate.pm +++ b/storage/netapp/snmp/mode/aggregatestate.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/cacheage.pm b/storage/netapp/snmp/mode/cacheage.pm index 39718ad90..c259e9cf8 100644 --- a/storage/netapp/snmp/mode/cacheage.pm +++ b/storage/netapp/snmp/mode/cacheage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/components/communication.pm b/storage/netapp/snmp/mode/components/communication.pm index 5563fdf02..7e2bedb9c 100644 --- a/storage/netapp/snmp/mode/components/communication.pm +++ b/storage/netapp/snmp/mode/components/communication.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/components/electronics.pm b/storage/netapp/snmp/mode/components/electronics.pm index ae66030c4..edb7d76ab 100644 --- a/storage/netapp/snmp/mode/components/electronics.pm +++ b/storage/netapp/snmp/mode/components/electronics.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/components/fan.pm b/storage/netapp/snmp/mode/components/fan.pm index 46199c1c2..8af8a8a1d 100644 --- a/storage/netapp/snmp/mode/components/fan.pm +++ b/storage/netapp/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/components/psu.pm b/storage/netapp/snmp/mode/components/psu.pm index 40f4cdaae..a688a96d5 100644 --- a/storage/netapp/snmp/mode/components/psu.pm +++ b/storage/netapp/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/components/raid.pm b/storage/netapp/snmp/mode/components/raid.pm index f976ee13a..0733c4692 100644 --- a/storage/netapp/snmp/mode/components/raid.pm +++ b/storage/netapp/snmp/mode/components/raid.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/components/temperature.pm b/storage/netapp/snmp/mode/components/temperature.pm index 695945a8c..f5c49e1aa 100644 --- a/storage/netapp/snmp/mode/components/temperature.pm +++ b/storage/netapp/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/components/voltage.pm b/storage/netapp/snmp/mode/components/voltage.pm index 8bee7a3f8..66f95548d 100644 --- a/storage/netapp/snmp/mode/components/voltage.pm +++ b/storage/netapp/snmp/mode/components/voltage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/cpstatistics.pm b/storage/netapp/snmp/mode/cpstatistics.pm index 3d497d2cf..ec35ee4fa 100644 --- a/storage/netapp/snmp/mode/cpstatistics.pm +++ b/storage/netapp/snmp/mode/cpstatistics.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/cpuload.pm b/storage/netapp/snmp/mode/cpuload.pm index 8c4083f58..2b1d30890 100644 --- a/storage/netapp/snmp/mode/cpuload.pm +++ b/storage/netapp/snmp/mode/cpuload.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/diskfailed.pm b/storage/netapp/snmp/mode/diskfailed.pm index 7b0712345..7f829ec4c 100644 --- a/storage/netapp/snmp/mode/diskfailed.pm +++ b/storage/netapp/snmp/mode/diskfailed.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/fan.pm b/storage/netapp/snmp/mode/fan.pm index f0d6b2666..96e14db13 100644 --- a/storage/netapp/snmp/mode/fan.pm +++ b/storage/netapp/snmp/mode/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/filesys.pm b/storage/netapp/snmp/mode/filesys.pm index f2319f80b..a1cd1d6d0 100644 --- a/storage/netapp/snmp/mode/filesys.pm +++ b/storage/netapp/snmp/mode/filesys.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/globalstatus.pm b/storage/netapp/snmp/mode/globalstatus.pm index ee42454a0..bca34e95c 100644 --- a/storage/netapp/snmp/mode/globalstatus.pm +++ b/storage/netapp/snmp/mode/globalstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/listfilesys.pm b/storage/netapp/snmp/mode/listfilesys.pm index c630fc354..510f05979 100644 --- a/storage/netapp/snmp/mode/listfilesys.pm +++ b/storage/netapp/snmp/mode/listfilesys.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/ndmpsessions.pm b/storage/netapp/snmp/mode/ndmpsessions.pm index 86d13f18e..b469d25f9 100644 --- a/storage/netapp/snmp/mode/ndmpsessions.pm +++ b/storage/netapp/snmp/mode/ndmpsessions.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/nvram.pm b/storage/netapp/snmp/mode/nvram.pm index 48d07ad63..0a52336d2 100644 --- a/storage/netapp/snmp/mode/nvram.pm +++ b/storage/netapp/snmp/mode/nvram.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/partnerstatus.pm b/storage/netapp/snmp/mode/partnerstatus.pm index e7b3730b1..efdde21fc 100644 --- a/storage/netapp/snmp/mode/partnerstatus.pm +++ b/storage/netapp/snmp/mode/partnerstatus.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/psu.pm b/storage/netapp/snmp/mode/psu.pm index 7f092fe48..0c2c75295 100644 --- a/storage/netapp/snmp/mode/psu.pm +++ b/storage/netapp/snmp/mode/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/qtreeusage.pm b/storage/netapp/snmp/mode/qtreeusage.pm index 2f1adf006..30b9badd4 100644 --- a/storage/netapp/snmp/mode/qtreeusage.pm +++ b/storage/netapp/snmp/mode/qtreeusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/sharecalls.pm b/storage/netapp/snmp/mode/sharecalls.pm index 7954b4119..1220c2ec8 100644 --- a/storage/netapp/snmp/mode/sharecalls.pm +++ b/storage/netapp/snmp/mode/sharecalls.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/shelf.pm b/storage/netapp/snmp/mode/shelf.pm index d59eb7ed4..b49db9cea 100644 --- a/storage/netapp/snmp/mode/shelf.pm +++ b/storage/netapp/snmp/mode/shelf.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/snapmirrorlag.pm b/storage/netapp/snmp/mode/snapmirrorlag.pm index 670d769bc..58e88d3d8 100644 --- a/storage/netapp/snmp/mode/snapmirrorlag.pm +++ b/storage/netapp/snmp/mode/snapmirrorlag.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/snapshotage.pm b/storage/netapp/snmp/mode/snapshotage.pm index 81bee0c3f..2dcf7c077 100644 --- a/storage/netapp/snmp/mode/snapshotage.pm +++ b/storage/netapp/snmp/mode/snapshotage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/temperature.pm b/storage/netapp/snmp/mode/temperature.pm index 34bdeb00c..bdcdc86a5 100644 --- a/storage/netapp/snmp/mode/temperature.pm +++ b/storage/netapp/snmp/mode/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/mode/volumeoptions.pm b/storage/netapp/snmp/mode/volumeoptions.pm index 4006d0ded..97f416ed9 100644 --- a/storage/netapp/snmp/mode/volumeoptions.pm +++ b/storage/netapp/snmp/mode/volumeoptions.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/netapp/snmp/plugin.pm b/storage/netapp/snmp/plugin.pm index 0a5cbdb7d..4ac2fb087 100644 --- a/storage/netapp/snmp/plugin.pm +++ b/storage/netapp/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/nimble/snmp/mode/globalstats.pm b/storage/nimble/snmp/mode/globalstats.pm index 28c29f9f7..951f014ed 100644 --- a/storage/nimble/snmp/mode/globalstats.pm +++ b/storage/nimble/snmp/mode/globalstats.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/nimble/snmp/mode/volumeusage.pm b/storage/nimble/snmp/mode/volumeusage.pm index f5a082f43..d2dd4addf 100644 --- a/storage/nimble/snmp/mode/volumeusage.pm +++ b/storage/nimble/snmp/mode/volumeusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/nimble/snmp/plugin.pm b/storage/nimble/snmp/plugin.pm index f2d13531f..69db4233c 100644 --- a/storage/nimble/snmp/plugin.pm +++ b/storage/nimble/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/oracle/zs/snmp/mode/components/module.pm b/storage/oracle/zs/snmp/mode/components/module.pm index 448567ac9..b0fda38f0 100644 --- a/storage/oracle/zs/snmp/mode/components/module.pm +++ b/storage/oracle/zs/snmp/mode/components/module.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/oracle/zs/snmp/mode/hardware.pm b/storage/oracle/zs/snmp/mode/hardware.pm index 094d89bf2..74c97ae89 100644 --- a/storage/oracle/zs/snmp/mode/hardware.pm +++ b/storage/oracle/zs/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/oracle/zs/snmp/mode/listshares.pm b/storage/oracle/zs/snmp/mode/listshares.pm index 52d394167..382868b90 100644 --- a/storage/oracle/zs/snmp/mode/listshares.pm +++ b/storage/oracle/zs/snmp/mode/listshares.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/oracle/zs/snmp/mode/shareusage.pm b/storage/oracle/zs/snmp/mode/shareusage.pm index c89fe20d9..ebd7cfee1 100644 --- a/storage/oracle/zs/snmp/mode/shareusage.pm +++ b/storage/oracle/zs/snmp/mode/shareusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/oracle/zs/snmp/plugin.pm b/storage/oracle/zs/snmp/plugin.pm index bd3c0d31f..7d96992c1 100644 --- a/storage/oracle/zs/snmp/plugin.pm +++ b/storage/oracle/zs/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/overland/neo/snmp/mode/components/drive.pm b/storage/overland/neo/snmp/mode/components/drive.pm index d385899e0..29afb40a5 100644 --- a/storage/overland/neo/snmp/mode/components/drive.pm +++ b/storage/overland/neo/snmp/mode/components/drive.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/overland/neo/snmp/mode/components/library.pm b/storage/overland/neo/snmp/mode/components/library.pm index db3e7a120..54c81f928 100644 --- a/storage/overland/neo/snmp/mode/components/library.pm +++ b/storage/overland/neo/snmp/mode/components/library.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/overland/neo/snmp/mode/eventlog.pm b/storage/overland/neo/snmp/mode/eventlog.pm index 8d9181e92..95d57360f 100644 --- a/storage/overland/neo/snmp/mode/eventlog.pm +++ b/storage/overland/neo/snmp/mode/eventlog.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/overland/neo/snmp/mode/hardware.pm b/storage/overland/neo/snmp/mode/hardware.pm index 91f1d70bc..394e7e5ab 100644 --- a/storage/overland/neo/snmp/mode/hardware.pm +++ b/storage/overland/neo/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/overland/neo/snmp/plugin.pm b/storage/overland/neo/snmp/plugin.pm index aa6d67700..b53901546 100644 --- a/storage/overland/neo/snmp/plugin.pm +++ b/storage/overland/neo/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/panzura/snmp/mode/cpucloud.pm b/storage/panzura/snmp/mode/cpucloud.pm index 753df8d94..9bba310d7 100644 --- a/storage/panzura/snmp/mode/cpucloud.pm +++ b/storage/panzura/snmp/mode/cpucloud.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/panzura/snmp/mode/diskusagelocal.pm b/storage/panzura/snmp/mode/diskusagelocal.pm index 5108c4bb2..effda2192 100644 --- a/storage/panzura/snmp/mode/diskusagelocal.pm +++ b/storage/panzura/snmp/mode/diskusagelocal.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/panzura/snmp/mode/memory.pm b/storage/panzura/snmp/mode/memory.pm index 54debc6cd..e83a6dcbb 100644 --- a/storage/panzura/snmp/mode/memory.pm +++ b/storage/panzura/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/panzura/snmp/mode/ratios.pm b/storage/panzura/snmp/mode/ratios.pm index 43766bfa5..5a71a5c3d 100644 --- a/storage/panzura/snmp/mode/ratios.pm +++ b/storage/panzura/snmp/mode/ratios.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/panzura/snmp/plugin.pm b/storage/panzura/snmp/plugin.pm index 1a31b752f..7a3b2b487 100644 --- a/storage/panzura/snmp/plugin.pm +++ b/storage/panzura/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/purestorage/restapi/custom/api.pm b/storage/purestorage/restapi/custom/api.pm index 161538fbb..bec58581c 100644 --- a/storage/purestorage/restapi/custom/api.pm +++ b/storage/purestorage/restapi/custom/api.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/purestorage/restapi/mode/alarms.pm b/storage/purestorage/restapi/mode/alarms.pm index 31d2ad3e1..2527d8498 100644 --- a/storage/purestorage/restapi/mode/alarms.pm +++ b/storage/purestorage/restapi/mode/alarms.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/purestorage/restapi/mode/hardware.pm b/storage/purestorage/restapi/mode/hardware.pm index 6c2f4755d..195eb0fe0 100644 --- a/storage/purestorage/restapi/mode/hardware.pm +++ b/storage/purestorage/restapi/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/purestorage/restapi/mode/listvolumes.pm b/storage/purestorage/restapi/mode/listvolumes.pm index 19c0cde56..25fcbe5e9 100644 --- a/storage/purestorage/restapi/mode/listvolumes.pm +++ b/storage/purestorage/restapi/mode/listvolumes.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/purestorage/restapi/mode/volumeusage.pm b/storage/purestorage/restapi/mode/volumeusage.pm index e48b3d7e5..7f130cc47 100644 --- a/storage/purestorage/restapi/mode/volumeusage.pm +++ b/storage/purestorage/restapi/mode/volumeusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/purestorage/restapi/plugin.pm b/storage/purestorage/restapi/plugin.pm index 8a12a1b1b..5d9cc5fbb 100644 --- a/storage/purestorage/restapi/plugin.pm +++ b/storage/purestorage/restapi/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/purestorage/snmp/mode/stats.pm b/storage/purestorage/snmp/mode/stats.pm index 2de919aa8..41fd12958 100644 --- a/storage/purestorage/snmp/mode/stats.pm +++ b/storage/purestorage/snmp/mode/stats.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/purestorage/snmp/plugin.pm b/storage/purestorage/snmp/plugin.pm index 5bd3f6938..4f2312911 100644 --- a/storage/purestorage/snmp/plugin.pm +++ b/storage/purestorage/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/qnap/snmp/mode/components/disk.pm b/storage/qnap/snmp/mode/components/disk.pm index be4c45657..9932846b5 100644 --- a/storage/qnap/snmp/mode/components/disk.pm +++ b/storage/qnap/snmp/mode/components/disk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/qnap/snmp/mode/components/fan.pm b/storage/qnap/snmp/mode/components/fan.pm index faa9dbaf1..676975375 100644 --- a/storage/qnap/snmp/mode/components/fan.pm +++ b/storage/qnap/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/qnap/snmp/mode/components/temperature.pm b/storage/qnap/snmp/mode/components/temperature.pm index 4aa96756a..b5ae2ff8c 100644 --- a/storage/qnap/snmp/mode/components/temperature.pm +++ b/storage/qnap/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/qnap/snmp/mode/hardware.pm b/storage/qnap/snmp/mode/hardware.pm index ab503bf52..62d59e97e 100644 --- a/storage/qnap/snmp/mode/hardware.pm +++ b/storage/qnap/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/qnap/snmp/mode/memory.pm b/storage/qnap/snmp/mode/memory.pm index a239b93d1..24fc9f123 100644 --- a/storage/qnap/snmp/mode/memory.pm +++ b/storage/qnap/snmp/mode/memory.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/qnap/snmp/mode/volumeusage.pm b/storage/qnap/snmp/mode/volumeusage.pm index 69f32bbf2..a86322f8d 100644 --- a/storage/qnap/snmp/mode/volumeusage.pm +++ b/storage/qnap/snmp/mode/volumeusage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/qnap/snmp/plugin.pm b/storage/qnap/snmp/plugin.pm index 7ccdf7ec6..a98cf04dd 100644 --- a/storage/qnap/snmp/plugin.pm +++ b/storage/qnap/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/qsan/nas/snmp/mode/components/disk.pm b/storage/qsan/nas/snmp/mode/components/disk.pm index 3bf490762..2c2a7f73a 100644 --- a/storage/qsan/nas/snmp/mode/components/disk.pm +++ b/storage/qsan/nas/snmp/mode/components/disk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/qsan/nas/snmp/mode/components/fan.pm b/storage/qsan/nas/snmp/mode/components/fan.pm index b36a959d5..5b715fba2 100644 --- a/storage/qsan/nas/snmp/mode/components/fan.pm +++ b/storage/qsan/nas/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/qsan/nas/snmp/mode/components/psu.pm b/storage/qsan/nas/snmp/mode/components/psu.pm index c11feb7d8..1ecbac563 100644 --- a/storage/qsan/nas/snmp/mode/components/psu.pm +++ b/storage/qsan/nas/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/qsan/nas/snmp/mode/components/resources.pm b/storage/qsan/nas/snmp/mode/components/resources.pm index 2e80e1857..b05ef80f1 100644 --- a/storage/qsan/nas/snmp/mode/components/resources.pm +++ b/storage/qsan/nas/snmp/mode/components/resources.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/qsan/nas/snmp/mode/components/temperature.pm b/storage/qsan/nas/snmp/mode/components/temperature.pm index 28d3a3ddd..746616c5d 100644 --- a/storage/qsan/nas/snmp/mode/components/temperature.pm +++ b/storage/qsan/nas/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/qsan/nas/snmp/mode/components/voltage.pm b/storage/qsan/nas/snmp/mode/components/voltage.pm index 62548693e..314c00e11 100644 --- a/storage/qsan/nas/snmp/mode/components/voltage.pm +++ b/storage/qsan/nas/snmp/mode/components/voltage.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/qsan/nas/snmp/mode/hardware.pm b/storage/qsan/nas/snmp/mode/hardware.pm index d86c6be6d..29c24c1a4 100644 --- a/storage/qsan/nas/snmp/mode/hardware.pm +++ b/storage/qsan/nas/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/qsan/nas/snmp/plugin.pm b/storage/qsan/nas/snmp/plugin.pm index 768172631..3309654cd 100644 --- a/storage/qsan/nas/snmp/plugin.pm +++ b/storage/qsan/nas/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/quantum/scalar/snmp/plugin.pm b/storage/quantum/scalar/snmp/plugin.pm index 6c9a1fd08..9f30c211b 100644 --- a/storage/quantum/scalar/snmp/plugin.pm +++ b/storage/quantum/scalar/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/storagetek/sl/snmp/mode/components/cap.pm b/storage/storagetek/sl/snmp/mode/components/cap.pm index 1825a3e35..5519ac357 100644 --- a/storage/storagetek/sl/snmp/mode/components/cap.pm +++ b/storage/storagetek/sl/snmp/mode/components/cap.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/storagetek/sl/snmp/mode/components/controller.pm b/storage/storagetek/sl/snmp/mode/components/controller.pm index 61a6facf8..a4f2e0a51 100644 --- a/storage/storagetek/sl/snmp/mode/components/controller.pm +++ b/storage/storagetek/sl/snmp/mode/components/controller.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/storagetek/sl/snmp/mode/components/elevator.pm b/storage/storagetek/sl/snmp/mode/components/elevator.pm index a00685d4e..d8b888d78 100644 --- a/storage/storagetek/sl/snmp/mode/components/elevator.pm +++ b/storage/storagetek/sl/snmp/mode/components/elevator.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/storagetek/sl/snmp/mode/components/fan.pm b/storage/storagetek/sl/snmp/mode/components/fan.pm index 92b47d63d..2a0866ac4 100644 --- a/storage/storagetek/sl/snmp/mode/components/fan.pm +++ b/storage/storagetek/sl/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/storagetek/sl/snmp/mode/components/interface.pm b/storage/storagetek/sl/snmp/mode/components/interface.pm index bced82e01..2c340bf1e 100644 --- a/storage/storagetek/sl/snmp/mode/components/interface.pm +++ b/storage/storagetek/sl/snmp/mode/components/interface.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/storagetek/sl/snmp/mode/components/psu.pm b/storage/storagetek/sl/snmp/mode/components/psu.pm index 06e962376..9706ef2c4 100644 --- a/storage/storagetek/sl/snmp/mode/components/psu.pm +++ b/storage/storagetek/sl/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/storagetek/sl/snmp/mode/components/resources.pm b/storage/storagetek/sl/snmp/mode/components/resources.pm index 31ebad99c..3aaaa9eb9 100644 --- a/storage/storagetek/sl/snmp/mode/components/resources.pm +++ b/storage/storagetek/sl/snmp/mode/components/resources.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/storagetek/sl/snmp/mode/components/robot.pm b/storage/storagetek/sl/snmp/mode/components/robot.pm index cf8553920..99d9edc51 100644 --- a/storage/storagetek/sl/snmp/mode/components/robot.pm +++ b/storage/storagetek/sl/snmp/mode/components/robot.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/storagetek/sl/snmp/mode/components/temperature.pm b/storage/storagetek/sl/snmp/mode/components/temperature.pm index 1d4fae0f4..cf2a0486c 100644 --- a/storage/storagetek/sl/snmp/mode/components/temperature.pm +++ b/storage/storagetek/sl/snmp/mode/components/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/storagetek/sl/snmp/mode/components/turntable.pm b/storage/storagetek/sl/snmp/mode/components/turntable.pm index 83412f806..9e8a94340 100644 --- a/storage/storagetek/sl/snmp/mode/components/turntable.pm +++ b/storage/storagetek/sl/snmp/mode/components/turntable.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/storagetek/sl/snmp/mode/hardware.pm b/storage/storagetek/sl/snmp/mode/hardware.pm index a6d7c7b59..a4415d56c 100644 --- a/storage/storagetek/sl/snmp/mode/hardware.pm +++ b/storage/storagetek/sl/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/storagetek/sl/snmp/plugin.pm b/storage/storagetek/sl/snmp/plugin.pm index 92631432a..75c7f028f 100644 --- a/storage/storagetek/sl/snmp/plugin.pm +++ b/storage/storagetek/sl/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/synology/snmp/mode/components/disk.pm b/storage/synology/snmp/mode/components/disk.pm index 4bb49c734..6cf384830 100644 --- a/storage/synology/snmp/mode/components/disk.pm +++ b/storage/synology/snmp/mode/components/disk.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/synology/snmp/mode/components/fan.pm b/storage/synology/snmp/mode/components/fan.pm index e2d790dff..9e1f8ae1e 100644 --- a/storage/synology/snmp/mode/components/fan.pm +++ b/storage/synology/snmp/mode/components/fan.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/synology/snmp/mode/components/psu.pm b/storage/synology/snmp/mode/components/psu.pm index ecce2045e..506d189e5 100644 --- a/storage/synology/snmp/mode/components/psu.pm +++ b/storage/synology/snmp/mode/components/psu.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/synology/snmp/mode/components/raid.pm b/storage/synology/snmp/mode/components/raid.pm index 44171d0c6..449836092 100644 --- a/storage/synology/snmp/mode/components/raid.pm +++ b/storage/synology/snmp/mode/components/raid.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/synology/snmp/mode/components/system.pm b/storage/synology/snmp/mode/components/system.pm index 20d133187..ec40db8a9 100644 --- a/storage/synology/snmp/mode/components/system.pm +++ b/storage/synology/snmp/mode/components/system.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/synology/snmp/mode/hardware.pm b/storage/synology/snmp/mode/hardware.pm index b186e996c..914e2f239 100644 --- a/storage/synology/snmp/mode/hardware.pm +++ b/storage/synology/snmp/mode/hardware.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/synology/snmp/mode/temperature.pm b/storage/synology/snmp/mode/temperature.pm index 132455129..53dddcf3e 100644 --- a/storage/synology/snmp/mode/temperature.pm +++ b/storage/synology/snmp/mode/temperature.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/synology/snmp/mode/ups.pm b/storage/synology/snmp/mode/ups.pm index 7e0969f64..ada35f42e 100644 --- a/storage/synology/snmp/mode/ups.pm +++ b/storage/synology/snmp/mode/ups.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/synology/snmp/plugin.pm b/storage/synology/snmp/plugin.pm index 59ed09944..7c366430d 100644 --- a/storage/synology/snmp/plugin.pm +++ b/storage/synology/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for diff --git a/storage/violin/3000/snmp/plugin.pm b/storage/violin/3000/snmp/plugin.pm index fd8f32fb9..22bb6d16a 100644 --- a/storage/violin/3000/snmp/plugin.pm +++ b/storage/violin/3000/snmp/plugin.pm @@ -1,5 +1,5 @@ # -# Copyright 2017 Centreon (http://www.centreon.com/) +# Copyright 2018 Centreon (http://www.centreon.com/) # # Centreon is a full-fledged industry-strength solution that meets # the needs in IT infrastructure and application monitoring for From 3ceeb821ec3494c9486157defa7fd8b450cddc58 Mon Sep 17 00:00:00 2001 From: Fabien THEPAUT Date: Tue, 30 Jan 2018 15:30:54 +0100 Subject: [PATCH 74/77] Fix to get multiple disks --- centreon/common/powershell/windows/liststorages.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/centreon/common/powershell/windows/liststorages.pm b/centreon/common/powershell/windows/liststorages.pm index 75027d371..8be94d820 100644 --- a/centreon/common/powershell/windows/liststorages.pm +++ b/centreon/common/powershell/windows/liststorages.pm @@ -54,7 +54,7 @@ Try { Write-Host $Error[0].Exception exit 1 }Foreach ($disk in $disks) { - Write-Host "[name=" $disk.Name "][used=" $disk.Used "][free=" $disk.Free "][provider=" $disk.Provider "][path=" $disk.Root "]" -NoNewline + Write-Host "[name=" $disk.Name "][used=" $disk.Used "][free=" $disk.Free "][provider=" $disk.Provider "][path=" $disk.Root "]" } exit 0 From 6bf72a5cfdbd322f75e24f2ffc8446112618a360 Mon Sep 17 00:00:00 2001 From: Colin GAGNAIRE Date: Wed, 7 Feb 2018 15:44:10 +0100 Subject: [PATCH 75/77] fix metric name in meta service mode --- apps/centreon/local/mode/metaservice.pm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/centreon/local/mode/metaservice.pm b/apps/centreon/local/mode/metaservice.pm index 3fb33bc39..1e66da7f5 100644 --- a/apps/centreon/local/mode/metaservice.pm +++ b/apps/centreon/local/mode/metaservice.pm @@ -219,7 +219,7 @@ sub run { my $display = defined($row->{meta_display}) ? $row->{meta_display} : $row->{calcul_type} . ' - value : %f'; $self->{output}->output_add(severity => $exit, short_msg => sprintf($display, $result)); - $self->{output}->perfdata_add(label => (defined($DSTYPE{$row->{data_source_type}}) ? $DSTYPE{$row->{data_source_type}} : 'g') . '[value]', + $self->{output}->perfdata_add(label => (defined($DSTYPE{$row->{data_source_type}}) ? $DSTYPE{$row->{data_source_type}} : 'g') . '[' . $row->{metric} . ']', value => sprintf("%02.2f", $result), warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'), critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical') From 07771df25161dae86b8aca8eb26491519c0a938f Mon Sep 17 00:00:00 2001 From: pkriko Date: Fri, 9 Feb 2018 15:56:55 +0100 Subject: [PATCH 76/77] added ssl_opt in api.pm --- apps/elasticsearch/restapi/custom/api.pm | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/elasticsearch/restapi/custom/api.pm b/apps/elasticsearch/restapi/custom/api.pm index c2eabb1ef..646a4fe17 100644 --- a/apps/elasticsearch/restapi/custom/api.pm +++ b/apps/elasticsearch/restapi/custom/api.pm @@ -49,6 +49,7 @@ sub new { "password:s@" => { name => 'password' }, "proxyurl:s@" => { name => 'proxyurl' }, "timeout:s@" => { name => 'timeout' }, + "ssl-opt:s@" => { name => 'ssl_opt' }, }); } $options{options}->add_help(package => __PACKAGE__, sections => 'REST API OPTIONS', once => 1); From bc8256f77817dc2a5c02af155dfc5dd5d5b734f0 Mon Sep 17 00:00:00 2001 From: pkriko Date: Fri, 9 Feb 2018 16:02:28 +0100 Subject: [PATCH 77/77] forgot to add the help message in api.pm --- apps/elasticsearch/restapi/custom/api.pm | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/apps/elasticsearch/restapi/custom/api.pm b/apps/elasticsearch/restapi/custom/api.pm index 646a4fe17..eb10f5a35 100644 --- a/apps/elasticsearch/restapi/custom/api.pm +++ b/apps/elasticsearch/restapi/custom/api.pm @@ -194,6 +194,10 @@ Proxy URL if any Set HTTP timeout +=item B<--ssl-opt> + +Set SSL Options (--ssl-opt="SSL_version => TLSv1" --ssl-opt="SSL_verify_mode => SSL_VERIFY_NONE"). + =back =head1 DESCRIPTION