Hi sunnavy,<br><br>Setup seems good. No error message.<br><br>Thanks.<br><br>I am reading your documentation on url : <a href="http://cpan.uwinnipeg.ca/htdocs/RT-Extension-Nagios/">http://cpan.uwinnipeg.ca/htdocs/RT-Extension-Nagios/</a><br>
<br><br><br>Regards,<br><br>Rodolphe<br><br><br><div class="gmail_quote">2009/11/3 sunnavy <span dir="ltr"><<a href="mailto:sunnavy@bestpractical.com">sunnavy@bestpractical.com</a>></span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hi Rodolphe<br>
<br>
It's a bug, I'm sorry for that.<br>
please test the new version attached.<br>
<br>
best wishes<br>
<font color="#888888">sunnavy<br>
</font><div><div></div><div class="h5"><br>
On 09-11-02 15:16, Rodolphe ALT wrote:<br>
> Hi Sunnavy,<br>
><br>
> Thanks a lot for this tip, because on the link (<br>
> <a href="http://wiki.bestpractical.com/view/AutoCloseOnNagiosRecoveryMessages" target="_blank">http://wiki.bestpractical.com/view/AutoCloseOnNagiosRecoveryMessages</a>) it was<br>
> not wrote.<br>
><br>
> I have read the file README.<br>
><br>
> After make and install, I have add this line in file<br>
> /opt/rt3/etc/RT_SiteConfig.pm<br>
> Set(@Plugins,qw(RT::Extension::Nagios));<br>
><br>
> But when I have initialized database (make initdb), i have a message error :<br>
> [Mon Nov  2 13:30:56 2009] [error]: Action 'Nagios' not found<br>
> (/opt/rt3/sbin/../lib/RT/Handle.pm:987)<br>
><br>
> And the scrip after that doesn't close always any messages. In the log :<br>
> [Mon Nov  2 13:45:32 2009] [debug]: Committing scrip #13 on txn #451 of<br>
> ticket #55 (/opt/rt3/bin/../lib/RT/Scrips_Overlay.pm:190)<br>
> [Mon Nov  2 13:45:32 2009] [debug]: Found a recovery msg:  ((eval 3253):18)<br>
><br>
> And that's all.<br>
><br>
><br>
><br>
><br>
><br>
> Regards,<br>
><br>
> Rodolphe<br>
><br>
><br>
> The scrip<br>
><br>
> ---------------------------------<br>
><br>
> # If the subject of the ticket matches a pattern suggesting<br>
> # that this is a Nagios RECOVERY message  AND there is<br>
> # an existing ticket (open or new) in the "General" queue with a matching<br>
> # "problem description", (that is not this ticket)<br>
> # merge this ticket into that ticket<br>
> #<br>
> # Based on <a href="http://marc.free.net.ph/message/20040319.180325.27528377.en.html" target="_blank">http://marc.free.net.ph/message/20040319.180325.27528377.en.html</a><br>
><br>
> my $problem_desc = undef;<br>
><br>
> my $Transaction = $self->TransactionObj;<br>
> my $subject = $Transaction->Attachments->First->GetHeader('Subject');<br>
> #if ($subject =~ /\*\* RECOVERY (\w+) - (.*) OK \*\*/) {<br>
> if ($subject =~ /\*\* RECOVERY (.*) OK \*\*/) {<br>
>     # This looks like a nagios recovery message<br>
>     $problem_desc = $2;<br>
><br>
>     $RT::Logger->debug("Found a recovery msg: $problem_desc");<br>
> } else {<br>
>     $RT::Logger->debug("Not a recovery msg: $problem_desc");<br>
>     return 1;<br>
> }<br>
><br>
> # Ok, now let's merge this ticket with it's PROBLEM msg.<br>
> my $search = RT::Tickets->new($RT::SystemUser);<br>
> $search->LimitQueue(VALUE => 'General');<br>
> $search->LimitStatus(VALUE => 'new', OPERATOR => '=', ENTRYAGGREGATOR =><br>
> 'or');<br>
> $search->LimitStatus(VALUE => 'open', OPERATOR => '=');<br>
><br>
> if ($search->Count == 0) { return 1; }<br>
> my $id = undef;<br>
> while (my $ticket = $search->Next) {<br>
>     # Ignore the ticket that opened this transation (the recovery one...)<br>
>     next if $self->TicketObj->Id == $ticket->Id;<br>
>     # Look for nagios PROBLEM warning messages...<br>
>     if ( $ticket->Subject =~ /\*\* PROBLEM (\w+) - (.*) (\w+) \*\*/ ) {<br>
>         if ($2 eq $problem_desc){<br>
>             # Aha! Found the Problem TICKET corresponding to this RECOVERY<br>
>             # ticket<br>
>             $id = $ticket->Id;<br>
>             # Nagios may send more then one PROBLEM message, right?<br>
>             $RT::Logger->debug("Merging ticket " . $self->TicketObj->Id . "<br>
> into $id because of OA number match.");<br>
>             $self->TicketObj->MergeInto($id);<br>
>             # Keep looking for more PROBLEM tickets...<br>
>         }<br>
>     }<br>
> }<br>
><br>
> $id || return 1;<br>
> # Auto-close/resolve this whole thing<br>
> $self->TicketObj->SetStatus( "resolved" );<br>
> 1;<br>
><br>
><br>
> -----------------------------------<br>
><br>
><br>
><br>
> 2009/11/2 sunnavy <<a href="mailto:sunnavy@bestpractical.com">sunnavy@bestpractical.com</a>><br>
><br>
> > Hi Rodolphe<br>
> ><br>
> > Maybe you're interested in the RT extension attached, which is based on the<br>
> > wiki you read.<br>
> > I'm thinking of publishing it to CPAN soon.<br>
> ><br>
> > best wishes<br>
> > sunnavy<br>
> ><br>
> > On 09-11-02 12:00, Rodolphe ALT wrote:<br>
> > > Hi all,<br>
> > ><br>
> > > I am trying create a scrip in RT3 for close automaticly the tickets from<br>
> > > Nagios alert.<br>
> > ><br>
> > > I am working from the scrips "AutoCloseOnNagiosRecoveryMessages - RT<br>
> > > Integration" from website<br>
> > ><br>
> > ><br>
> > <a href="http://exchange.nagios.org/directory/Addons/Helpdesk-and-Ticketing/RT/AutoCloseOnNagiosRecoveryMessages-%252D-RT-Integration/details" target="_blank">http://exchange.nagios.org/directory/Addons/Helpdesk-and-Ticketing/RT/AutoCloseOnNagiosRecoveryMessages-%252D-RT-Integration/details</a><br>

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