Web服务器日志统计分析完全解决方案

对于所有的ICP来说,除了保证网站稳定正常运行以外,一个重要的问题就是网站访问量的统计和分析报表,这对于了解和监控网站的运行状态,对提高各个网站的服务能力和服务水平是必不可少的 。通过对Web服务器的日志文件进行分析和统计,能够有效掌握系统运行情况以及网站内容的受访问情况、加强对整个网站及其内容的维护与管理 。本文对Web服务器日志分析的原理和技术进行讨论 。
一、 前言
随着Internet上Web服务的发展,几乎各个政府部门、公司、大专院校、科研院所等都在构建或正在建设自己的网站 。而与此同时,在构建网站建设中各个单位都会遇到各种各样的问题,那么对web服务器的运行和访问情况进行详细和周全的分析对于了解网站运行情况,发现网站存在的不足,促进网站的更好发展重要性是不言而喻的 。
管理Web网站不只是监视Web的速度和Web的内容传送,它要求不仅仅关注服务器每天的吞吐量,还要了解对这些Web网站的外来访问,了解网站各页面的访问情况,根据各页面的点击频率来改善网页的内容和质量、提高内容的可读性,跟踪包含有商业交易的步骤以及管理Web网站“幕后的数据等 。
为了更好地提供WWW服务,监控WEB服务器的运行情况、了解网站内容的详细访问状况就越来越显得重要和迫切了 。而这些要求都可以通过对web服务器的日志文件的统计和分析来做到 。
二、WEB日志分析的原理
网站服务器日志记录了web服务器接收处理请求以及运行时错误等各种原始信息 。通过对日志进行统计、分析、综合,就能有效地掌握服务器的运行状况,发现和排除错误原因、了解客户访问分布等,更好的加强系统的维护和管理 。
在WWW服务模型是非常简单的(见图1):
1) 客户端(浏览器)和web服务器建立tcp连接,连接建立以后,向web 服务器发出访问请求(如:get),根据HTTP协议该请求中包含了客户端的IP地址、浏览器的类型、请求的URL等一系列信息 。
2) web服务器收到请求后,将客户端要求的页面内容返回到客户端 。如果出现错误,那么返回错误代码 。
3) 服务器端将访问信息和错误信息纪录到日志文件里 。下面是客户端发送给web服务器请求的数据报的内容:
GET /engineer/ideal/list.htm HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*
Referer: http://www.linuxaid.com.cn/engineer/ideal/
Accept-Language: zh-cn
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)
Host: www.linuxaid.com.cn
Connection: Keep-Alive
可以看到,在客户机的请求里包含了很多有用的信息,例如:客户端类型等等 。而web服务器就会将请求的web页内容发送返回给客户机 。
目前最常用的web服务器有Apache、Netscape enterprise server、MS IIS等 。而目前互联网上最常用的web服务器就是apache,因此我们这里的讨论都以Linux+apache环境讨论,其他的应用环境类似 。对于Apache来说,支持多种日志文件格式,最常见的是common和combined两种模式,其中combined方式比common方式的日志的信息要多Referer(该请求来自于哪里,例如来自于yahoo的搜索引擎)和User-agent(用户客户端类型,如mozilla或IE) 。我们这里讨论combined类型 。下面是common类型的日志示例:
218.242.102.121 - - [06/Dec/2002:00:00:000000] "GET /2/face/shnew/ad/via20020915logo.gif HTTP/1.1" 304 0 "http://www.mpsoft.net/" "Mozilla/4.0 (compatible; MSIE 6.0; Windows 98)"
61.139.226.47 - - [06/Dec/2002:00:00:000000] "GET /cgi-bin/guanggaotmp.cgi?1 HTTP/1.1" 200 178 "http://www3.beareyes.com.cn/1/index.php" "Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)"

推荐阅读