一聚教程网:一个值得你收藏的教程网站

热门教程

nginx中查看分析各搜索引擎的来访日志

时间:2022-06-30 18:39:24 编辑:袖梨 来源:一聚教程网

一、将每天网站的日志分割出来,因为一个日志文件随着时间的积累会变的很庞大,所以养成习惯当天的日志切割成一个日志文件,便于读取。

可以读取我博客里的相关文章:http://www.111com.net/sys/nginx/72367.htm

二、通过一个shell脚本读取日志文件,将日志显示出来。
脚本内容:

 代码如下 复制代码

#!/bin/bash
#  修改下面一行为日志位置
log_dir='/home/wwwlogs/www.****.com_*.log'
##########
#  $key为grep的关键字,$word为提示,要求一一对应,数量相同
##########
#http 代码
key[0]='\" 200 [0-9]\{3\}';word[0]='http 200'
key[1]='\" 206 [0-9]\{3\}';word[1]='http 206'
key[2]='\" 404 [0-9]\{3\}';word[2]='http 404'
key[3]='\" 503 [0-9]\{3\}';word[3]='http 503'
##########
搜索引擎爬虫
key[4]='Googlebot.*google\.com\/bot\.html';word[4]='来自Google爬虫'
key[5]='Baiduspider.*baidu\.com\/search\/spider\.html';word[5]='来自百度蜘蛛'
key[6]='bingbot.*bing\.com\/bingbot\.htm';word[6]='来自Bing爬虫'
#Soso 'Sosospider.*soso\.com\/webspider\.htm'
#有道 'YoudaoBot.*youdao\.com\/help\/webmaster\/spider\/'
#Yahoo中国 'Yahoo\! Slurp China'
##########
#  浏览器
key[7]='MSIE';word[7]='MSIE'
key[8]='Gecko\/.*Firefox';word[8]='Firefox'
key[9]='AppleWebKit.*like Gecko';word[9]='Webkit'
key[10]='Opera.*Presto';word[10]='Opera'
#360安全 'MSIE.*360SE' 或加ie内核版本 'MSIE 6\.0 .*360SE' 'MSIE 7\.0 .*360SE' 'MSIE 8\.0 .*360SE' 'MSIE 9\.0 .*360SE'
#360急速 'AppleWebKit.*QIHU 360EE'
##########
#  操作系统
key[11]='Windows NT 6.1';word[11]='Windows 7'
key[12]='Macintosh\; Intel Mac OS X';word[12]='Mac OS X'
key[13]='X11.*Linux';word[13]='Linux with X11'
key[14]='Android\;';word[14]='Android'
#Windows系列 win2000'Windows NT 5.0' winxp'Windows NT 5.1' winvasta'Windows NT 6.0' win7'Windows NT 6.1'
#SymbianOS 'SymbianOS'
##########
#  设备
key[15]='iPad.*like Mac OS X';word[15]='iPad'
key[16]='Nokia';word[16]='诺基亚系列'
key[17]='Nokia5800';word[17]='Nokia5800 XpressMusic'
#iPhone 'iPhone.*like Mac OS X'
##########
#  其他
key[18]='GET \/.*\.mp3 HTTP';word[18]="访问mp3文件"
key[19]='GET \/.*\.jpg HTTP';word[19]="访问jpg文件"

#  配置结束
##############################################################################

log_num=$(ls ${log_dir} | wc -l)
fileid=0
isgz=0
#gz检查
for file in $(ls ${log_dir})
do
if [ "${file##*.}" = "gz" ]; then
        isgz[$fileid]=1
        gzip -dvf $file
        logfile[$fileid]=$(echo $file | sed 's/\.gz$//')
        (( fileid++ ))
else
        isgz[$fileid]=0
        logfile[$fileid]=$file
        (( fileid++ ))
 fi
done
#  检查key和 word 的数量是否一致
if [ ${#word[@]} -ne ${#key[@]} ]
then
 echo "配置有错误,key和word的数量不一致"
else

checkid=0
while [ $checkid -lt $log_num  ]
do
filename=${logfile[$checkid]}
totle=$(cat $filename | wc -l)
echo "日志 ${filename} 共 ${totle} 行,需要处理 ${#key[@]} 项"
echo "来源IP数:$(cat $filename | awk '{print $1}' |sort|uniq|wc -l)"
i=0
while [ $i -lt ${#key[@]} ]
do
 s1=${word[$i]}
 s2=$(cat $filename | grep ''"${key[$i]}"'' | wc -l)
 s3=$(awk 'BEGIN{printf "%.2f%\n",('$s2'/'$totle')*100}')
 echo "${s3} ${s1}: ${s2}"
 ((i++))
done
(( checkid++ ))
echo "-----------------"
done
fi
#  还原压缩文件
gzid=0
while [ $gzid -lt $log_num ]
do
if [ "${isgz[$gzid]}" = "1" ]
then
gzip -v ${logfile[$gzid]}
fi
(( gzid++ ))
done


 
也可以直接到我的站里下载这个脚本。
脚本中的内容你要将log的文件位置修改下,

log_dir='/home/wwwlogs/www.******.com_*.log'

然后保存,chmod +X nla.sh  赋予写权限。
使用的时候 只需要运行下sh nla.sh
就会将日志整理好,整理好的截图如下。

 

nginx中查看分析各搜索引擎的来访日志

这样每天只需要每天运行下就可以看到每天搜索引擎的访问情况了。


ps 关于日志分析工具小编只整理了小段代码了,当然还有更多更好的代码大家可以百度搜索一下即可知道了。

热门栏目