Adjusted for Jira 7

# grep NagiosIssue2JSD -A1 -B1 /usr/local/nagios/etc/objects/commands.cfg
define command{
command_name NagiosIssue2JSD
command_line $USER1$/NagiosIssue2JSD.pl -s “$SERVICESTATE$” -t “$SERVICESTATETYPE$” -A “$SERVICEATTEMPT$” -H “$HOSTNAME$” -S “$SERVICEDESC$” -a “$SERVICEOUTPUT$” -d “$SHORTDATETIME$”
}

# cat /usr/local/nagios/libexec/NagiosIssue2JSD.pl
#!/bin/perl

use strict;
use warnings;
use JIRA::REST;
use Data::Dumper;

use Getopt::Std;
use Getopt::Long qw(:config no_ignore_case bundling);

my $jira = JIRA::REST->new({
url => ‘https://jira.localhost’,
username => ‘nagios’,
password => ‘******’
});

#my $baseurl = $jira->GET(‘/rest/servicedeskapi/info’);
#print Dumper($baseurl);

use vars qw( $state $type $attempt $hostname $servicedesc $serviceoutput $datetime );
GetOptions(
‘help|h’ => &print_usage,
‘state|s=s’ => $state,
‘type|t=s’ => $type,
‘attempt|A=i’ => $attempt,
‘hostname|H=s’ => $hostname,
‘servicedesc|S=s’ => $servicedesc,
‘serviceoutput|a=s’ => $serviceoutput,
‘datetime|d=s’ => $datetime,
);

if(!$state or !$type or !$attempt or !$hostname or !$servicedesc) {
print “tUSAGE:/usr/local/nagios/libexec/jira_eventhandler.pl -s -t -A -H -S n”;
exit 3; #unknown
}

if($type ne “HARD” or $state eq “OK”) {
# not doing anything till its reaaaally a problem
exit 0; #ok
}

my $issue = $jira->POST(‘/issue’, undef, {
fields => {
project => { key => ‘CAT’ },
issuetype => { name => ‘Incident’ },
summary => “[NAGIOS] Hostname:$hostname Service:$servicedesc State:$state”,
description => “Hostname:$hostnamen Service:$servicedescn State:$staten Info:$serviceoutputn DateTime:$datetimen”
},
});

exit 0;