Random Project

Pluging review for HPOV 9.10

#!/usr/bin/perl -w
#
# hpov_eventhandler.pl v1.0 – 07/21/2006
#
# HP Openview Event Handler
# Copyright 2006 GroundWork Open Source Solutions, Inc. (“GroundWork”)
# All rights reserved. Use is subject to GroundWork commercial license terms.
#
# Revision History
# 21-Jul-2006 Peter Loh
#
#

use strict;
use Time::Local;
use Time::HiRes;

my $debug = 1;
my $debuglog = “>> /usr/local/nagios/var/hpov.log”;
my $hpov_cmd = “/opt/OV/bin/opcmsg”;
my ($lastcheck,$host,$service,$status,$statustext);
my $type = $ARGV[0]; # host or service type

$lastcheck = $ARGV[1];
$host = $ARGV[2];
$status = $ARGV[3];
$statustext = $ARGV[4];
$service = $ARGV[5];

my $hpovstatus = undef;

if ($debug) {

open(FP, $debuglog) ;

print FP “———————————————————————n ” ;

print FP `date`.” Host: $hostn Svcdesc: $servicen Lastcheck: $lastcheckn Status: $statusn Statustext: $statustextn” ;

}

my $cmdstring = $hpov_cmd;

if ($host !~ /.Cadence.COM$/i) {

$host .= “.Cadence.COM”;

}

$cmdstring .= ” node=’$host'”;

$cmdstring .= ” application=’gto_gwmon'”;

if ($type eq “service”) {

$cmdstring .= ” object=’$service'”;

if ($status eq “OK”) {

$hpovstatus = “normal”;

} elsif ($status eq “WARNING”) {

$hpovstatus = “warning”;

} elsif ($status eq “CRITICAL”) {

$hpovstatus = “critical”;

} elsif ($status eq “UNKNOWN”) {

$hpovstatus = “minor”;

} elsif ($status eq “RECOVERY”) {

$hpovstatus = “normal”;

} elsif ($status eq “FLAPPING”) {

$hpovstatus = “minor”;

} else {

$hpovstatus = “minor”;

}

} else {

$cmdstring .= ” object=’HOST_ALERT'”;

if ($status eq “UP”) {

$hpovstatus = “normal”;

} elsif ($status eq “DOWN”) {

$hpovstatus = “critical”;

} elsif ($status eq “UNREACHABLE”) {

$hpovstatus = “major”;

} elsif ($status eq “UNKNOWN”) {

$hpovstatus = “minor”;

} elsif ($status eq “RECOVERY”) {

$hpovstatus = “normal”;

} elsif ($status eq “FLAPPING”) {

$hpovstatus = “unknown”;

} else {

$hpovstatus = “minor”;

}

}

$cmdstring .= ” msg_text=’$statustext'”;

$cmdstring .= ” severity=’$hpovstatus'”;

$cmdstring .= ” msg_grp=’GWMP'”;

my @lines = `$cmdstring`;

if ($debug) {

print FP “Command string = $cmdstringn ” ;

print FP “Command Results = @linesn” ;

close FP;

}

__END__