This commit is contained in:
garnier-quentin 2020-06-29 16:17:54 +02:00
parent 7c66939f40
commit 7661a544a9
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();
if (!defined($self->{option_results}->{force_counters64})) {
$self->{snmp}->load(oids => [$self->{oid_in32}, $self->{oid_out32}], instances => $self->{array_interface_selected}); $self->{snmp}->load(oids => [$self->{oid_in32}, $self->{oid_out32}], instances => $self->{array_interface_selected});
if ($self->{get_speed} == 1) { if ($self->{get_speed} == 1) {
$self->{snmp}->load(oids => [$self->{oid_speed32}], instances => $self->{array_interface_selected}); $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) {
@ -1084,6 +1084,7 @@ sub load_cast {
my ($self, %options) = @_; my ($self, %options) = @_;
$self->set_oids_cast(); $self->set_oids_cast();
if (!defined($self->{option_results}->{force_counters64})) {
$self->{snmp}->load( $self->{snmp}->load(
oids => [ oids => [
$self->{oid_ifInUcastPkts}, $self->{oid_ifInBroadcastPkts}, $self->{oid_ifInMulticastPkts}, $self->{oid_ifInUcastPkts}, $self->{oid_ifInBroadcastPkts}, $self->{oid_ifInMulticastPkts},
@ -1091,6 +1092,8 @@ sub load_cast {
], ],
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();
if (!defined($self->{option_results}->{force_counters64})) {
$self->{snmp}->load(oids => [$self->{oid_in32}, $self->{oid_out32}], instances => $self->{array_interface_selected}); $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.