WEB日志格式及分析

匿名 2022-03-27 20:00:42 热度:2805

网站日志挖掘分析-WEB日志格式及分析工具

WEB日志格式及分析

WEB日志是网站分析和网站数据数据整理最基础的数据,了解其格式和组成将有利于更好地进行数据的收集、处理和分析。

一、日志格式类型

目前常见的WEB日志格式主要由两类,一类是Apache的NCSA日志格式,另一类是IIS的W3C日志格式。NCSA格式又分为NCSA普通日志格式(CLF)和NCSA扩展日志格式(ECLF)两类,目前最常用的是NCSA扩展日志格式(ECLF)及基于自定义类型的Apache日志格式;而W3C扩展日志格式(ExLF)具备了更为丰富的息,但目前的应用并不广泛,所以这里主要介绍的是NCSA扩展日志格式(ECLF)。

二、常见日志格式的组成

这是一个最常见的基于NCSA扩展日志格式(ECLF)的Apache日志样例:

可以看到这个日志主要由以下几个部分组成:

访问主机(remotehost)显示主机的IP地址或者已解析的域名。

标识符(Ident)由identd或直接由浏览器返回浏览者的EMAIL或其他唯一标示,因为涉及用户邮箱等隐私信息,目前几乎所有的浏览器就取消了这项功能。

授权用户(authuser)用于记录浏览者进行身份验证时提供的名字,如果需要身份验证或者访问密码保护的信息则这项不为空,但目前大多数网站的日志这项也都是为空的。

日期时间(date)一般的格式形如[22/Feb/20xx:09:51:46 +0800],即[日期/月份/年份:小时:分钟:秒钟时区],占用的的字符位数也基本固定。

请求(request)即在网站上通过何种方式获取了哪些信息,也是日志中较为重要的一项,主要包括以下三个部分:

请求类型(METHOD)常见的请求类型主要包括GET/POST/HEAD这三种;

请求资源(RESOURCE)显示的是相应资源的URL,可以是某个网页的地址,也可以是网页上调用的图片、动画、CSS等资源;

协议版本号(PROTOCOL)显示协议及版本信息,通常是HTTP/1.1或HTTP/1.0。

状态码(status)用于表示服务器的响应状态,通常1状态码表示继续消息;2表示请求成功;3表示请求的重定向;4表示客户端错误;5表示服务器错误。

传输字节数(bytes)即该次请求中一共传输的字节数。

来源页面(referrer)用于表示浏览者在访问该页面之前所浏览的页面,只有从上一页面链接过来的请求才会有该项输出,如果是新开的页面则该项为空。上例中来源页面是google,即用户从google搜索的结果中点击进入。

用户代理(agent)用于显示用户的详细信息,包括IP、OS、Bowser等。

三、日志格式扩展

apache日志格式可以自定义来配置其输出格式,常见的基于NCSA扩展日志格式(ECLF)自定义添加的包括域名(domain)和cookie。其中域名在一个网站拥有二级域名或者子域名时,可以更好地区分日志;而cookie可以作为用户的身份标识。其他具体的自定义信息详见:Custom Log Formats

四、导入日志数据到MySQL中

访问分析是SEO的一项重要工作,但统计、分析工具毕竟功能是针对大众的,很多时候SEO需要一些特定的数据,是统计分析软件、程序所不能提供的。这样,直接的Web日志分析就是最合适的了,日志中会记录每一个访问情况,只要按自己的意愿提取、组合,就能得到想要的数据。使用SQL语句分析是最方便的,需要什么样的数据,只要使用相应的SQL命令就能实现。

导入Web日志到MySQL数据库的实现

1、修改Apache日志格式

修改Web日志格式为:

?

SQL需要导入的内容有特定的分隔符,Apache的日志默认是以空格分隔的,而有些内容(如状态码中的 200 610)也包含空格,这就无法准确的导入。将日志格式修改为以逗号分隔,就能准确的导入了。还可以根据自己的需要,取消日志格式中不需要的内容,减少日志文件大小。

2、建立MySQL数据表

注:上面只是一个MySQL数据表结构范例,没有与上一步日志格式对应,请勿直接复制使用!

新建一个数据库,数据表结构与日志格式对应起来。

3、导入日志到MySQL中

weblog 对应上面的数据表名。

另外,乐思蜀从网上找到一个将IIS日志导入到MySQL数据库的.pl程序,需要的点这里下载(Readme.txt为使用说明)。

五、常用日志分析工具

1.awstats

2.analog

3.webalizer

4.PHPMyVisites

相关Tags:工作自己自己

2万+
4 点赞

精选日记相关阅读