Nagios log file with normal date/time format
Introduction –
Nagios log file print the time in epoch time format. To convert that nagios log with normal time/date format you can use the following perl script.
Please download the script from here- http://www.indiangnu.org/wp-content/uploads/2010/nagios-log-pl.txt
* How to use it –
root@me:~# cat /etc/nagios/var/nagios.log | grep -i NOTIFICATION | /root/nagmon/nagios-log.pl
* Pasting the code here…
root@me:~# /root/nagmon/nagios-log.pl
#!/usr/bin/perl
# Author - IndianGNU.org
# Read nagios.log file and show log with
# converted date field in human-readable format
#
$numArgs = $#ARGV + 1;
if ( $ARGV[0] eq "-h")
{
print " * Usage: cat like '/usr/local/nagios/var/nagios.log' | $0 \n"; exit 1;
}
sub epochtime
{
my $epoch_time = shift;
($sec,$min,$hour,$day,$month,$year) = localtime($epoch_time);
# correct the date and month for humans
$year = 1900 + $year;
$month++;
return sprintf("%02d/%02d/%02d %02d:%02d:%02d", $year, $month, $day, $hour, $min, $sec);
}
while (<>)
{
my $epoch = substr $_, 1, 10;
my $remainder = substr $_, 13;
my $human_date = &epochtime($epoch);
printf("[%s] %s", $human_date, $remainder);
}
exit;
Thanks you,
Arun