lausser / check_nwc_health

nwc = network component. This plugin checks lots of aspects of routers, switches, wlan controllers, firewalls,.....
http://labs.consol.de/nagios/check_nwc_health
GNU General Public License v2.0
147 stars 87 forks source link

--mode interface-status returns "Use of uninitialized value in numeric gt (>) at ... line 67893." when checking an Cisco ASA 5515. #231

Closed K0nne closed 4 months ago

K0nne commented 4 years ago

Hello lausser,

today I stumbled upon another 'uninitialized value' problem.

When I run the following command: >> ./check_nwc_health --hostname XXX --community XXX --mode interface-status -vv

The following perl warning appears: Use of uninitialized value in numeric gt (>) at ./check_nwc_health line 67893.

check_nwc_health version: 7.10.1.8

Here is the anonymized -vv output:

Use of uninitialized value in numeric gt (>) at ./check_nwc_health line 67893.
Use of uninitialized value in numeric gt (>) at ./check_nwc_health line 67893.
Use of uninitialized value in numeric gt (>) at ./check_nwc_health line 67893.
Use of uninitialized value in numeric gt (>) at ./check_nwc_health line 67893.
Use of uninitialized value in numeric gt (>) at ./check_nwc_health line 67893.
Use of uninitialized value in numeric gt (>) at ./check_nwc_health line 67893.
Use of uninitialized value in numeric gt (>) at ./check_nwc_health line 67893.
Use of uninitialized value in numeric gt (>) at ./check_nwc_health line 67893.
Use of uninitialized value in numeric gt (>) at ./check_nwc_health line 67893.
Use of uninitialized value in numeric gt (>) at ./check_nwc_health line 67893.
Use of uninitialized value in numeric gt (>) at ./check_nwc_health line 67893.
Use of uninitialized value in numeric gt (>) at ./check_nwc_health line 67893.
[INTERFACESUBSYSTEM]
bootTime: 1571306966
duplicates: HASH(0x3789708)
ifCacheLastChange: 1579873525
ifTableLastChange: 1571306966
interface_cache: HASH(0x3789c48)
info: checking interfaces
[INTERFACE_10]
ifAdminStatus: up
ifAlias:
ifDescr: Adaptive Security Appliance 'XXX' interface
ifIndex: 10
ifName: XXX
ifOperStatus: up
info: Adaptive Security Appliance 'XXX' interface is up/up

[INTERFACE_11]
ifAdminStatus: up
ifAlias:
ifDescr: Adaptive Security Appliance 'XXX' interface
ifIndex: 11
ifName: XXX
ifOperStatus: up
info: Adaptive Security Appliance 'XXX' interface is up/up

[INTERFACE_12]
ifAdminStatus: up
ifAlias:
ifDescr: Adaptive Security Appliance 'XXX' interface
ifIndex: 12
ifName: XXX
ifOperStatus: up
info: Adaptive Security Appliance 'XXX' interface is up/up

[INTERFACE_13]
ifAdminStatus: up
ifAlias:
ifDescr: Adaptive Security Appliance 'XXX' interface
ifIndex: 13
ifName: XXX
ifOperStatus: up
info: Adaptive Security Appliance 'XXX' interface is up/up

[INTERFACE_2]
ifAdminStatus: up
ifAlias:
ifDescr: Adaptive Security Appliance 'XXX' interface
ifIndex: 2
ifName: XXX
ifOperStatus: up
info: Adaptive Security Appliance 'XXX' interface is up/up

[INTERFACE_3]
ifAdminStatus: up
ifAlias:
ifDescr: Adaptive Security Appliance 'XXX' interface
ifIndex: 3
ifName: XXX
ifOperStatus: up
info: Adaptive Security Appliance 'XXX' interface is up/up

[INTERFACE_4]
ifAdminStatus: up
ifAlias:
ifDescr: Adaptive Security Appliance 'XXX' interface
ifIndex: 4
ifName: XXX
ifOperStatus: up
info: Adaptive Security Appliance 'XXX' interface is up/up

[INTERFACE_5]
ifAdminStatus: up
ifAlias:
ifDescr: Adaptive Security Appliance 'XXX' interface
ifIndex: 5
ifName: XXX
ifOperStatus: up
info: Adaptive Security Appliance 'XXX' interface is up/up

[INTERFACE_6]
ifAdminStatus: up
ifAlias:
ifDescr: Adaptive Security Appliance 'XXX' interface
ifIndex: 6
ifName: XXX
ifOperStatus: up
info: Adaptive Security Appliance 'XXX' interface is up/up

[INTERFACE_7]
ifAdminStatus: up
ifAlias:
ifDescr: Adaptive Security Appliance 'XXX' interface
ifIndex: 7
ifName: XXX
ifOperStatus: up
info: Adaptive Security Appliance 'XXX' interface is up/up

[INTERFACE_8]
ifAdminStatus: down
ifAlias:
ifDescr: Adaptive Security Appliance 'XXX' interface
ifIndex: 8
ifName: XXX
ifOperStatus: down
info: Adaptive Security Appliance 'XXX' interface is down/down

[INTERFACE_9]
ifAdminStatus: up
ifAlias:
ifDescr: Adaptive Security Appliance 'XXX' interface
ifIndex: 9
ifName: XXX
ifOperStatus: down
info: Adaptive Security Appliance 'XXX' interface is down/up

CRITICAL - Adaptive Security Appliance 'XXX' interface is admin down, fault condition is presumed to exist on Adaptive Security Appliance 'XXX' interface, Adaptive Security Appliance 'XXX' interface is up/up, Adaptive Security Appliance 'XXX' interface is up/up, Adaptive Security Appliance 'XXX' interface is up/up, Adaptive Security Appliance 'XXX' interface is up/up, Adaptive Security Appliance 'XXX' interface is up/up, Adaptive Security Appliance 'XXX' interface is up/up, Adaptive Security Appliance 'XXX' interface is down/down, Adaptive Security Appliance 'XXX' interface is down/up, Adaptive Security Appliance 'XXX' interface is up/up, Adaptive Security Appliance 'XXX' interface is up/up, Adaptive Security Appliance 'XXX' interface is up/up, Adaptive Security Appliance 'XXX' interface is up/up
checking interfaces
Adaptive Security Appliance 'XXX' interface is up/up
Adaptive Security Appliance 'XXX' interface is up/up
Adaptive Security Appliance 'XXX' interface is up/up
Adaptive Security Appliance 'XXX' interface is up/up
Adaptive Security Appliance 'XXX' interface is up/up
Adaptive Security Appliance 'XXX' interface is up/up
Adaptive Security Appliance 'XXX' interface is down/down
Adaptive Security Appliance 'XXX' interface is down/up
Adaptive Security Appliance 'XXX' interface is up/up
Adaptive Security Appliance 'XXX' interface is up/up
Adaptive Security Appliance 'XXX' interface is up/up
Adaptive Security Appliance 'XXX' interface is up/up
log1-c commented 4 years ago

Same here when checking interface ERRORS on a Hyper-V host (running on a Fujitsu Server)

Interfaces checked are: Mellanox ConnectX-4 Lx Ethernet Adapter Mellanox ConnectX-4 Lx Ethernet Adapter #2 Intel(R) Ethernet Connection X722 for 10GBASE-T Intel(R) Ethernet Connection X722 for 10GBASE-T #2

Command line example:

'/usr/lib/nagios/plugins/check_nwc_health' '--community' 'mon_' '--hostname' '1.2.3.4' '--mode' 'interface-errors' '--name' 'Mellanox ConnectX-4 Lx Ethernet Adapter' '--statefilesdir' '/var/spool/icinga2/tmp'

Code at line 67893:

sub make_ifdescr_unique {

  my ($self, $if) = @_;

  $if->{ifDescr} = $if->{ifDescr}.' '.$if->{flat_indices} if $self->{duplicates}->{$if->{ifDescr}} > 1;

}

Assumption: Something to do with these very similar names, maybe? Apart from the message the check seems to work normally, though

riban-bw commented 4 years ago

Similar fault at line 68378 within sub make_ifdescr_unique.

log1-c commented 1 year ago
 $if->{ifDescr} = $if->{ifDescr}.' '.$if->{flat_indices} if defined $self->{duplicates}->{$if->{ifDescr}} && $self->{duplicates}->{$if->{ifDescr}} > 1;

This seems to fix the issue.