项目需求:
监测Tomcat运行日志,一旦日志中出现Exception关键字就发出邮件报警
项目分析:
以单台服务器的多个Tomcat为例。
#!/bin/bash # -*-coding:utf-8-*- #过滤的关键字 keywords=Exception #当前主机的IP地址 IPAddress=`ip add|grep eth0 |grep inet| awk '{print $2}'|awk -F"/" '{print $1}'` #列出在线的Tomcat ps -ef |grep tomcat |grep -v grep|awk '{print $9}'|awk -F"/" '{print $4}'|awk -F"-" '{print $2}' |sort >/tmp/Tomcat_Online.log #每次执行前,必须清空/tmp/Tomcat_Online_$IPAddress.log日志内容 echo "" >/tmp/Tomcat_Online_$IPAddress.log cat /tmp/Tomcat_Online.log | while read line do grep -n $keywords /usr/local/tomcat-$line/logs/catalina.out >/dev/null if [ $? -eq '0' ]; then Err_Line=`grep -n $keywords /usr/local/tomcat-$line/logs/catalina.out |awk -F":" '{print $1}' |tail -n 3| tr '\n' ' '` printf "$IPAddress的tomcat-$line日志发生异常,最近三个异常行数为:$Err_Line \n"|sort >>/tmp/Tomcat_Online_$IPAddress.log #echo "当前服务器$IPAddress的tomcat-$line日志发生异常" |mail -s "$IPAddress的tomcat-$line日志发生异常" jack.liu@leaderment.com else continue; fi done
转载于:https://blog.51cto.com/hbgslz/2309355