check_eigrp

Check EIGRP

Perl Modules

Monitoring::Plugin, Net::IP, Net::SNMP, Socket

Vendor Support

The following has been verified to be working with Cisco devices.

Installation

The following configuration can be placed in /etc/icinga2/include/plugins-contrib.d on CentOS 7 systems.

FILE: /etc/icinga2/include/plugins-contrib.d/eigrp.conf

/******************************************************************************
 * Icinga 2                                                                   *
 *
 */

object CheckCommand "eigrp" {
        command = [ PluginDir + "/check_eigrp.pl" ]

        arguments = {
                "-H" = {
                        value = "$address$"
                        required = true
                        description = "hostname or ip address of router"
                }
                "-r" = {
                        value = "$eigrpres$"
                        required = false
                        description = "Specific number of matches"
                }
                "-d" = {
                        value = "$eigrp_debug$"
                        required = false
                }
                "-s" = {
                        value = "$eigrp_snmpcom$"
                        required = true
                }
                "-P" = {
                        value = "$eigrp_snmpver$"
                        required = true
                }
                "-A" = {
                        value = "$eigrp_nbrhigh$"
                        required = false
                }
                "-B" = {
                        value = "$eigrp_nbrlow$"
                        required = false
                }
        }

        # Variables available for configuration, and their default

        vars.eigrp_router       = "$address$"

        vars.eigrp_snmpcom        = "$eigrp_snmpcom$"
        vars.eigrp_snmpver        = "$eigrp_snmpver$"
        vars.eigrp_crit           = ",,1"
        vars.eigrp_warn           = ",,2"

        # VARS: Entries which don't have a default
        #       These are configured in the ${host}.conf file as variables.

        # vars.eigrp_debug        = true/false
        # vars.eigrp_nbrhigh      = true/false # use warn/crit for levels
        # vars.eigrp_nbrlow       = true/false # use warn/crit for levels
Configuration

There are a few variables which can be used tweaked for the different environments. Some variables are mandatory and others are optional, they are listed.

eigrp_snmpver variable will accept both version 2 and 3 options and requires the eigrp_snmpcom variable to be set as well. [VAR: mandatory]

 vars.eigrp_snmpver = 2|3

eigrp_snmpcom variable will take alphanumeric entries enclosed by quotes. If the SNMP version if 2 then the entry is simply the community string of the device. Version 3 requires a more elaborate configuration. The appropriate 'security level' (ie. noAuthNoPriv, authNoPriv, authPriv) is picked dynamically based on the options passed.

Available algorithms for authPass are HMAC-MD5-96 (MD5) and HMAC-SHA-96 (SHA1). The privacy option supports CBC-DES (DES), CBC-3DES-EDE (3DES), or CFB128-AES-128 (AES). [VAR: mandatory]

 vars.eigrp_snmpcom = "value"
 vars.eigrp_snmpcom = "user:authPass:authProto:privPass:privProto"

eigrp_nbrlow is a boolean based variable which, if set, will compare the result of total neighbor count of EIGRP neighbors and alert if warn/crit are also set. [VAR: optional]

 vars.eigrp_nbrlow = true|false

eigrp_nbrhigh is a boolean based variable. Like it's counterpart eigrp_nbrlow, if set, will alert if the thresholds are met according to warn/crit. [VAR: optional]

 vars.eigrp_nbrhigh = true|false