HI All,
Have a perl script which parses a file (FILE1 has a list of alerts) and sends an email in certain format.
Only thing I need is that for VIPS/hosts having the word test in it should append test to the subject title..
FILE1:
***** Alert *****
Notification Type: PROBLEM
Service: Appsname_2333_env1_region
Host: vip-scv.corp.foobar.com
Address: x.x.x.x
State: CRITICAL
Date/Time: Mon Aug 8 15:50:02 EDT 2011
Additional Info:
CRITICAL - Socket timeout after 3 seconds
Console http://foobar.com/nagios/index.php
***** Alert *****
Notification Type: PROBLEM
Service: DiffAppsname_8552_env2_region2
Host: vip2-scv.corp.foobar.com
Address: x.x.x.x
State: CRITICAL
Date/Time: Mon Aug 8 15:50:02 EDT 2011
Additional Info:
CRITICAL - Socket timeout after 3 seconds
Console http://foobar.com/nagios/index.php
PERL SCRIPT:
#!/usr/bin/perl -w
use strict;
my ($apps,$email,$host);
open(HM,"<","/var/tmp/email") or die "Fail- $!\n";
open(WM,">","/var/tmp/email_text") or die "Fail- $!\n";
while(<HM>) {
chomp;
$apps = $1 if /Service:(.*)/;
$host = $1 if /^Host:(.*)/;
if (/Date\/Time:(.*)/) {
printf WM "%s:%s:%s\n",$apps,$host,$1;
}
}
seek HM,0,0;
print WM <HM>;
$email='mail -s "alerts from past 4 mins" user@foobar.com < /var/tmp/email_text 2>/var/tmp/email_err';
system($email);
if ( $? ne 0 ) {
die "Failure - while sending email. Please check file /tmp/email_err \n";
}
close(WM);
close(HM);
unlink "/tmp/email" or warn "Could not unlink email: $!";;
unlink "/tmp/email_text" or warn "Could not unlink email_text: $!";;
Thanks,
Jacki.