mirror of
https://github.com/monitoring-plugins/monitoring-plugins.git
synced 2026-06-08 16:26:23 -04:00
added plugin timeout options
git-svn-id: https://nagiosplug.svn.sourceforge.net/svnroot/nagiosplug/nagiosplug/trunk@758 f882894a-f735-0410-b71e-b25c423dba1c
This commit is contained in:
parent
e808128666
commit
62d93550ea
2 changed files with 23 additions and 9 deletions
|
|
@ -47,6 +47,7 @@ sub print_help ();
|
|||
sub usage ();
|
||||
sub process_arguments ();
|
||||
|
||||
my $timeout;
|
||||
my $status;
|
||||
my %ifOperStatus = ('1','up',
|
||||
'2','down',
|
||||
|
|
@ -87,6 +88,9 @@ my $lastc;
|
|||
my $dormantWarn;
|
||||
my $name;
|
||||
|
||||
### Validate Arguments
|
||||
|
||||
$status = process_arguments();
|
||||
|
||||
|
||||
# Just in case of problems, let's not hang Nagios
|
||||
|
|
@ -94,12 +98,8 @@ $SIG{'ALRM'} = sub {
|
|||
print ("ERROR: No snmp response from $hostname (alarm)\n");
|
||||
exit $ERRORS{"UNKNOWN"};
|
||||
};
|
||||
alarm($TIMEOUT);
|
||||
|
||||
|
||||
### Validate Arguments
|
||||
|
||||
$status = process_arguments();
|
||||
alarm($timeout);
|
||||
|
||||
|
||||
## map ifdescr to ifindex - should look at being able to cache this value
|
||||
|
|
@ -287,6 +287,7 @@ sub print_help() {
|
|||
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 " -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";
|
||||
printf " -h (--help) usage help \n\n";
|
||||
printf " -k or -d must be specified\n\n";
|
||||
|
|
@ -313,12 +314,14 @@ sub process_arguments() {
|
|||
"k=i" => \$snmpkey, "key=i",\$snmpkey,
|
||||
"d=s" => \$ifdescr, "descr=s" => \$ifdescr,
|
||||
"l=s" => \$lastc, "lastchange=s" => \$lastc,
|
||||
"p=i" = >\$port, "port=i" =>\$port,
|
||||
"p=i" => \$port, "port=i" =>\$port,
|
||||
"H=s" => \$hostname, "hostname=s" => \$hostname,
|
||||
"I" => \$ifXTable, "ifmib" => \$ifXTable,
|
||||
"n=s" => \$ifName, "name=s" => \$ifName,
|
||||
"w=s" => \$dormantWarn, "warn=s" => \$dormantWarn,
|
||||
"M=i" => \$maxmsgsize, "maxmsgsize=i" => \$maxmsgsize);
|
||||
"M=i" => \$maxmsgsize, "maxmsgsize=i" => \$maxmsgsize,
|
||||
"t=i" => \$timeout, "timeout=i" => \$timeout,
|
||||
);
|
||||
|
||||
|
||||
|
||||
|
|
@ -361,6 +364,10 @@ sub process_arguments() {
|
|||
}
|
||||
}
|
||||
|
||||
unless (defined $timeout) {
|
||||
$timeout = $TIMEOUT;
|
||||
}
|
||||
|
||||
if ($snmp_version =~ /3/ ) {
|
||||
# Must define a security level even though default is noAuthNoPriv
|
||||
# v3 requires a security username
|
||||
|
|
|
|||
|
|
@ -56,6 +56,7 @@ my %ifOperStatus = ('1','up',
|
|||
'6','notPresent',
|
||||
'7','lowerLayerDown'); # down due to the state of lower layer interface(s));
|
||||
|
||||
my $timeout ;
|
||||
my $state = "UNKNOWN";
|
||||
my $answer = "";
|
||||
my $snmpkey=0;
|
||||
|
|
@ -114,7 +115,7 @@ if ($status != 0)
|
|||
}
|
||||
|
||||
|
||||
alarm($TIMEOUT);
|
||||
alarm($timeout);
|
||||
|
||||
push(@snmpoids,$snmpIfOperStatus);
|
||||
push(@snmpoids,$snmpIfAdminStatus);
|
||||
|
|
@ -251,6 +252,7 @@ sub print_help (){
|
|||
printf " in hex with 0x prefix generated by using \"snmpkey\" utility\n";
|
||||
printf " privacy password and authEngineID\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";
|
||||
printf " -h (--help) usage help \n\n";
|
||||
print_revision($PROGNAME, '$Revision$');
|
||||
|
|
@ -274,7 +276,9 @@ sub process_arguments() {
|
|||
"I" => \$ifXTable, "ifmib" => \$ifXTable,
|
||||
"x:s" => \$opt_x, "exclude:s" => \$opt_x,
|
||||
"u=s" => \$opt_u, "unused_ports=s" => \$opt_u,
|
||||
"M=i" => \$maxmsgsize, "maxmsgsize=i" => \$maxmsgsize);
|
||||
"M=i" => \$maxmsgsize, "maxmsgsize=i" => \$maxmsgsize,
|
||||
"t=i" => \$timeout, "timeout=i" => \$timeout,
|
||||
);
|
||||
|
||||
if ($status == 0){
|
||||
print_help() ;
|
||||
|
|
@ -290,6 +294,9 @@ sub process_arguments() {
|
|||
exit $ERRORS{'OK'};
|
||||
}
|
||||
|
||||
unless (defined $timeout) {
|
||||
$timeout = $TIMEOUT;
|
||||
}
|
||||
|
||||
if ($snmp_version =~ /3/ ) {
|
||||
# Must define a security level even though default is noAuthNoPriv
|
||||
|
|
|
|||
Loading…
Reference in a new issue