Hi all, I am trying create a scrip in RT3 for close automaticly the tickets from Nagios alert.
I am working from the scrips "AutoCloseOnNagiosRecoveryMessages - RT Integration" from website http://exchange.nagios.org/directory/Addons/Helpdesk-and-Ticketing/RT/AutoCloseOnNagiosRecoveryMessages-%252D-RT-Integration/details http://wiki.bestpractical.com/view/AutoCloseOnNagiosRecoveryMessages <http://goog_1257158193783> https://wiki.koumbit.net/RequestTracker/NagiosBridge But with RT3 3.8.6 and Nagios 3.2, The subject of the email is not analyzed correctly. I mean when I have enabled debug log and this is a log messages like : [Mon Nov 2 10:30:33 2009] [debug]: Committing scrip #14 on txn #397 of ticket #46 (/opt/rt3/bin/../lib/RT/Scrips_Overlay.pm:190) [Mon Nov 2 10:30:33 2009] [debug]: Message Lancement Scrip 14 ((eval 2528):12) [Mon Nov 2 10:30:33 2009] [debug]: Found a recovery msg: ((eval 2528):21) [Mon Nov 2 10:30:33 2009] [debug]: Boucle 14 : 45 ((eval 2528):36) [Mon Nov 2 10:30:33 2009] [debug]: Boucle 14 : 46 ((eval 2528):36) [Mon Nov 2 10:30:33 2009] [debug]: Boucle 14 : 27 ((eval 2528):36) And that' all. not Merging ticket ! in scrip, I think this is the line who detect not the ticket : if ( $ticket->Subject =~ /\*\* PROBLEM (\w+(?:\s*\d+)?) - (.*) is (\w+) \*\*/ ) { I have tested also without success : if ( $ticket->Subject =~ /\*\* PROBLEM (\w+) - (.*) (\w+) \*\*/ ) { And the email subject is like : ** PROBLEM Service Alert: srv08.athome.local/Portail is CRITICAL ** ** RECOVERY Service Alert: srv08.athome.local/Portail is OK ** Can you help me to resolve this code ? Thanks, Regards, Rodolphe ---------------- ALL CODE of actual scrip is here : # If the subject of the ticket matches a pattern suggesting # that this is a Nagios RECOVERY message AND there is # an existing ticket (open or new) in the "General" queue with a matching # "problem description", (that is not this ticket) # merge this ticket into that ticket # # Based on http://marc.free.net.ph/message/20040319.180325.27528377.en.html my $problem_desc = undef; my $report_type = undef; $RT::Logger->debug("Message Lancement Scrip 14"); my $Transaction = $self->TransactionObj; my $subject = $Transaction->Attachments->First->GetHeader('Subject'); if ($subject =~ /\*\* RECOVERY (.*) OK \*\*/) { # This looks like a nagios recovery message $report_type = $1; $problem_desc = $3; $RT::Logger->debug("Found a recovery msg: $problem_desc"); } else { $RT::Logger->debug("Not a recovery msg: $problem_desc"); return 1; } # Ok, now let's merge this ticket with it's PROBLEM msg. my $search = RT::Tickets->new($RT::SystemUser); $search->LimitQueue(VALUE => 'General'); $search->LimitStatus(VALUE => 'new', OPERATOR => '=', ENTRYAGGREGATOR => 'or'); $search->LimitStatus(VALUE => 'open', OPERATOR => '='); if ($search->Count == 0) { return 1; } my $id = undef; while (my $ticket = $search->Next) { $RT::Logger->debug("Boucle 14 : ".($ticket->Id)); # Ignore the ticket that opened this transation (the recovery one...) next if $self->TicketObj->Id == $ticket->Id; # Look for nagios PROBLEM warning messages... if ( $ticket->Subject =~ /\*\* PROBLEM (\w+(?:\s*\d+)?) - (.*) is (\w+) \*\*/ ) { if ($2 eq $problem_desc){ # Aha! Found the Problem TICKET corresponding to this RECOVERY # ticket $id = $ticket->Id; # Nagios may send more then one PROBLEM message, right? $RT::Logger->debug("Merging ticket " . $self->TicketObj->Id . " into $id because of OA number match."); $self->TicketObj->MergeInto($id); # Keep looking for more PROBLEM tickets... $RT::Logger->debug("Scrip 14 : 1 ticket trouvé $ticket->Id avec la régle 1!"); } } if ( $ticket->Subject =~ /\*\* PROBLEM (\w+) - (.*) (\w+) \*\*/ ) { $RT::Logger->debug("Scrip 14 : 1 ticket trouvé $ticket->Id avec la régle 2!"); } } $id || return 1; if ($report_type eq "RECOVERY") { # Auto-close/resolve this whole thing $self->TicketObj->SetStatus( "resolved" ); #$Ticket->_Set(Field => 'Status', Value => 'resolved', RecordTransaction => 0); } 1; ----------------
_______________________________________________ http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users Community help: http://wiki.bestpractical.com Commercial support: sa...@bestpractical.com Discover RT's hidden secrets with RT Essentials from O'Reilly Media. Buy a copy at http://rtbook.bestpractical.com