注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

曾国藩的博客

 
 
 

日志

 
 

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

2016-01-26 15:02:09|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
http://www.111cn.net/sys/nginx/72368.htm

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

可以读取我博客里的相关文章:http://www.111cn.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 关于日志分析工具小编只整理了小段代码了,当然还有更多更好的代码大家可以百度搜索一下即可知道了。

  评论这张
 
阅读(430)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018