scom
Perl Code
#!/usr/bin/perl
use LWP::UserAgent;,
use strict;
use Switch;
use warnings;
use Data::Dump qw(dump);
use Net::SSLeay;
$Net::SSLeay::trace = 2;
my $ua = LWP::UserAgent->new(ssl_opts => { verify_hostname => 0});
my $eventtype= $ARGV[0];
my $CONTACTPAGER = $ARGV[1];
my $HOSTNAME = $ARGV[3];
my $HOSTGROUPNAMES = $ARGV[2];
my $NOTIFICATIONTYPE = $ARGV[4];
my $NOTIFICATIONSCOM = "";
my $post_data = "";
switch ($NOTIFICATIONTYPE) {
case "RECOVERY" { $NOTIFICATIONSCOM = 3;}
case "CUSTOM" { $NOTIFICATIONSCOM = 3;}
case "WARNING" { $NOTIFICATIONSCOM = 2;}
case "DOWN" { $NOTIFICATIONSCOM = 1;}
case "CRITICAL" { $NOTIFICATIONSCOM = 1;}
case "OK" { $NOTIFICATIONSCOM = 0;}
case "UP" { $NOTIFICATIONSCOM = 0;}
else { $NOTIFICATIONSCOM = 3;}
}
[11:07 pm]
my $scom_server = "https://pagerapi.com/rest/Event/AddEvent";
if ($eventtype eq "HOST") {
my $HOSTSTATE = $ARGV[4];
my $HOSTOUTPUT = $ARGV[5];
$post_data = '{"RecipientList":"' . $CONTACTPAGER . '","AssignmentGroup":"' . $CONTACTPAGER . '","CI": "' . $HOSTNAME . '" , "Service": "IT Monitoring", "ObjectClass": "' . $HOSTGROUPNAMES . '", "Source":2, "Object": "' . $HOSTSTATE . '", "Severity": ' . $NOTIFICATIONSCOM . ' , "Message": "' . $HOSTOUTPUT . '"}';
}
else {
my $SERVICESTATE = $ARGV[4];
my $SERVICEOUTPUT = $ARGV[5];
my $SERVICEDESC = $ARGV[6];
$post_data = '{"RecipientList":"' . $CONTACTPAGER . '","AssignmentGroup":"' . $CONTACTPAGER . '","CI": "' . $HOSTNAME . '" , "Service": "IT Monitoring", "ObjectClass": "' . $HOSTGROUPNAMES . '", "Source":2, "Object": "' . $SERVICEDESC . " is " . $SERVICESTATE . '", "Severity": ' . $NOTIFICATIONSCOM . ' , "Message": "' . $SERVICEOUTPUT . '"}';
}
#print $post_data;
my $req = HTTP::Request->new(POST => $scom_server);
$req->header('content-type' => 'application/json');
$req->authorization_basic('user','pass');
$req->content($post_data);
print $req->as_string;
my $resp = $ua->request($req);
#print "HTTP POST error code: ", $resp->code, "\n";
#print "HTTP POST error message: ", $resp->message, "\n";
my $datestring = localtime();
my $fh;
open ($fh, '>>','/tmp/to_scom.log');
print $fh "" . $datestring . " - " . $resp->code . " - " . $post_data . "\n";
close $fh;Python Code
Last updated