diff options
-rw-r--r-- | plugins-scripts/check_ifoperstatus.pl | 21 | ||||
-rwxr-xr-x | plugins-scripts/check_ifstatus.pl | 11 |
2 files changed, 23 insertions, 9 deletions
diff --git a/plugins-scripts/check_ifoperstatus.pl b/plugins-scripts/check_ifoperstatus.pl index 8a23ca5..a43e9f4 100644 --- a/plugins-scripts/check_ifoperstatus.pl +++ b/plugins-scripts/check_ifoperstatus.pl | |||
@@ -47,6 +47,7 @@ sub print_help (); | |||
47 | sub usage (); | 47 | sub usage (); |
48 | sub process_arguments (); | 48 | sub process_arguments (); |
49 | 49 | ||
50 | my $timeout; | ||
50 | my $status; | 51 | my $status; |
51 | my %ifOperStatus = ('1','up', | 52 | my %ifOperStatus = ('1','up', |
52 | '2','down', | 53 | '2','down', |
@@ -87,6 +88,9 @@ my $lastc; | |||
87 | my $dormantWarn; | 88 | my $dormantWarn; |
88 | my $name; | 89 | my $name; |
89 | 90 | ||
91 | ### Validate Arguments | ||
92 | |||
93 | $status = process_arguments(); | ||
90 | 94 | ||
91 | 95 | ||
92 | # Just in case of problems, let's not hang Nagios | 96 | # Just in case of problems, let's not hang Nagios |
@@ -94,12 +98,8 @@ $SIG{'ALRM'} = sub { | |||
94 | print ("ERROR: No snmp response from $hostname (alarm)\n"); | 98 | print ("ERROR: No snmp response from $hostname (alarm)\n"); |
95 | exit $ERRORS{"UNKNOWN"}; | 99 | exit $ERRORS{"UNKNOWN"}; |
96 | }; | 100 | }; |
97 | alarm($TIMEOUT); | ||
98 | |||
99 | |||
100 | ### Validate Arguments | ||
101 | 101 | ||
102 | $status = process_arguments(); | 102 | alarm($timeout); |
103 | 103 | ||
104 | 104 | ||
105 | ## map ifdescr to ifindex - should look at being able to cache this value | 105 | ## map ifdescr to ifindex - should look at being able to cache this value |
@@ -287,6 +287,7 @@ sub print_help() { | |||
287 | printf " (Implies the use of -I)\n"; | 287 | 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"; | 288 | printf " -w (--warn =i|w|c) ignore|warn|crit if the interface is dormant (default critical)\n"; |
289 | printf " -M (--maxmsgsize) Max message size - usefull only for v1 or v2c\n"; | 289 | 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"; | ||
290 | printf " -V (--version) Plugin version\n"; | 291 | printf " -V (--version) Plugin version\n"; |
291 | printf " -h (--help) usage help \n\n"; | 292 | printf " -h (--help) usage help \n\n"; |
292 | printf " -k or -d must be specified\n\n"; | 293 | printf " -k or -d must be specified\n\n"; |
@@ -313,12 +314,14 @@ sub process_arguments() { | |||
313 | "k=i" => \$snmpkey, "key=i",\$snmpkey, | 314 | "k=i" => \$snmpkey, "key=i",\$snmpkey, |
314 | "d=s" => \$ifdescr, "descr=s" => \$ifdescr, | 315 | "d=s" => \$ifdescr, "descr=s" => \$ifdescr, |
315 | "l=s" => \$lastc, "lastchange=s" => \$lastc, | 316 | "l=s" => \$lastc, "lastchange=s" => \$lastc, |
316 | "p=i" = >\$port, "port=i" =>\$port, | 317 | "p=i" => \$port, "port=i" =>\$port, |
317 | "H=s" => \$hostname, "hostname=s" => \$hostname, | 318 | "H=s" => \$hostname, "hostname=s" => \$hostname, |
318 | "I" => \$ifXTable, "ifmib" => \$ifXTable, | 319 | "I" => \$ifXTable, "ifmib" => \$ifXTable, |
319 | "n=s" => \$ifName, "name=s" => \$ifName, | 320 | "n=s" => \$ifName, "name=s" => \$ifName, |
320 | "w=s" => \$dormantWarn, "warn=s" => \$dormantWarn, | 321 | "w=s" => \$dormantWarn, "warn=s" => \$dormantWarn, |
321 | "M=i" => \$maxmsgsize, "maxmsgsize=i" => \$maxmsgsize); | 322 | "M=i" => \$maxmsgsize, "maxmsgsize=i" => \$maxmsgsize, |
323 | "t=i" => \$timeout, "timeout=i" => \$timeout, | ||
324 | ); | ||
322 | 325 | ||
323 | 326 | ||
324 | 327 | ||
@@ -361,6 +364,10 @@ sub process_arguments() { | |||
361 | } | 364 | } |
362 | } | 365 | } |
363 | 366 | ||
367 | unless (defined $timeout) { | ||
368 | $timeout = $TIMEOUT; | ||
369 | } | ||
370 | |||
364 | if ($snmp_version =~ /3/ ) { | 371 | if ($snmp_version =~ /3/ ) { |
365 | # Must define a security level even though default is noAuthNoPriv | 372 | # Must define a security level even though default is noAuthNoPriv |
366 | # v3 requires a security username | 373 | # v3 requires a security username |
diff --git a/plugins-scripts/check_ifstatus.pl b/plugins-scripts/check_ifstatus.pl index 4f17711..7452394 100755 --- a/plugins-scripts/check_ifstatus.pl +++ b/plugins-scripts/check_ifstatus.pl | |||
@@ -56,6 +56,7 @@ my %ifOperStatus = ('1','up', | |||
56 | '6','notPresent', | 56 | '6','notPresent', |
57 | '7','lowerLayerDown'); # down due to the state of lower layer interface(s)); | 57 | '7','lowerLayerDown'); # down due to the state of lower layer interface(s)); |
58 | 58 | ||
59 | my $timeout ; | ||
59 | my $state = "UNKNOWN"; | 60 | my $state = "UNKNOWN"; |
60 | my $answer = ""; | 61 | my $answer = ""; |
61 | my $snmpkey=0; | 62 | my $snmpkey=0; |
@@ -114,7 +115,7 @@ if ($status != 0) | |||
114 | } | 115 | } |
115 | 116 | ||
116 | 117 | ||
117 | alarm($TIMEOUT); | 118 | alarm($timeout); |
118 | 119 | ||
119 | push(@snmpoids,$snmpIfOperStatus); | 120 | push(@snmpoids,$snmpIfOperStatus); |
120 | push(@snmpoids,$snmpIfAdminStatus); | 121 | push(@snmpoids,$snmpIfAdminStatus); |
@@ -251,6 +252,7 @@ sub print_help (){ | |||
251 | printf " in hex with 0x prefix generated by using \"snmpkey\" utility\n"; | 252 | printf " in hex with 0x prefix generated by using \"snmpkey\" utility\n"; |
252 | printf " privacy password and authEngineID\n"; | 253 | printf " privacy password and authEngineID\n"; |
253 | printf " -M (--maxmsgsize) Max message size - usefull only for v1 or v2c\n"; | 254 | printf " -M (--maxmsgsize) Max message size - usefull only for v1 or v2c\n"; |
255 | printf " -t (--timeout) seconds before the plugin times out (default=$TIMEOUT)\n"; | ||
254 | printf " -V (--version) Plugin version\n"; | 256 | printf " -V (--version) Plugin version\n"; |
255 | printf " -h (--help) usage help \n\n"; | 257 | printf " -h (--help) usage help \n\n"; |
256 | print_revision($PROGNAME, '$Revision$'); | 258 | print_revision($PROGNAME, '$Revision$'); |
@@ -274,7 +276,9 @@ sub process_arguments() { | |||
274 | "I" => \$ifXTable, "ifmib" => \$ifXTable, | 276 | "I" => \$ifXTable, "ifmib" => \$ifXTable, |
275 | "x:s" => \$opt_x, "exclude:s" => \$opt_x, | 277 | "x:s" => \$opt_x, "exclude:s" => \$opt_x, |
276 | "u=s" => \$opt_u, "unused_ports=s" => \$opt_u, | 278 | "u=s" => \$opt_u, "unused_ports=s" => \$opt_u, |
277 | "M=i" => \$maxmsgsize, "maxmsgsize=i" => \$maxmsgsize); | 279 | "M=i" => \$maxmsgsize, "maxmsgsize=i" => \$maxmsgsize, |
280 | "t=i" => \$timeout, "timeout=i" => \$timeout, | ||
281 | ); | ||
278 | 282 | ||
279 | if ($status == 0){ | 283 | if ($status == 0){ |
280 | print_help() ; | 284 | print_help() ; |
@@ -290,6 +294,9 @@ sub process_arguments() { | |||
290 | exit $ERRORS{'OK'}; | 294 | exit $ERRORS{'OK'}; |
291 | } | 295 | } |
292 | 296 | ||
297 | unless (defined $timeout) { | ||
298 | $timeout = $TIMEOUT; | ||
299 | } | ||
293 | 300 | ||
294 | if ($snmp_version =~ /3/ ) { | 301 | if ($snmp_version =~ /3/ ) { |
295 | # Must define a security level even though default is noAuthNoPriv | 302 | # Must define a security level even though default is noAuthNoPriv |