diff options
author | Matthew Kent <mattkent@users.sourceforge.net> | 2004-12-07 03:13:14 +0000 |
---|---|---|
committer | Matthew Kent <mattkent@users.sourceforge.net> | 2004-12-07 03:13:14 +0000 |
commit | b5b298c725f3ed6f4de02f9c624035fa37e2f56a (patch) | |
tree | c4c5d3e5cf926cfc1a68af469e9ef3ba3f3304f3 /plugins-scripts/check_ifoperstatus.pl | |
parent | b4d77248a23e710f12f0e8b4ae8fd8bc63ad717f (diff) | |
download | monitoring-plugins-b5b298c725f3ed6f4de02f9c624035fa37e2f56a.tar.gz |
Option to check for admin down (#1012191) from Raúl Pedroche.
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@1010 f882894a-f735-0410-b71e-b25c423dba1c
Diffstat (limited to 'plugins-scripts/check_ifoperstatus.pl')
-rw-r--r-- | plugins-scripts/check_ifoperstatus.pl | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/plugins-scripts/check_ifoperstatus.pl b/plugins-scripts/check_ifoperstatus.pl index a43e9f4d..59356bd7 100644 --- a/plugins-scripts/check_ifoperstatus.pl +++ b/plugins-scripts/check_ifoperstatus.pl @@ -86,6 +86,7 @@ my $ifdescr; my $key; my $lastc; my $dormantWarn; +my $adminWarn; my $name; ### Validate Arguments @@ -168,9 +169,16 @@ push(@snmpoids,$snmpIfAlias) if (defined $ifXTable) ; ## if AdminStatus is down - some one made a consious effort to change config ## if ( not ($response->{$snmpIfAdminStatus} == 1) ) { - $state = 'WARNING'; - $answer = "Interface $name (index $snmpkey) is administratively down."; - + $answer = "Interface $name (index $snmpkey) is administratively down."; + if ( not defined $adminWarn or $adminWarn eq "w" ) { + $state = 'WARNING'; + } elsif ( $adminWarn eq "i" ) { + $state = 'OK'; + } elsif ( $adminWarn eq "c" ) { + $state = 'CRITICAL'; + } else { # If wrong value for -a, say warning + $state = 'WARNING'; + } } ## Check operational status elsif ( $response->{$snmpIfOperStatus} == 2 ) { @@ -179,7 +187,7 @@ push(@snmpoids,$snmpIfAlias) if (defined $ifXTable) ; } elsif ( $response->{$snmpIfOperStatus} == 5 ) { if (defined $dormantWarn ) { if ($dormantWarn eq "w") { - $state = 'WARNNG'; + $state = 'WARNING'; $answer = "Interface $name (index $snmpkey) is dormant."; }elsif($dormantWarn eq "c") { $state = 'CRITICAL'; @@ -286,6 +294,7 @@ sub print_help() { printf " -n (--name) the value should match the returned ifName\n"; printf " (Implies the use of -I)\n"; printf " -w (--warn =i|w|c) ignore|warn|crit if the interface is dormant (default critical)\n"; + printf " -D (--admin-down =i|w|c) same for administratively down interfaces (default warning)\n"; printf " -M (--maxmsgsize) Max message size - usefull only for v1 or v2c\n"; printf " -t (--timeout) seconds before the plugin times out (default=$TIMEOUT)\n"; printf " -V (--version) Plugin version\n"; @@ -316,9 +325,10 @@ sub process_arguments() { "l=s" => \$lastc, "lastchange=s" => \$lastc, "p=i" => \$port, "port=i" =>\$port, "H=s" => \$hostname, "hostname=s" => \$hostname, - "I" => \$ifXTable, "ifmib" => \$ifXTable, + "I" => \$ifXTable, "ifmib" => \$ifXTable, "n=s" => \$ifName, "name=s" => \$ifName, "w=s" => \$dormantWarn, "warn=s" => \$dormantWarn, + "D=s" => \$adminWarn, "admin-down=s" => \$adminWarn, "M=i" => \$maxmsgsize, "maxmsgsize=i" => \$maxmsgsize, "t=i" => \$timeout, "timeout=i" => \$timeout, ); |