[Nagiosplug-devel] 2 problems with check_ifstatus

Martin, Matthew Matthew.Martin at qwest.com
Fri Oct 27 22:36:02 CEST 2006


Hello,
 
I am using check_ifstatus to monitor the status of several hundred
Nokia/Check Point firewalls. There are two issues with check_ifstatus
that seem to be errors as far as I can tell:
 
1) Dormant serial interfaces return status of "OK". A dormant serial
connection should be CRITICAL, right? I changed the following line # 189
to address this:
 
    if ($ifdown > 0) {
becomes:
   if (($ifdown > 0) || ($ifdormant > 0)) {
 
For example here is the output from a Nokia/Check Point firewalls with
eight interfaces: four Ethernet and one each of PPOE, Loop, Tunnel and
Serial. The Serial is down and the 4th Ethernet is disabled. It shows 8
up and one dormant. 
 
Status Information: OK: host 'xxx.yyy.zzz.www', interfaces up: 8, down:
0, dormant: 1, excluded: 0, unused: 0
Performance Data: up=8,down=0,dormant=1,excluded=0,unused=0
 
I contend that it should show "up: 6", "dormant: 1", and "unused: 1",
and that the returned status should be CRITICAL. Is this a
misunderstanding on my part, or a bug?
========================================================================
=======
2) Administratively down interfaces are not counted. Shouldn't these be
added to the "unused" category?
========================================================================
=======
Here is the interesting part of the ifTable for the firewall in
question. It has an admin down physical Ethernet, and admin down Logical
Ethernet a dormant serial and a dormant T1. Yet check_interfaces shows
no unused interfaces and OK status.
 
 interfaces.ifNumber.0 = 12
 interfaces.ifTable.ifEntry.ifIndex.1 = 1
 interfaces.ifTable.ifEntry.ifIndex.2 = 2
 interfaces.ifTable.ifEntry.ifIndex.3 = 3
 interfaces.ifTable.ifEntry.ifIndex.4 = 4
 interfaces.ifTable.ifEntry.ifIndex.5 = 5
 interfaces.ifTable.ifEntry.ifIndex.6 = 6
 interfaces.ifTable.ifEntry.ifIndex.7 = 7
 interfaces.ifTable.ifEntry.ifIndex.8 = 8
 interfaces.ifTable.ifEntry.ifIndex.9 = 9
 interfaces.ifTable.ifEntry.ifIndex.10 = 10
 interfaces.ifTable.ifEntry.ifIndex.11 = 11
 interfaces.ifTable.ifEntry.ifIndex.12 = 12
 interfaces.ifTable.ifEntry.ifDescr.1 = ser-s1p1 DS1 Serial Link Nokia
TAXI T1
 interfaces.ifTable.ifEntry.ifDescr.2 = pppoe0 Ethernet Layer 
 interfaces.ifTable.ifEntry.ifDescr.3 = eth1 Ethernet Layer Intel
EtherExpress Pro 10/100B
 interfaces.ifTable.ifEntry.ifDescr.4 = eth2 Ethernet Layer Intel
EtherExpress Pro 10/100B
 interfaces.ifTable.ifEntry.ifDescr.5 = eth3 Ethernet Layer Intel
EtherExpress Pro 10/100B
 interfaces.ifTable.ifEntry.ifDescr.6 = eth4 Ethernet Layer Intel
EtherExpress Pro 10/100B
 interfaces.ifTable.ifEntry.ifDescr.7 = ser-s1p1c0 CHDLC IP Layer
 interfaces.ifTable.ifEntry.ifDescr.8 = loop0c0 Software Loopback Layer
 interfaces.ifTable.ifEntry.ifDescr.9 = eth1c0 IP Layer
 interfaces.ifTable.ifEntry.ifDescr.10 = eth2c0 IP Layer
 interfaces.ifTable.ifEntry.ifDescr.11 = eth3c0 IP Layer
 interfaces.ifTable.ifEntry.ifDescr.12 = eth4c0 IP Layer
 interfaces.ifTable.ifEntry.ifType.1 = ds1(18)
 interfaces.ifTable.ifEntry.ifType.2 = eon(25)
 interfaces.ifTable.ifEntry.ifType.3 = ethernetCsmacd(6)
 interfaces.ifTable.ifEntry.ifType.4 = ethernetCsmacd(6)
 interfaces.ifTable.ifEntry.ifType.5 = ethernetCsmacd(6)
 interfaces.ifTable.ifEntry.ifType.6 = ethernetCsmacd(6)
 interfaces.ifTable.ifEntry.ifType.7 = hdlc(118)
 interfaces.ifTable.ifEntry.ifType.8 = softwareLoopback(24)
 interfaces.ifTable.ifEntry.ifType.9 = other(1)
 interfaces.ifTable.ifEntry.ifType.10 = other(1)
 interfaces.ifTable.ifEntry.ifType.11 = other(1)
 interfaces.ifTable.ifEntry.ifType.12 = other(1)
 interfaces.ifTable.ifEntry.ifMtu.1 = 8188
 interfaces.ifTable.ifEntry.ifMtu.2 = 1514
 interfaces.ifTable.ifEntry.ifMtu.3 = 1514
 interfaces.ifTable.ifEntry.ifMtu.4 = 1514
 interfaces.ifTable.ifEntry.ifMtu.5 = 1514
 interfaces.ifTable.ifEntry.ifMtu.6 = 1514
 interfaces.ifTable.ifEntry.ifMtu.7 = 1500
 interfaces.ifTable.ifEntry.ifMtu.8 = 63000
 interfaces.ifTable.ifEntry.ifMtu.9 = 1500
 interfaces.ifTable.ifEntry.ifMtu.10 = 1500
 interfaces.ifTable.ifEntry.ifMtu.11 = 1500
 interfaces.ifTable.ifEntry.ifMtu.12 = 1518
 interfaces.ifTable.ifEntry.ifSpeed.1 = Gauge: 1544
 interfaces.ifTable.ifEntry.ifSpeed.2 = Gauge: 0
 interfaces.ifTable.ifEntry.ifSpeed.3 = Gauge: 100000
 interfaces.ifTable.ifEntry.ifSpeed.4 = Gauge: 100000
 interfaces.ifTable.ifEntry.ifSpeed.5 = Gauge: 100000
 interfaces.ifTable.ifEntry.ifSpeed.6 = Gauge: 100000
 interfaces.ifTable.ifEntry.ifSpeed.7 = Gauge: 0
 interfaces.ifTable.ifEntry.ifSpeed.8 = Gauge: 0
 interfaces.ifTable.ifEntry.ifSpeed.9 = Gauge: 0
 interfaces.ifTable.ifEntry.ifSpeed.10 = Gauge: 0
 interfaces.ifTable.ifEntry.ifSpeed.11 = Gauge: 0
 interfaces.ifTable.ifEntry.ifSpeed.12 = Gauge: 0
 interfaces.ifTable.ifEntry.ifPhysAddress.1 = 
 interfaces.ifTable.ifEntry.ifPhysAddress.2 = 
 interfaces.ifTable.ifEntry.ifPhysAddress.3 = 0:a0:8e:7a:df:4c
 interfaces.ifTable.ifEntry.ifPhysAddress.4 = 0:a0:8e:7a:df:4d
 interfaces.ifTable.ifEntry.ifPhysAddress.5 = 0:a0:8e:7a:df:4e
 interfaces.ifTable.ifEntry.ifPhysAddress.6 = 0:a0:8e:7a:df:4f
 interfaces.ifTable.ifEntry.ifPhysAddress.7 = 
 interfaces.ifTable.ifEntry.ifPhysAddress.8 = 
 interfaces.ifTable.ifEntry.ifPhysAddress.9 = 
 interfaces.ifTable.ifEntry.ifPhysAddress.10 = 
 interfaces.ifTable.ifEntry.ifPhysAddress.11 = 
 interfaces.ifTable.ifEntry.ifPhysAddress.12 = 
 interfaces.ifTable.ifEntry.ifAdminStatus.1 = up(1)
 interfaces.ifTable.ifEntry.ifAdminStatus.2 = up(1)
 interfaces.ifTable.ifEntry.ifAdminStatus.3 = up(1)
 interfaces.ifTable.ifEntry.ifAdminStatus.4 = up(1)
 interfaces.ifTable.ifEntry.ifAdminStatus.5 = up(1)
 interfaces.ifTable.ifEntry.ifAdminStatus.6 = up(1)
 interfaces.ifTable.ifEntry.ifAdminStatus.7 = up(1)
 interfaces.ifTable.ifEntry.ifAdminStatus.8 = up(1)
 interfaces.ifTable.ifEntry.ifAdminStatus.9 = up(1)
 interfaces.ifTable.ifEntry.ifAdminStatus.10 = up(1)
 interfaces.ifTable.ifEntry.ifAdminStatus.11 = up(1)
 interfaces.ifTable.ifEntry.ifAdminStatus.12 = up(1)
 interfaces.ifTable.ifEntry.ifOperStatus.1 = dormant(5)
 interfaces.ifTable.ifEntry.ifOperStatus.2 = up(1)
 interfaces.ifTable.ifEntry.ifOperStatus.3 = up(1)
 interfaces.ifTable.ifEntry.ifOperStatus.4 = up(1)
 interfaces.ifTable.ifEntry.ifOperStatus.5 = up(1)
 interfaces.ifTable.ifEntry.ifOperStatus.6 = down(2)
 interfaces.ifTable.ifEntry.ifOperStatus.7 = lowerLayerDown(7)
 interfaces.ifTable.ifEntry.ifOperStatus.8 = up(1)
 interfaces.ifTable.ifEntry.ifOperStatus.9 = up(1)
 interfaces.ifTable.ifEntry.ifOperStatus.10 = up(1)
 interfaces.ifTable.ifEntry.ifOperStatus.11 = up(1)
 interfaces.ifTable.ifEntry.ifOperStatus.12 = lowerLayerDown(7)
 
 
Thanks for your help !
========================================================================
=======
./check_ifstatus --version
check_ifstatus (nagios-plugins 1.4.2) 1.9
Copyright (C) 2000 Christoph Kron
Updates 5/2002 Subhendu Ghosh
 
 
Matthew Martin
Internet Security Engineer
Qwest Communication Corp.
matthew.martin at qwest.com

- Internal Use Only -
Disclose and Distribute only to Qwest Employees and authorized persons
working for Qwest.  Disclosure outside of Qwest is prohibited without
authorization. 
 


This communication is the property of Qwest and may contain confidential or
privileged information. Unauthorized use of this communication is strictly 
prohibited and may be unlawful.  If you have received this communication 
in error, please immediately notify the sender by reply e-mail and destroy 
all copies of the communication and any attachments.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://nagios-plugins.org/archive/devel/attachments/20061027/3cf3bf36/attachment.html>


More information about the Devel mailing list