Posterous theme by Cory Watilo

Filed under: tomcat

Monitoring Tomcat catalina.out

Where I work, people are too fond of running tail(1) on catalina.out in screen(1). This is a better way, since it can run in cron and is more polite to the system overall.



#!/bin/sh
# Catalina monitoring script


echo catalina.out monitoring
logFile=/var/log/tomcat5/catalina.out
scanFile=/var/log/tomcat5/catalina.out.scan 
 lastline=0 
 if [ -f $scanFile ];
  then 
    lastline=`cat $scanFile` 
 fi 
 
newlastline=`wc -l $logFile | cut -d' ' -f1` 
 
if [ $lastline -gt $newlastline ]; 
  then 
    incremental=$newlastline
  else 
    incremental=`expr $newlastline - $lastline` 
 fi 
 
errors=`tail -n $incremental $logFile |  egrep "Exception|WARN|FATAL"`  isErrors=${#errors} 
 
if [ $isErrors -gt 0 ]; 
  then
    echo $errors > emailbody
    mail -s "Catalina Error,Fatal or warn." $email < emailbody
    cat emailbody;  rm -rf emailbody
fi 
 
echo $newlastline > $scanFile 

Final note: I'm pretty sure I didn't write this, it's not my style.