add possibility to disable use of warning and critical in meta services.

git-svn-id: http://svn.centreon.com/trunk/plugins-2.x@6869 6bcd3966-0018-0410-8128-fd23d134de7e
This commit is contained in:
Julien Mathis 2008-10-20 16:31:16 +00:00
parent 135e2239a1
commit 60ed821f4e
1 changed files with 63 additions and 66 deletions

View File

@ -29,7 +29,7 @@ use DBI;
use vars qw($PROGNAME);
use Getopt::Long;
use vars qw($opt_V $opt_H $opt_h $opt_i);
use lib "@NAGIOS_PLUGINS@";
use lib "/usr/local/nagios/libexec";
use utils qw($TIMEOUT %ERRORS &print_revision &support);
## For Debug mode = 1
@ -72,76 +72,73 @@ my $metric_id;
sub return_value($$$$){
my $sth_output = $dbh->prepare("SELECT meta_display FROM `meta_service` WHERE `meta_id` = '".$_[3]."'");
if (!$sth_output->execute) {
die "Error:" . $sth_output->errstr . "\n";
}
if (!$sth_output->execute) {die "Error:" . $sth_output->errstr . "\n";}
my $sth_output_data = $sth_output->fetchrow_hashref();
my $output = $sth_output_data->{'meta_display'};
if ($output) {
if (defined($output) && $output) {
$output =~ s/\%d/$result/g;
}
if (defined($warning) && defined($critical) && $warning ne $critical){
if ($warning < $critical){ # Bon sens
if ($result < $warning){
if ($output) {
print $output. "|value=" . $result . ";".$warning.";".$critical."\n";
} else {
print "OK result : " . $result . "|value=" . $result . ";".$warning.";".$critical."\n";
print $output. "|OMS=" . $result . ";".$warning.";".$critical."\n";
}else {
print "OK result : " . $result . "|OMS=" . $result . ";".$warning.";".$critical."\n";
}
exit $ERRORS{'OK'};
} elsif (($result >= $warning) && ($result < $critical)){
if ($output) {
print $output. "|value=" . $result . ";".$warning.";".$critical."\n";
} else {
print "WARNING result : " . $result . "|value=" . $result . ";".$warning.";".$critical."\n";
print $output. "|OMS=" . $result . ";".$warning.";".$critical."\n";
}else {
print "WARNING result : " . $result . "|OMS=" . $result . ";".$warning.";".$critical."\n";
}
exit $ERRORS{'WARNING'};
} elsif ($result >= $critical){
if ($output) {
print $output. "|value=" . $result . ";".$warning.";".$critical."\n";
} else {
print "CRITICAL result : " . $result . "|value=" . $result . ";".$warning.";".$critical."\n";
print $output. "|OMS=" . $result . ";".$warning.";".$critical."\n";
}else {
print "CRITICAL result : " . $result . "|OMS=" . $result . ";".$warning.";".$critical."\n";
}
exit $ERRORS{'CRITICAL'};
}
} else { # sens inverse
if ($result < $critical){
if ($output) {
print $output. "|value=" . $result . ";".$warning.";".$critical."\n";
} else {
print "CRITICAL result : " . $result . "|value=" . $result . ";".$warning.";".$critical."\n";
print $output. "|OMS=" . $result . ";".$warning.";".$critical."\n";
}else {
print "CRITICAL result : " . $result . "|OMS=" . $result . ";".$warning.";".$critical."\n";
}
exit $ERRORS{'CRITICAL'};
} elsif ($result >= $critical && $result < $warning){
if ($output) {
print $output. "|value=" . $result . ";".$warning.";".$critical."\n";
} else {
print "WARNING result : " . $result . "|value=" . $result . ";".$warning.";".$critical."\n";
print $output. "|OMS=" . $result . ";".$warning.";".$critical."\n";
}else {
print "WARNING result : " . $result . "|OMS=" . $result . ";".$warning.";".$critical."\n";
}
exit $ERRORS{'WARNING'};
} elsif ($result >= $warning){
if ($output) {
print $output. "|value=" . $result . ";".$warning.";".$critical."\n";
} else {
print "OK result : " . $result . "|value=" . $result . ";".$warning.";".$critical."\n";
print $output. "|OMS=" . $result . ";".$warning.";".$critical."\n";
}else {
print "OK result : " . $result . "|OMS=" . $result . ";".$warning.";".$critical."\n";
}
exit $ERRORS{'OK'};
} else{
if ($output) {
print $output. "|value=" . $result . ";".$warning.";".$critical."\n";
} else {
print "OK result : " . $result . "|value=" . $result . ";".$warning.";".$critical."\n";
print $output. "|OMS=" . $result . ";".$warning.";".$critical."\n";
}else {
print "OK result : " . $result . "|OMS=" . $result . ";".$warning.";".$critical."\n";
}
exit $ERRORS{'OK'};
}
}
} else {
if ($output) {
print $output. "|value=" . $result . "\n";
} else {
print "OK result : " . $result . "|value=".$result."\n";
}
} elsif (!defined($warning) || !defined($critical)) {
print "Result : " . $result . "|OMS=" . $result . "\n";
exit $ERRORS{'OK'};
} else {
print "ERROR : warnig level = critical level";
exit $ERRORS{'CRITICAL'};
}
}
@ -154,7 +151,7 @@ my $host_id;
sub get_value_in_database_metric_id($$$$){
## Get last entry in perfparse database for this service
my $str = "SELECT `value` FROM `data_bin` WHERE `id_metric` = '".$metric_id."' ORDER BY `ctime` DESC LIMIT 1";
my $str = "SELECT value FROM data_bin WHERE id_metric = '".$metric_id."'";
if ($debug) {print $str . "\n";}
my $sth_deb2 = $dbh2->prepare($str);
if (!$sth_deb2->execute) {die "Error:" . $sth_deb2->errstr . "\n";}