轻量级监控平台之异常日志监控脚本
#!/bin/bash
#进程监控脚本
#功能需求: 上报服务日志错误记录
. /etc/profile
. ~/.bash_profile
pushurl="https://lightmonitorapi.test.cn/push/serviceerror"
proNum=$(jps | grep -v Jps | cut -d' ' -f1)
i=1
cd /opt/web/
webDir=$( ls )
msg=""
for pid in $proNum
do
serviceName=$(service list | grep "$pid" | cut -d' ' -f1)
if [ -n "$serviceName" ];then
logName=$(cat /opt/service/deploy/"$serviceName"/service_log4j.xml | grep 'activexAppender' | awk '{print $3}' | awk -F'/' '{print $4}' |sed 's/"//g')
logdir="/opt/service/log/"$serviceName"/"$logName
if [ -f "$logdir" ];then
ctime=$(date " %m-%d %H:%M")
excenum=$(grep "$ctime" "$logdir" |grep "Exception" | wc -l )
excedetail=""
if [ $excenum -gt 0 ];then
excedetail=$(grep "$ctime" "$logdir" |grep "Exception" -A 30)
fi
error=$(grep "$ctime" "$logdir" | grep "ERROR" | wc -l)
msg=$msg$pid"-"$serviceName"-"$excenum"-"$error"-{{"$excedetail"}}#=\n"
else
echo "file not found:"$serviceName
fi
else
for fileName in $webDir
do
fileDir=$(ps -ef | grep -v grep | grep "$pid" | grep "$fileName" )
if [ -n "$fileDir" ];then
namespace="/opt/web/$fileName/webapps/WEB-INF/classes/META-INF/namespace.properties"
conf=$(cat "$namespace" | awk -F'=' '{print $2}')
logdir="/opt/web/"$fileName"/web/logs/"$conf"/"$conf".log"
uplogdir="/opt/web/"$fileName"/web/logs/"$conf
if [ -d "$uplogdir" -a -f "$logdir" ];then
ctime=$(date " %H:%M")
excenum=$(grep "$ctime" "$logdir" |grep "Exception" | wc -l )
excedetail=""
if [ $excenum -gt 0 ];then
excedetail=$(grep "$ctime" "$logdir" |grep "Exception" -A 30)
fi
error=$(grep "$time" "$logdir" | grep "ERROR" | wc -l)
msg=$msg$pid"-"$fileName"-"$excenum"-"$error"-{{"$excedetail"}}#=\n"
else
echo "file not found:"$fileName
echo "$conf"
echo "$logdir"
echo "$uplogdir"
fi
fi
done
fi
done
ip=$(ip addr | grep 'BROADCAST' -A2 | tail -n1 | awk '{print $2}' | cut -f1 -d '/')
ticket=$(cat /opt/shell/ticket.txt)
curl $pushurl \
-H "Accept: application/json" \
-H 'Content-Type: application/json' \
-d \ '{"ip": "'"${ip}"'", "ticket": "'"${ticket}"'", "data": "'"${msg}"'"}'
架构设计@工程设计@服务稳定性之路