#!/bin/bash
#例如:监控tomcat日志
LOG_DIR=/root/catalina.out
IP=`ifconfig  | grep "inet addr" | grep Bcast | awk -F '[  :]+' '{print $4}'`

tail -Fn0 $LOG_DIR| \
while read line;do
	echo $line | grep  -i  -f /root/errorword.txt >/dev/null
	if [ $? -eq 0 ];then
		echo -e "IP: $IP \n Datetime: $(date) \n Problem: $line" | mail -s "Warning:$IP Log Error " [email protected] 
		echo "$IP,$(date),$line" >>/var/log/error_report.log
		
	fi	
done

errorword.txt文件里可以存放常见错误关键词如:Out of memory,ERROR,Exception

另外也可以使用for循环脚本周期性取前几分钟时间段的日志进行错误过滤,或者使用日志监控工具如:logstash或zabbix等。