From acba6cf2baa7aac02dccfff4f07b449af20a9116 Mon Sep 17 00:00:00 2001 From: garnier-quentin Date: Fri, 8 Feb 2019 14:50:46 +0100 Subject: [PATCH] add peplink snmp plugin --- network/peplink/balance/snmp/mode/cpu.pm | 100 --------- network/peplink/balance/snmp/mode/memory.pm | 115 ---------- network/peplink/snmp/mode/cpu.pm | 90 ++++++++ network/peplink/snmp/mode/memory.pm | 135 +++++++++++ network/peplink/snmp/mode/wanusage.pm | 222 +++++++++++++++++++ network/peplink/{balance => }/snmp/plugin.pm | 19 +- 6 files changed, 457 insertions(+), 224 deletions(-) delete mode 100644 network/peplink/balance/snmp/mode/cpu.pm delete mode 100644 network/peplink/balance/snmp/mode/memory.pm create mode 100644 network/peplink/snmp/mode/cpu.pm create mode 100644 network/peplink/snmp/mode/memory.pm create mode 100644 network/peplink/snmp/mode/wanusage.pm rename network/peplink/{balance => }/snmp/plugin.pm (67%) diff --git a/network/peplink/balance/snmp/mode/cpu.pm b/network/peplink/balance/snmp/mode/cpu.pm deleted file mode 100644 index 569c734cb..000000000 --- a/network/peplink/balance/snmp/mode/cpu.pm +++ /dev/null @@ -1,100 +0,0 @@ -# -# Copyright 2019 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::peplink::balance::snmp::mode::cpu; - -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} = '0.1'; - $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_deviceCpuLoad = '.1.3.6.1.4.1.23695.200.1.1.1.3.1.0'; - my $result = $self->{snmp}->get_leef(oids => [$oid_deviceCpuLoad], nothing_quit => 1); - - my $exit = $self->{perfdata}->threshold_check(value => $result->{$oid_deviceCpuLoad}, - threshold => [ { label => 'critical', 'exit_litteral' => 'critical' }, { label => 'warning', exit_litteral => 'warning' } ]); - $self->{output}->output_add(severity => $exit, - short_msg => sprintf("CPU Usage: %.2f%%", $result->{$oid_deviceCpuLoad}) - ); - $self->{output}->perfdata_add(label => "cpu_usage", unit => '%', - value => $result->{$oid_deviceCpuLoad}, - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning'), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical'), - min => 0, max => 100); - - $self->{output}->display(); - $self->{output}->exit(); -} - -1; - -__END__ - -=head1 MODE - -Check cpu usage (PEPLINK-BALANCE-MIB). - -=over 8 - -=item B<--warning> - -Threshold warning in percent. - -=item B<--critical> - -Threshold critical in percent. - -=back - -=cut - diff --git a/network/peplink/balance/snmp/mode/memory.pm b/network/peplink/balance/snmp/mode/memory.pm deleted file mode 100644 index fdc4555f3..000000000 --- a/network/peplink/balance/snmp/mode/memory.pm +++ /dev/null @@ -1,115 +0,0 @@ -# -# Copyright 2019 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::peplink::balance::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} = '0.1'; - $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_deviceTotalMemory = '.1.3.6.1.4.1.23695.200.1.1.1.3.2.0'; - my $oid_deviceMemoryUsage = '.1.3.6.1.4.1.23695.200.1.1.1.3.3.0'; - - my $result = $self->{snmp}->get_leef(oids => [$oid_deviceTotalMemory, $oid_deviceMemoryUsage], nothing_quit => 1); - my $total = $result->{$oid_deviceTotalMemory}; - my $used = $result->{$oid_deviceMemoryUsage}; - my $free = $total - $used; - my $prct_used = $total / $used ; - my $prct_free = 100 - $prct_used; - - my ($total_size_value, $total_size_unit) = $self->{perfdata}->change_bytes(value => $total); - my ($total_used_value, $total_used_unit) = $self->{perfdata}->change_bytes(value => $used); - my ($total_free_value, $total_free_unit) = $self->{perfdata}->change_bytes(value => $free); - - my $exit = $self->{perfdata}->threshold_check(value => $prct_used, - threshold => [ { label => 'critical', exit_litteral => 'critical' }, { label => 'warning', exit_litteral => 'warning' } ]); - $self->{output}->output_add(severity => $exit, - short_msg => sprintf("Total: %s Used: %s (%.2f%%) Free: %s (%.2f%%)", - $total_size_value . " " . $total_size_unit, - $total_used_value . " " . $total_used_unit, $prct_used, - $total_free_value . " " . $total_free_unit, $prct_free)); - - $self->{output}->perfdata_add(label => "used", unit => 'B', - value => sprintf("%d", $used), - warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning', total => $total, cast_int => 1), - critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical', total => $total, cast_int => 1), - min => 0, max => $total - ); - - $self->{output}->display(); - $self->{output}->exit(); -} - -1; - -__END__ - -=head1 MODE - -Check memory usage (PEPLINK-BALANCE-MIB). - -=over 8 - -=item B<--warning> - -Threshold warning in percent. - -=item B<--critical> - -Threshold critical in percent. - -=back - -=cut - diff --git a/network/peplink/snmp/mode/cpu.pm b/network/peplink/snmp/mode/cpu.pm new file mode 100644 index 000000000..f684aeda4 --- /dev/null +++ b/network/peplink/snmp/mode/cpu.pm @@ -0,0 +1,90 @@ +# +# Copyright 2019 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::peplink::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_load' } ], + output_template => 'CPU Load %.2f %%', + perfdatas => [ + { label => 'cpu_load', value => 'cpu_load_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_deviceCpuLoad = '.1.3.6.1.4.1.27662.200.1.1.1.3.1.0'; + + my $result = $options{snmp}->get_leef(oids => [$oid_deviceCpuLoad], + nothing_quit => 1); + $self->{global} = { + cpu_load => $result->{$oid_deviceCpuLoad} + }; +} + +1; + +__END__ + +=head1 MODE + +Check CPU load. + +=over 8 + +=item B<--warning-usage> + +Threshold warning. + +=item B<--critical-usage> + +Threshold critical. + +=back + +=cut diff --git a/network/peplink/snmp/mode/memory.pm b/network/peplink/snmp/mode/memory.pm new file mode 100644 index 000000000..8d5daefeb --- /dev/null +++ b/network/peplink/snmp/mode/memory.pm @@ -0,0 +1,135 @@ +# +# Copyright 2019 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::peplink::snmp::mode::memory; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; + +sub custom_usage_perfdata { + my ($self, %options) = @_; + + $self->{output}->perfdata_add(label => 'used', unit => 'B', + value => $self->{result_values}->{used}, + warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{label}, total => $self->{result_values}->{total}, cast_int => 1), + critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{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 = $self->{perfdata}->threshold_check(value => $self->{result_values}->{prct_used}, 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("Memory 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}->{total} = $options{new_datas}->{$self->{instance} . '_total'}; + $self->{result_values}->{used} = $options{new_datas}->{$self->{instance} . '_used'}; + $self->{result_values}->{free} = $self->{result_values}->{total} - $self->{result_values}->{used}; + $self->{result_values}->{prct_free} = $self->{result_values}->{free} * 100 / $self->{result_values}->{total}; + $self->{result_values}->{prct_used} = $self->{result_values}->{used} * 100 / $self->{result_values}->{total}; + return 0; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'global', type => 0 } + ]; + + $self->{maps_counters}->{global} = [ + { label => 'usage', set => { + key_values => [ { 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'), + } + }, + ]; +} + +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_deviceTotalMemory = '.1.3.6.1.4.1.27662.200.1.1.1.3.2.0'; + my $oid_deviceMemoryUsage = '.1.3.6.1.4.1.27662.200.1.1.1.3.3.0'; + + my $result = $options{snmp}->get_leef(oids => [$oid_deviceTotalMemory, $oid_deviceMemoryUsage], + nothing_quit => 1); + $self->{global} = { + total => $result->{$oid_deviceTotalMemory} * 1024, + used => $result->{$oid_deviceMemoryUsage} * 1024, + }; +} + +1; + +__END__ + +=head1 MODE + +Check memory usage. + +=over 8 + +=item B<--warning-usage> + +Threshold warning (in percent). + +=item B<--critical-usage> + +Threshold critical (in percent). + +=back + +=cut diff --git a/network/peplink/snmp/mode/wanusage.pm b/network/peplink/snmp/mode/wanusage.pm new file mode 100644 index 000000000..788581631 --- /dev/null +++ b/network/peplink/snmp/mode/wanusage.pm @@ -0,0 +1,222 @@ +# +# Copyright 2019 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::peplink::snmp::mode::wanusage; + +use base qw(centreon::plugins::templates::counter); + +use strict; +use warnings; +use Digest::MD5 qw(md5_hex); +use centreon::plugins::templates::catalog_functions qw(catalog_status_threshold); + +sub custom_status_output { + my ($self, %options) = @_; + + my $msg = sprintf('health status : %s', $self->{result_values}->{health_status}); + return $msg; +} + +sub custom_status_calc { + my ($self, %options) = @_; + + $self->{result_values}->{health_status} = $options{new_datas}->{$self->{instance} . '_health_status'}; + $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'}; + return 0; +} + +sub set_counters { + my ($self, %options) = @_; + + $self->{maps_counters_type} = [ + { name => 'wan', type => 1, cb_prefix_output => 'prefix_wan_output', message_multiple => 'All WANs are ok', skipped_code => { -10 => 1 } } + ]; + + $self->{maps_counters}->{wan} = [ + { label => 'health-status', threshold => 0, set => { + key_values => [ { name => 'health_status' }, { 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 => \&catalog_status_threshold, + } + }, + { label => 'signal', set => { + key_values => [ { name => 'signal' }, { name => 'display' } ], + output_template => 'Signal Strength : %s dBm', + perfdatas => [ + { label => 'signal', value => 'signal_absolute', template => '%s', unit => 'dBm', + min => 0, label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'traffic-in', set => { + key_values => [ { name => 'traffic_in', diff => 1 }, { name => 'display' } ], + output_template => 'Traffic In : %s %s/s', + per_second => 1, output_change_bytes => 2, + perfdatas => [ + { label => 'traffic_in', value => 'traffic_in_per_second', template => '%d', + min => 0, unit => 'b/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + { label => 'traffic-out', set => { + key_values => [ { name => 'traffic_out', diff => 1 }, { name => 'display' } ], + output_template => 'Traffic Out : %s %s/s', + per_second => 1, output_change_bytes => 2, + perfdatas => [ + { label => 'traffic_out', value => 'traffic_out_per_second', template => '%d', + min => 0, unit => 'b/s', label_extra_instance => 1, instance_use => 'display_absolute' }, + ], + } + }, + ]; +} + +sub prefix_wan_output { + my ($self, %options) = @_; + + return "WAN '" . $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-health-status:s" => { name => 'warning_health_status', default => '' }, + "critical-health-status:s" => { name => 'critical_health_status', default => '%{health_status} =~ /fail/' }, + }); + + return $self; +} + +sub check_options { + my ($self, %options) = @_; + $self->SUPER::check_options(%options); + + $self->change_macros(macros => ['warning_health_status', 'critical_health_status']); +} + +my %mapping_health = ( + 0 => 'fail', + 1 => 'success', +); + +my $mapping = { + wanName => { oid => '.1.3.6.1.4.1.27662.2.1.2.1.2' }, + wanHealthCheckState => { oid => '.1.3.6.1.4.1.27662.2.1.2.1.4', map => \%mapping_health }, + wanSignal => { oid => '.1.3.6.1.4.1.27662.2.1.2.1.5' }, +}; +my $mapping2 = { + wanDataUsageTxByte => { oid => '.1.3.6.1.4.1.27662.2.1.4.1.2' }, + wanDataUsageRxByte => { oid => '.1.3.6.1.4.1.27662.2.1.4.1.3' }, +}; +my $oid_wanEntry = '.1.3.6.1.4.1.27662.2.1.2.1'; +my $oid_wanDataUsageEntry = '.1.3.6.1.4.1.27662.2.1.4.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->{wan} = {}; + my $snmp_result = $options{snmp}->get_multiple_table(oids => [ + { oid => $oid_wanEntry, start => $mapping->{wanName}->{oid}, end => $mapping->{wanSignal}->{oid} }, + { oid => $oid_wanDataUsageEntry }, + ], nothing_quit => 1); + foreach my $oid (keys %{$snmp_result->{$oid_wanEntry}}) { + next if ($oid !~ /^$mapping->{wanName}->{oid}\.(.*)$/); + my $instance = $1; + my $result = $options{snmp}->map_instance(mapping => $mapping, results => $snmp_result->{$oid_wanEntry}, instance => $instance); + my $result2 = $options{snmp}->map_instance(mapping => $mapping2, results => $snmp_result->{$oid_wanDataUsageEntry}, instance => $instance . '.3'); + + if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' && + $result->{wanName} !~ /$self->{option_results}->{filter_name}/) { + $self->{output}->output_add(long_msg => "skipping '" . $result->{wanName} . "': no matching filter.", debug => 1); + next; + } + + $self->{wan}->{$instance} = { display => $result->{wanName}, + health_status => $result->{wanHealthCheckState}, + signal => $result->{wanSignal} != -9999 ? $result->{wanSignal} : undef, + traffic_in => $result2->{wanDataUsageRxByte} * 1024 * 1024 * 8, + traffic_out => $result2->{wanDataUsageTxByte} * 1024 * 1024 * 8, + }; + } + + if (scalar(keys %{$self->{wan}}) <= 0) { + $self->{output}->add_option_msg(short_msg => "No wan found."); + $self->{output}->option_exit(); + } + + $self->{cache_name} = "peplink_" . $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 wan usage. + +=over 8 + +=item B<--filter-counters> + +Only display some counters (regexp can be used). +Example: --filter-counters='^traffic-in$' + +=item B<--filter-name> + +Filter wan name (can be a regexp). + +=item B<--warning-health-status> + +Set warning threshold for status (Default: ''). +Can used special variables like: %{health_status}, %{display} + +=item B<--critical-health-status> + +Set critical threshold for status (Default: '%{health_status} =~ /fail/'). +Can used special variables like: %{health_status}, %{display} + +=item B<--warning-*> + +Threshold warning. +Can be: 'traffic-in', 'traffic-out'. + +=item B<--critical-*> + +Threshold critical. +Can be: Can be: 'traffic-in', 'traffic-out'. + +=back + +=cut diff --git a/network/peplink/balance/snmp/plugin.pm b/network/peplink/snmp/plugin.pm similarity index 67% rename from network/peplink/balance/snmp/plugin.pm rename to network/peplink/snmp/plugin.pm index 7ecd7737e..0f8ddba48 100644 --- a/network/peplink/balance/snmp/plugin.pm +++ b/network/peplink/snmp/plugin.pm @@ -18,7 +18,7 @@ # limitations under the License. # -package network::peplink::balance::snmp::plugin; +package network::peplink::snmp::plugin; use strict; use warnings; @@ -28,14 +28,15 @@ sub new { my ($class, %options) = @_; my $self = $class->SUPER::new(package => __PACKAGE__, %options); bless $self, $class; - - $self->{version} = '0.1'; + + $self->{version} = '1.0'; %{$self->{modes}} = ( - 'cpu' => 'network::peplink::balance::snmp::mode::cpu', - 'interfaces' => 'snmp_standard::mode::interfaces', - 'list-interfaces' => 'snmp_standard::mode::listinterfaces', - 'memory' => 'network::peplink::balance::snmp::mode::memory', - ); + 'cpu' => 'network::peplink::snmp::mode::cpu', + 'interfaces' => 'snmp_standard::mode::interfaces', + 'list-interfaces' => 'snmp_standard::mode::listinterfaces', + 'memory' => 'network::peplink::snmp::mode::memory', + 'wan-usage' => 'network::peplink::snmp::mode::wanusage', + ); return $self; } @@ -46,6 +47,6 @@ __END__ =head1 PLUGIN DESCRIPTION -Check Peplink loadbalancer in SNMP. +Check Peplink equipments in SNMP. =cut