This commit is contained in:
garnier-quentin 2020-06-29 16:17:54 +02:00
parent d8f8785669
commit bb5a25062d
1 changed files with 30 additions and 21 deletions

View File

@ -309,8 +309,7 @@ sub set_counters_global {
output_template => 'AdminStatus Up : %s', output_error_template => 'AdminStatus Up : %s', output_template => 'AdminStatus Up : %s', output_error_template => 'AdminStatus Up : %s',
output_use => 'global_admin_up', threshold_use => 'global_admin_up', output_use => 'global_admin_up', threshold_use => 'global_admin_up',
perfdatas => [ perfdatas => [
{ label => 'total_admin_up', value => 'global_admin_up', template => '%s', { label => 'total_admin_up', template => '%s', min => 0, max => 'total_port' }
min => 0, max => 'total_port' }
] ]
} }
}, },
@ -319,8 +318,7 @@ sub set_counters_global {
output_template => 'AdminStatus Down : %s', output_error_template => 'AdminStatus Down : %s', output_template => 'AdminStatus Down : %s', output_error_template => 'AdminStatus Down : %s',
output_use => 'global_admin_down', threshold_use => 'global_admin_down', output_use => 'global_admin_down', threshold_use => 'global_admin_down',
perfdatas => [ perfdatas => [
{ label => 'total_admin_down', value => 'global_admin_down', template => '%s', { label => 'total_admin_down', template => '%s', min => 0, max => 'total_port' }
min => 0, max => 'total_port' }
] ]
} }
}, },
@ -329,8 +327,7 @@ sub set_counters_global {
output_template => 'OperStatus Up : %s', output_error_template => 'OperStatus Up : %s', output_template => 'OperStatus Up : %s', output_error_template => 'OperStatus Up : %s',
output_use => 'global_oper_up', threshold_use => 'global_oper_up', output_use => 'global_oper_up', threshold_use => 'global_oper_up',
perfdatas => [ perfdatas => [
{ label => 'total_oper_up', value => 'global_oper_up', template => '%s', { label => 'total_oper_up', template => '%s', min => 0, max => 'total_port' }
min => 0, max => 'total_port' }
] ]
} }
}, },
@ -339,8 +336,7 @@ sub set_counters_global {
output_template => 'OperStatus Down : %s', output_error_template => 'OperStatus Down : %s', output_template => 'OperStatus Down : %s', output_error_template => 'OperStatus Down : %s',
output_use => 'global_oper_down', threshold_use => 'global_oper_down', output_use => 'global_oper_down', threshold_use => 'global_oper_down',
perfdatas => [ perfdatas => [
{ label => 'global_oper_down', value => 'global_oper_down', template => '%s', { label => 'global_oper_down', template => '%s', min => 0, max => 'total_port' }
min => 0, max => 'total_port' }
] ]
} }
} }
@ -800,7 +796,8 @@ sub new {
'show-cache' => { name => 'show_cache' }, 'show-cache' => { name => 'show_cache' },
'reload-cache-time:s' => { name => 'reload_cache_time', default => 180 }, 'reload-cache-time:s' => { name => 'reload_cache_time', default => 180 },
'nagvis-perfdata' => { name => 'nagvis_perfdata' }, 'nagvis-perfdata' => { name => 'nagvis_perfdata' },
'force-counters32' => { name => 'force_counters32' } 'force-counters32' => { name => 'force_counters32' },
'force-counters64' => { name => 'force_counters64' }
}); });
if ($self->{no_traffic} == 0) { if ($self->{no_traffic} == 0) {
$options{options}->add_options(arguments => { 'add-traffic' => { name => 'add_traffic' } }); $options{options}->add_options(arguments => { 'add-traffic' => { name => 'add_traffic' } });
@ -1055,10 +1052,13 @@ sub load_traffic {
my ($self, %options) = @_; my ($self, %options) = @_;
$self->set_oids_traffic(); $self->set_oids_traffic();
$self->{snmp}->load(oids => [$self->{oid_in32}, $self->{oid_out32}], instances => $self->{array_interface_selected}); if (!defined($self->{option_results}->{force_counters64})) {
if ($self->{get_speed} == 1) { $self->{snmp}->load(oids => [$self->{oid_in32}, $self->{oid_out32}], instances => $self->{array_interface_selected});
$self->{snmp}->load(oids => [$self->{oid_speed32}], instances => $self->{array_interface_selected}); if ($self->{get_speed} == 1) {
$self->{snmp}->load(oids => [$self->{oid_speed32}], instances => $self->{array_interface_selected});
}
} }
if (!$self->{snmp}->is_snmpv1() && !defined($self->{option_results}->{force_counters32})) { if (!$self->{snmp}->is_snmpv1() && !defined($self->{option_results}->{force_counters32})) {
$self->{snmp}->load(oids => [$self->{oid_in64}, $self->{oid_out64}], instances => $self->{array_interface_selected}); $self->{snmp}->load(oids => [$self->{oid_in64}, $self->{oid_out64}], instances => $self->{array_interface_selected});
if ($self->{get_speed} == 1) { if ($self->{get_speed} == 1) {
@ -1083,14 +1083,17 @@ sub load_errors {
sub load_cast { sub load_cast {
my ($self, %options) = @_; my ($self, %options) = @_;
$self->set_oids_cast(); $self->set_oids_cast();
$self->{snmp}->load( if (!defined($self->{option_results}->{force_counters64})) {
oids => [ $self->{snmp}->load(
$self->{oid_ifInUcastPkts}, $self->{oid_ifInBroadcastPkts}, $self->{oid_ifInMulticastPkts}, oids => [
$self->{oid_ifOutUcastPkts}, $self->{oid_ifOutMulticastPkts}, $self->{oid_ifOutBroadcastPkts} $self->{oid_ifInUcastPkts}, $self->{oid_ifInBroadcastPkts}, $self->{oid_ifInMulticastPkts},
], $self->{oid_ifOutUcastPkts}, $self->{oid_ifOutMulticastPkts}, $self->{oid_ifOutBroadcastPkts}
instances => $self->{array_interface_selected} ],
); instances => $self->{array_interface_selected}
);
}
if (!$self->{snmp}->is_snmpv1() && !defined($self->{option_results}->{force_counters32})) { if (!$self->{snmp}->is_snmpv1() && !defined($self->{option_results}->{force_counters32})) {
$self->{snmp}->load( $self->{snmp}->load(
oids => [ oids => [
@ -1116,7 +1119,9 @@ sub load_volume {
my ($self, %options) = @_; my ($self, %options) = @_;
$self->set_oids_traffic(); $self->set_oids_traffic();
$self->{snmp}->load(oids => [$self->{oid_in32}, $self->{oid_out32}], instances => $self->{array_interface_selected}); if (!defined($self->{option_results}->{force_counters64})) {
$self->{snmp}->load(oids => [$self->{oid_in32}, $self->{oid_out32}], instances => $self->{array_interface_selected});
}
if (!$self->{snmp}->is_snmpv1() && !defined($self->{option_results}->{force_counters32})) { if (!$self->{snmp}->is_snmpv1() && !defined($self->{option_results}->{force_counters32})) {
$self->{snmp}->load(oids => [$self->{oid_in64}, $self->{oid_out64}], instances => $self->{array_interface_selected}); $self->{snmp}->load(oids => [$self->{oid_in64}, $self->{oid_out64}], instances => $self->{array_interface_selected});
} }
@ -1431,6 +1436,10 @@ Set interface speed for outgoing traffic (in Mb).
Don't skip counters when no change. Don't skip counters when no change.
=item B<--force-counters64>
Force to use 64 bits counters only. Can be used to improve performance.
=item B<--force-counters32> =item B<--force-counters32>
Force to use 32 bits counters (even in snmp v2c and v3). Should be used when 64 bits counters are buggy. Force to use 32 bits counters (even in snmp v2c and v3). Should be used when 64 bits counters are buggy.