Search Exchange

Search All Sites

Nagios Log Server Now Available - Download Now

Nagios Live Webinars

Let our experts show you how Nagios can help your organization.

Contact Us

Phone: 1-888-NAGIOS-1
Email: sales@nagios.com

Login

Remember Me

check_eigrp

Bookmark and Share

Rating
0 votes
Favoured:
1
Current Version
0.93
Last Release Date
2014-02-12
Compatible With
  • Nagios 2.x
  • Nagios 3.x
Owner
E-mail
License
GPL
Hits
12597
Files:
FileDescription
nagios-plugins-eigrp.x86_64.rpmx86_64 rpm package for CentOS/RedHat systems
nagios-plugins-eigrp.i686.rpmx32 rpm package for CentOS/RedHat systems
nagios-plugins-eigrp_0.93_amd64.debamd64 debian package
nagios-plugins-eigrp_0.93_i386.debx32 debian package
check_eigrp-0.93.tar.gztarball for compilation "./configure && make && make install"
check_eigrp.plPerl implementation of plugin
Plugin checks operation of the EIGRP protocol and displays a list of current neighbors. Information is obtained via SNMP.
This C implementation of plugin works much faster than scripting languages analogues (perl or bash). IT checks operation of the EIGRP protocol and displays a list of current neighbors.

Plugin returns standard exit codes for nagios:

CRITICAL if router has lost neighbors;
WARNING if number of neighbors has changed;
OK if number of neighbors matches to the given "-n" value;
UNKNOWN if some errors occur in SNMP protocol.

Plugin requires net-snmp-libs to be installed. This problem is solved automaticaly if u install plugin from rpm (yum localinstall nagios-plugins-eigrp). In this case plugin also will be installed in standart for this OS location:
/usr/lib64/nagios/plugins
or
/usr/lib/nagios/plugins.

Inside arch depended tarball packages there is only compiled executable file. You should copy them in nagios plugins folder for use.
Inside check_eigrp tarball package autotools generated package for compilation under some other arch. I use them for compile plugin under FreeBSD Sparc64 processor (SunFire v120 server). You can use "./configure && make && make install" sequence for plugin installation.

Full usage options are:
Usage:
check_eigrp -H hostipaddress -n neighbors -a EIGRP AS number
[-C community] [-v]

Options:
-h,--help
Show this help message;
-V,--version
print the version of plugin;
-H,--hostname=ADDRESS
specify the hostname of router,
you can specify a port number by this notation:"ADDRESS:PORT"
-C,--community=STRING
specify the SNMP community of router;
-a,--asnumber=INTEGER
specify the EIGRP AS number of router;
-n,--neighbors=INTEGER
specify the neighbors count of router;
-t,--timeout=INTEGER
specify the timeout of plugin,
default is 3 sec, max 60 sec;
-v,--verbose
specify this key if you need to get a
list of neighbors (disabled by default).

The output of list of neighbors is disabled by default (to increase performance), you can enable this by specify -v switch to verbose output. You can see small eigrp neighbors table with interfaces through which are available neighbors.

[user@II ~]$ /tmp/check_eigrp --hostname 192.168.1.100 --community public --neighbors 5 --asnumber 1 --verbose
OK: Neighbors count is 5 |
1: 192.168.50.210 "GigabitEthernet0/0.84"
2: 192.168.50.209 "GigabitEthernet0/0.84"
3: 192.168.11.10 "GigabitEthernet0/1"
4: 172.18.4.250 "Tunnel1"
5: 172.18.4.254 "Tunnel0"


In old Cisco IOS versions (15.2 or less) the neigbors ip's has present as hex string. In new versions it presents as regular ip address. The plugin performs checks and formats the output in the correct format depending on the Cisco IOS version number.

In some case u can use Perl implementation of plugin. For example, if the performance isn't too important for you. But this implementation does not check IOS version and only convert hex string from old IOS version (15.2 or less) to regular IP address. Script requires perl SNMP libs to be installed.

*UPD: Fixed bug with very small timeout. Added the "-t" switch to specify the value in seconds (3 sec by default). Plugin will try to connect 3 times during this interval.
*UPD: Added SIGALRM handler to force exit if timeout exceeded (see https://www.monitoring-plugins.org/doc/guidelines.html#AEN296).
*UPD: Added tarball for compilation
*UPD: Change the command-line arguments
*UPD: I removed the init_snmp call, because plugin don't need to parse configuration files and MIBs. It is twice increased performance.
*UPD: Added func for SNMP error handling for disable "No error handler" message

You can troll my code on github:
https://github.com/ITD27M01/scripts/blob/master/nagios/check_eigrp.c
https://github.com/ITD27M01/scripts/blob/master/nagios/check_eigrp.pl