Ginson 的博客

SEO、Python、ACG 及日常

用 Shell 进行网站日志分析

什么是网站日志

网站是搭建在服务器上的,服务器会记录所有接收处理的请求等信息并保存为网站日志。

通过网站日志可以清楚的得知用户在什么IP、什么时间、用什么浏览器请求了你网站的哪个页面,以及是否访问成功。

日志示例

www.example.com 60.175.221.156 - - [25/Mar/2015:13:24:33 +0800] "GET /page.html HTTP/1.1" 200 12264 "http://www.example.com/" "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36 SE 2.X MetaSr 1.0" "-" "-" "-"

日志各字段含义
mx.shejiben.com 域名
60.175.221.156 访问IP
[25/Mar/2015:13:24:33 +0800] 访问时间
/page.html 访问页面
GET HTTP/1.1 传输协议
200 状态码
12264 下载大小
http://mx.shejiben.com/index-1s2i2p2 来源页面
Mozilla/5.0 (Windows NT 6.1) **** 访客信息

 

分析网站日志的意义

搜索引擎蜘蛛也是一种用户,搜索引擎抓取页面实际就是在请求网页。因此网站日志也会记录蜘蛛在网站内的一举一动。

对SEO来说,分析网站日志意义重大,包括但不限于:

监控异常

状态码监控
状态码相关知识见: http://wiki.jikexueyuan.com/project/seo/07.html
网站日志会记录每次请求的状态码。正常情况下各状态码的占比应该是比较稳定的,比如200状态必然是最多的,404不应该超过1%,如果某一类状态码比例异常增加,说明网站可能有什么地方出了问题。其中SEO需要重点关注 200、301、302、403、404、500状态码

蜘蛛抓取量监控
网站页面必须要先被蜘蛛抓取才有可能收录,进而才能参与排名、获取流量。作为第一个环节,监控抓取量能有效评估网站的基础 SEO 工作成效。
同时,一段时间内同一个网站蜘蛛抓取量应该是稳定的,如果出现较大波动也说明网站有异常。
监控蜘蛛抓取量时可以看整体,但细分到具体某个频道,某类页面会更有意义。

排查问题
链接是否抓取
出现收录问题时,首先应该通过网站日志确认链接是否被抓取。
如果没有被抓取说明网站内链优化不够,如果有抓取说明页面本身可能有问题。

 

为什么用 shell 进行网站日志分析

有一定流量的站点,其网站日志通常体积较大(目前我司网站日志体积几个 G),用常规工具如 Excel 处理速度会很慢。
网上也有专门针对网站日志的分析工具,如光年日志分析工具,但是功能单一不够灵活。
shell 处理网站日志这种纯文本内容有优势,不惧文件大小,效率高,各种命令组合起来非常灵活,是分析网站日志的不二选择。唯一问题就是有点门槛,需要学习。

 

如何分析网站日志

常用分析命令
统计抓取量

wc -l site.log

统计各状态码数量

awk '{print $10}' site.log | sort | uniq -c

筛选抓取状态码为404的页面

awk '$10==404{print $1$8}' site.log

统计指定URL抓取量

egrep -c '/ask/k' site.log

统计指定URL抓取状态码情况

egrep '/ask/k' site.log | awk '{print $10}' | sort | uniq -c

按抓取量降序排列所有被抓取页面

awk '{print $1$8}' site.log | sort | uniq -c | sort -r

 

 

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注