Integrate rt with monitor system

Hi all,
i’m new to RT…
i’m tryng to integrate RT with my hobbit monitor system, so that when an
mail-allarm is generated form my monitor system,
automatically a ticket is open on RT.
My question is, it’s possible to configure RT so that if incoming more
equal emails from my monitor system is open only 1 ticket?
How include the variable “time extimated to work” in open mail ticket?

thanks fo help

Marco

Marco Avvisano wrote:

i’m tryng to integrate RT with my hobbit monitor system, so that when
an mail-allarm is generated form my monitor system,
automatically a ticket is open on RT.
My question is, it’s possible to configure RT so that if incoming more
equal emails from my monitor system is open only 1 ticket?
How include the variable “time extimated to work” in open mail ticket?

I just integrated our Nagios monitoring system with RT, using
http://wiki.bestpractical.com/index.cgi?AutoCloseOnNagiosRecoveryMessages
as a base. I am also using ExtractCustomFieldValues (
http://page.mi.fu-berlin.de/~pape/rt3/ExtractCustomFieldValues.tgz ) to
populate a ticket custom field based on the hostname Nagios is
complaining about. Since hobbit can generate e-mails, I imagine the
integration will be quite similar.

Ryan

rfox.vcf (309 Bytes)

Marco Avvisano wrote:

Hi all,
i’m new to RT…
i’m tryng to integrate RT with my hobbit monitor system, so that when
an mail-allarm is generated form my monitor system,
automatically a ticket is open on RT.
My question is, it’s possible to configure RT so that if incoming more
equal emails from my monitor system is open only 1 ticket?
How include the variable “time extimated to work” in open mail ticket?
Here’s what we use to stop RT being swamped by Smokeping Alerts. I think
someone has a similar thing for Nagios alerts on the Wiki that I used
that as a starting point for this one - I don’t write perl this way, and
there’s even a Nagios comment in there still :slight_smile:

It matches on subject line to a key ([SmokePing]), then looks for an
existing ticket with the same subject and merges the new one into the
old one.

Best Regards

Howard

Scrip for the General queue. Condition: OnCreate, Action: User Defined.

Custom Action is:

If the subject of the ticket matches a pattern suggesting

that this is a SmokePing Alert message AND there is

an existing ticket (open or new) in the “General” queue with a matching

Subject, (that is not this ticket) merge this ticket into that ticket

my $problem_desc = undef;

my $Transaction = $self->TransactionObj;
my $subject = $Transaction->Attachments->First->GetHeader(‘Subject’);
if ($subject =~ /[SmokeAlert](.*)/) {
# This looks like a SmokeAlert message
$problem_desc = $2;

$RT::Logger->debug("Found a smokealert msg: $problem_desc");

} else {
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) {
# 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 eq $subject) {
$id = $ticket->Id;
$RT::Logger->debug(“Merging ticket " . $self->TicketObj->Id
. " into $id because of subject match.”);
$self->TicketObj->MergeInto($id);
}
}

$id || return 1;

1;

hi,
thanks for your helps,
I’ve modified your script to merge allarms, and original nagios to recovery
… but i have some problems.
how to see the debug output?

M.----- Original Message -----
From: “Howard Jones” howard.jones@network-i.net
To: “Marco Avvisano” marco.avvisano@regione.toscana.it
Cc: rt-users@bestpractical.com
Sent: Monday, January 23, 2006 2:42 PM
Subject: Re: [rt-users] integrate rt with monitor system

Marco Avvisano wrote:

Hi all,
i’m new to RT…
i’m tryng to integrate RT with my hobbit monitor system, so that when an
mail-allarm is generated form my monitor system,
automatically a ticket is open on RT.
My question is, it’s possible to configure RT so that if incoming more
equal emails from my monitor system is open only 1 ticket?
How include the variable “time extimated to work” in open mail ticket?
Here’s what we use to stop RT being swamped by Smokeping Alerts. I think
someone has a similar thing for Nagios alerts on the Wiki that I used that
as a starting point for this one - I don’t write perl this way, and
there’s even a Nagios comment in there still :slight_smile:

It matches on subject line to a key ([SmokePing]), then looks for an
existing ticket with the same subject and merges the new one into the old
one.

Best Regards

Howard

Scrip for the General queue. Condition: OnCreate, Action: User Defined.

Custom Action is:

If the subject of the ticket matches a pattern suggesting

that this is a SmokePing Alert message AND there is

an existing ticket (open or new) in the “General” queue with a matching

Subject, (that is not this ticket) merge this ticket into that ticket

my $problem_desc = undef;

my $Transaction = $self->TransactionObj;
my $subject = $Transaction->Attachments->First->GetHeader(‘Subject’);
if ($subject =~ /[SmokeAlert](.*)/) {

This looks like a SmokeAlert message

$problem_desc = $2;

$RT::Logger->debug(“Found a smokealert msg: $problem_desc”);
} else {
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) {

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 eq $subject) {
$id = $ticket->Id;
$RT::Logger->debug("Merging ticket " . $self->TicketObj->Id . “
into $id because of subject match.”);
$self->TicketObj->MergeInto($id);
}
}

$id || return 1;

1;