脚本的功能需求:
1、扫描tomcat指定日志扫描,1分钟内增长的请求量,扫描值响应时间
2、剔除无效请求
shell脚本 mon_iobs.sh:
#!/bin/bash
DATE=$(date +%Y%m%d)
ST_LINE=68637
STIME=$(date +%S.%N)
SH_DIR="/wls/logop/monitor_iobs/iobs_mon.properties"
LOG_DIS=`awk 'NR==1{print $3}' $SH_DIR`
ED_LINE=`wc -l /wls/apache/applogs/$LOG_DIS/access_log.$DATE.txt | awk '{print $
1}'`
NE_LINE=$[$ED_LINE-$ST_LINE]
MON_LOCK="/wls/logop/monitor_iobs/log/mon.lock"
TARGET="/wls/apache/applogs/$LOG_DIS/access_log.${DATE}.txt"
CACH_LOG="/wls/logop/monitor_iobs/log/cache.log"
URL=""
MON_URL=`awk 'NR==2{print $3}' $SH_DIR`
MON_PW=`awk 'NR==3{print $3}' $SH_DIR`
MON_ID=`awk 'NR==4{print $3}' $SH_DIR`
OP=`awk 'NR==5{print $3}' $SH_DIR`
AVG=0
#P_FLAG=`ps -ef|grep mon_iobs.sh|wc -l|awk '{if($1>1){tmp=1}else{tmp=0} print tm
p}'`
#echo $P_FLAG
if [ ! -e "$MON_LOCK" ]
then
touch $MON_LOCK
else
echo "sh is locked!"
exit
fi
if [ $NE_LINE \< 0 ]
then
echo "next day log start!"
sed -i "3s/.*/ST_LINE=0/" /wls/logop/monitor_iobs/mon_iobs.sh
rm $MON_LOCK
exit
fi
if [ $NE_LINE == 0 ]
then
echo "no change for log!"
echo "$(date +%d/%b/%Y:%H:%M:%S) 0" > /wls/logop/monitor_iobs/log/cache.log
else
tail -$NE_LINE $TARGET | awk '{if($11 = 200&&$9!~/f5check.jsp/&&$9!~/perfmon/) print $13}' > $CACH_LOG
VA_LINE=`wc -l $CACH_LOG | awk '{print $1}'`
echo An increase of $NE_LINE line ,Valuable `wc -l $CACH_LOG | awk '{print $1}'` line!
if [ $VA_LINE == 0 ]
then
URL="$MON_URL?password=$MON_PW&id=$MON_ID&op=$OP&epoch=$(date +%s)&value=0"
else
AVG=`awk '{tsum+=$1} END {print tsum/NR}' $CACH_LOG`
AVG=`echo $AVG|awk -F. '{if(substr($2,1,1)>=5) $1+=1;print $1}'`
URL="$MON_URL?password=$MON_PW&id=$MON_ID&op=$OP&epoch=$(date +%s)&value=$AVG"
fi
echo $URL
curl $URL
fi
sed -i "3s/.*/ST_LINE=${ED_LINE}/" /wls/logop/monitor_iobs/mon_iobs.sh
/usr/bin/java -jar /wls/logop/monitor_iobs/bin/iobsmoisval.jar /wls/logop/monitor_iobs/bin/iobsmoisval.properties
rm $MON_LOCK
ETIME=$(date +%S.%N)
printf "$(date +%d/%b/%Y:%H:%M:%S) mon_iobs.sh costed : %.3fs\n" `echo $ETIME-$STIME|bc`
配置文件iobs_mon.properties
disk =
monurl = http://rsms-mon.paic.com.cn:9600/MonData/bizDataCollector
monpasswd = commonplatform
monid = 90709909
op = new