[标签]: 日志监控 异常关键字监控 JAVA日志
问题详情的描述或方案目标的预期:
Java日志异常关键字监控脚本分享
【解决方案】
[root@blubn-aly-03 monitor_logerrkey]# cat conf/app.conf
# ERROR_KEY--监控关键字,多个使用空格隔开
ERROR_KEY="exceptions SQLException"
# Check log
# DES_log="/data/logs/biz/mogo-out.log"
--------------------------------------------------------
#!/bin/bash
# Check logs for finding err key message
# Edit by daiwh02@cdb-leasing.com
ps -ef|egrep -v "grep| $$ |vim "|egrep -i "monitor_logerrkey"|awk '{print$2}' |xargs kill -9
while true;do
# 全局变量
DIR_WORK="/opt/work/item_install/monitor_logerrkey"
DIR_LOGS="$DIR_WORK/logs"
FILE_CONF="$DIR_WORK/conf/app.conf"
DES_LOG="/data/logs/biz/mogo-out.log"
DES_LOG2="/tmp/tmp_mogo-out.log"
IPADDR=`ifconfig |egrep -o "([0-9]{1,3}\.){3}[0-9]{1,3}" |egrep -v "127.0.0.1|0$|255$"|head -1`
ERROR_KEY="exceptions"
TIME=$(date +"%Y%m%d_%H%M%S")
TIME1=$(date +"%Y-%m")
FILE_MD5="$DIR_WORK/logs/md5-his.log"
LOG="$DIR_LOGS/monitor_logerrkey.log"
LOG_HIS="$DIR_LOGS/check_his.log"
NAME_ALARM_DATAFILE="${IPADDR}_monitor_logerrkey"
LOGT="$DIR_WORK/logs/tmp.log"
echo "==============================CheckTime:$TIME" >> $LOG_HIS
. $FILE_CONF
TIME_1STLINE=`head -50 $DES_LOG|awk '{print$1" "$2}'|cut -d[ -f1|egrep -o "[0-9\-]{10} [0-9:]{8}"|head -n1|awk '{print$1}'|cut -d- -f-2`
if [ "$TIME_1STLINE" = "$TIME1" ];then
KEY_FILE="yesfile"
else
tail -10000 $DES_LOG >$DES_LOG2
DES_LOG=$DES_LOG2
fi
# =========================================================
for i in $ERROR_KEY;do
tail -1000 $DES_LOG|egrep -i "$i" >$LOGT
if [ -s $LOGT ];then
VALUEMD5_NEW_ALARMFILE=`md5sum $LOGT|awk '{print$1}'`
if [ `grep $VALUEMD5_NEW_ALARMFILE $FILE_MD5|wc -l` -eq 1 ];then
echo "${i}_旧告警内容,本次不发送告警" >> $LOG_HIS
else
echo "${i}_有新告警" >> $LOG_HIS
NEW_ALARM_MESSAGE="$TIME $IPADDR $i $VALUEMD5_NEW_ALARMFILE"
echo "$NEW_ALARM_MESSAGE" >>$FILE_MD5
FILE_ALARM="${DIR_LOGS}/${NAME_ALARM_DATAFILE}"
echo "$NEW_ALARM_MESSAGE" >$FILE_ALARM ; echo " " >>$FILE_ALARM ; tail -10000 $DES_LOG|egrep -i -C100 "$i" >>$FILE_ALARM
# timeout 21 scp -q $FILE_ALARM 10.1.19.68:/opt/data_monitor/alarm_files/${NAME_ALARM_DATAFILE}_${i}_${TIME}
# mv $FILE_ALARM $DIR_WORK/logs/alarm_files/${NAME_ALARM_DATAFILE}_${i}_${TIME}
fi
else
echo "${i}_日志健康。" >> $LOG_HIS
fi
echo "===========>>.Next_Key"
done
echo " " >> $LOG_HIS
rm -rf $LOGT
sleep 21
done
总结:不要忘记长期积累正向小事。