Event Handlers

Nagios-2JiraServerDesk-Issue-Creator

Description:

This Perl script would create Jira Server Desk issue for each generated nagios incident. This script has to be configured as global event handler for host and services in Nagios and Nagios Xi servers. This is a quick and dirty script to generate events in Jira where NagiosXi is primary monitoring tool and JIRA JSD is the central ticker repository for everything.

Current Version

0.02

Last Release Date

2017-03-02

Compatible With

  • Nagios 4.x
  • Nagios XI

Owner

License

MIT


Project Files
Project Photos
Project Notes
Nagios to Jira JSD Issue Creator: NagiosIssue2JSD.pl is a perl script to create Jira JSD ticket for every Nagios incident. The script would run as Nagios global event handler and trigger Jira JSD issue by logging into JSD and adding Jira fields project, Type, Asignee, Reporter, Summary, Description. It would manipulate following Nagios fields: Assignee, State, Type, Attempt, Hostname, Service Description.
Reviews (1) Add a Review
Adjusted for Jira 7
by amarildosertorio, July 31, 2018

# 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;



Add a Review

You must be logged in to submit a review.

Thank you for your review!

Your review has been submitted and is pending approval.

Recommend

To:


From:


Thank you for your recommendation!

Your recommendation has been sent.

Project Stats
Rating
4 (1)
Favorites
1
Views
8,683