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 | |
| 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')
| -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; | |||
| 86 | my $key; | 86 | my $key; |
| 87 | my $lastc; | 87 | my $lastc; |
| 88 | my $dormantWarn; | 88 | my $dormantWarn; |
| 89 | my $adminWarn; | ||
| 89 | my $name; | 90 | my $name; |
| 90 | 91 | ||
| 91 | ### Validate Arguments | 92 | ### Validate Arguments |
| @@ -168,9 +169,16 @@ push(@snmpoids,$snmpIfAlias) if (defined $ifXTable) ; | |||
| 168 | ## if AdminStatus is down - some one made a consious effort to change config | 169 | ## if AdminStatus is down - some one made a consious effort to change config |
| 169 | ## | 170 | ## |
| 170 | if ( not ($response->{$snmpIfAdminStatus} == 1) ) { | 171 | if ( not ($response->{$snmpIfAdminStatus} == 1) ) { |
| 171 | $state = 'WARNING'; | 172 | $answer = "Interface $name (index $snmpkey) is administratively down."; |
| 172 | $answer = "Interface $name (index $snmpkey) is administratively down."; | 173 | if ( not defined $adminWarn or $adminWarn eq "w" ) { |
| 173 | 174 | $state = 'WARNING'; | |
| 175 | } elsif ( $adminWarn eq "i" ) { | ||
| 176 | $state = 'OK'; | ||
| 177 | } elsif ( $adminWarn eq "c" ) { | ||
| 178 | $state = 'CRITICAL'; | ||
| 179 | } else { # If wrong value for -a, say warning | ||
| 180 | $state = 'WARNING'; | ||
| 181 | } | ||
| 174 | } | 182 | } |
| 175 | ## Check operational status | 183 | ## Check operational status |
| 176 | elsif ( $response->{$snmpIfOperStatus} == 2 ) { | 184 | elsif ( $response->{$snmpIfOperStatus} == 2 ) { |
| @@ -179,7 +187,7 @@ push(@snmpoids,$snmpIfAlias) if (defined $ifXTable) ; | |||
| 179 | } elsif ( $response->{$snmpIfOperStatus} == 5 ) { | 187 | } elsif ( $response->{$snmpIfOperStatus} == 5 ) { |
| 180 | if (defined $dormantWarn ) { | 188 | if (defined $dormantWarn ) { |
| 181 | if ($dormantWarn eq "w") { | 189 | if ($dormantWarn eq "w") { |
| 182 | $state = 'WARNNG'; | 190 | $state = 'WARNING'; |
| 183 | $answer = "Interface $name (index $snmpkey) is dormant."; | 191 | $answer = "Interface $name (index $snmpkey) is dormant."; |
| 184 | }elsif($dormantWarn eq "c") { | 192 | }elsif($dormantWarn eq "c") { |
| 185 | $state = 'CRITICAL'; | 193 | $state = 'CRITICAL'; |
| @@ -286,6 +294,7 @@ sub print_help() { | |||
| 286 | printf " -n (--name) the value should match the returned ifName\n"; | 294 | printf " -n (--name) the value should match the returned ifName\n"; |
| 287 | printf " (Implies the use of -I)\n"; | 295 | printf " (Implies the use of -I)\n"; |
| 288 | printf " -w (--warn =i|w|c) ignore|warn|crit if the interface is dormant (default critical)\n"; | 296 | printf " -w (--warn =i|w|c) ignore|warn|crit if the interface is dormant (default critical)\n"; |
| 297 | printf " -D (--admin-down =i|w|c) same for administratively down interfaces (default warning)\n"; | ||
| 289 | printf " -M (--maxmsgsize) Max message size - usefull only for v1 or v2c\n"; | 298 | printf " -M (--maxmsgsize) Max message size - usefull only for v1 or v2c\n"; |
| 290 | printf " -t (--timeout) seconds before the plugin times out (default=$TIMEOUT)\n"; | 299 | printf " -t (--timeout) seconds before the plugin times out (default=$TIMEOUT)\n"; |
| 291 | printf " -V (--version) Plugin version\n"; | 300 | printf " -V (--version) Plugin version\n"; |
| @@ -316,9 +325,10 @@ sub process_arguments() { | |||
| 316 | "l=s" => \$lastc, "lastchange=s" => \$lastc, | 325 | "l=s" => \$lastc, "lastchange=s" => \$lastc, |
| 317 | "p=i" => \$port, "port=i" =>\$port, | 326 | "p=i" => \$port, "port=i" =>\$port, |
| 318 | "H=s" => \$hostname, "hostname=s" => \$hostname, | 327 | "H=s" => \$hostname, "hostname=s" => \$hostname, |
| 319 | "I" => \$ifXTable, "ifmib" => \$ifXTable, | 328 | "I" => \$ifXTable, "ifmib" => \$ifXTable, |
| 320 | "n=s" => \$ifName, "name=s" => \$ifName, | 329 | "n=s" => \$ifName, "name=s" => \$ifName, |
| 321 | "w=s" => \$dormantWarn, "warn=s" => \$dormantWarn, | 330 | "w=s" => \$dormantWarn, "warn=s" => \$dormantWarn, |
| 331 | "D=s" => \$adminWarn, "admin-down=s" => \$adminWarn, | ||
| 322 | "M=i" => \$maxmsgsize, "maxmsgsize=i" => \$maxmsgsize, | 332 | "M=i" => \$maxmsgsize, "maxmsgsize=i" => \$maxmsgsize, |
| 323 | "t=i" => \$timeout, "timeout=i" => \$timeout, | 333 | "t=i" => \$timeout, "timeout=i" => \$timeout, |
| 324 | ); | 334 | ); |
