用 shell 分析网站日志

作者: Ginson 分类: SEO 发布时间: 2017-07-15 09:28

什么是网站日志

网站是搭建在服务器上的,服务器会记录所有接收处理的请求等信息并保存为网站日志。
通过网站日志可以清楚的得知用户在什么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) ****  访客信息(UA等)

 

分析网站日志的意义

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

日志分析脚本

对于常用的分析命令直接写成脚本定时运行

 

 

发表评论

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