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