分享
 
 
 

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

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

摘要

对于所有的ICP来说,除了保证网站稳定正常运行以外,一个重要的问题就是网站访问量的统计和分析报表,这对于了解和监控网站的运行状态,对提高各个网站的服务能力和服务水平是必不可少的。通过对Web服务器的日志文件进行分析和统计,能够有效掌握系统运行情况以及网站内容的受访问情况、加强对整个网站及其内容的维护与管理。本文对Web服务器日志分析的原理和技术进行讨论。

请注意本文已刊载在《开放系统世界》2003年第二期,该文章版权属于该杂志所有,请勿随意转载,转载请保留该声明

摘要:对于所有的ICP来说,除了保证网站稳定正常运行以外,一个重要的问题就是网站访问量的统计和分析报表,这对于了解和监控网站的运行状态,对提高各个网站的服务能力和服务水平是必不可少的。通过对Web服务器的日志文件进行分析和统计,能够有效掌握系统运行情况以及网站内容的受访问情况、加强对整个网站及其内容的维护与管理。本文对Web服务器日志分析的原理和技术进行讨论。

文章相关软件:

webalizer http://www.mrunix.net/webalizer/

cronolog http://www.cronolog.org/

Apache http://www.apache.org/

一、 前言

随着Internet上Web服务的发展,几乎各个政府部门、公司、大专院校、科研院所等都在构建或正在建设自己的网站。而与此同时,在构建网站建设中各个单位都会遇到各种各样的问题,那么对web服务器的运行和访问情况进行详细和周全的分析对于了解网站运行情况,发现网站存在的不足,促进网站的更好发展重要性是不言而喻的。

管理Web网站不只是监视Web的速度和Web的内容传送,它要求不仅仅关注服务器每天的吞吐量,还要了解对这些Web网站的外来访问,了解网站各页面的访问情况,根据各页面的点击频率来改善网页的内容和质量、提高内容的可读性,跟踪包含有商业交易的步骤以及管理Web网站“幕后”的数据等。

为了更好地提供WWW服务,监控WEB服务器的运行情况、了解网站内容的详细访问状况就越来越显得重要和迫切了。而这些要求都可以通过对web服务器的日志文件的统计和分析来做到。

二、WEB日志分析的原理

网站服务器日志记录了web服务器接收处理请求以及运行时错误等各种原始信息。通过对日志进行统计、分析、综合,就能有效地掌握服务器的运行状况,发现和排除错误原因、了解客户访问分布等,更好的加强系统的维护和管理。

在WWW服务模型是非常简单的(见图1):

1) 客户端(浏览器)和web服务器建立tcp连接,连接建立以后,向web 服务器发出访问请求(如:get),根据HTTP协议该请求中包含了客户端的IP地址、浏览器的类型、请求的URL等一系列信息。

图1 web访问机制

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:00 +0000] "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:00 +0000] "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)"

218.75.41.11 - - [06/Dec/2002:00:00:00 +0000] "GET /2/face/shnew/ad/via20020915logo.gif HTTP/1.1" 304 0 "http://www.mpsoft.net/" "Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)"

61.187.207.104 - - [06/Dec/2002:00:00:00 +0000] "GET /images/logolun1.gif HTTP/1.1" 304 0 "http://www2.beareyes.com.cn/bbs/b.htm" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"

211.150.229.228 - - [06/Dec/2002:00:00:00 +0000] "GET /2/face/pub/image_top_l.gif HTTP/1.1" 200 260 "http://www.beareyes.com/2/lib/200201/12/20020112004.htm" "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)"

从上面的日志文件可以看出日志记录会记录客户端的IP地址、访问发生的时间、访问请求的页面、web服务器对于该请求返回的状态信息、返回给客户端的内容的大小(以字节为单位)、该请求的引用地址、客户浏览器类型等信息。

三、apache日志的配置和管理

本文中我们假设我们的apache运行有两个虚拟主机:www.secfocus.com和www.tomorrowtel.com。我们需要对这两个虚拟主机分别进行访问日志分析和统计。

Apache配置文件中,我们需要关心的和日志相关的配置有两个:

CustomLog /www/logs/access_log common

ErrorLog /www/logs/error_log

CustomLog用来指示apache的访问日志的存放位置(这里保存在/www/logs/access_log中)和格式(这里为common);ErrorLog用来指示apache错误信息日志的存放位置。

对于不配置虚拟主机的服务器来说,只需要直接在httpd.conf中查找CustomLOg的配置进行修改即可;而对于具有多个虚拟服务器的web服务器来说,需要分离各个虚拟服务器的访问日志,以便对各个虚拟服务器进行访问统计和分析。因此这就需要在虚拟服务器配置中进行独立的日志配置,示例:

NameVirtualHost 75.8.18.19

ServerName www.secfocus.com

ServerAdmin secfocus@secfocus.com

DocumentRoot /www/htdocs/secfocus/

CustomLog "/www/log/secfocus" combined

Alias /usage/ "/www/log/secfocus/usage/"

ServerName www.tomorrowtel.com

ServerAdmin tomorrowtel @ tomorrowtel.com

DocumentRoot /www/htdocs/ tomorrowtel

CustomLog "/www/log/tomorrowtel " combined

Alias /usage/ "/www/log/tomorrowtel/usage/"

这里需要注意的是每个虚拟主机的定义都有一个CustomLog命令,用来指定该虚拟主机访问日志的存放文件;而Alias命令用来让日志分析生成的报表能通过www.secfocus.com/usage/的方式来访问。通过上面的配置就完成了日志文件的保存。

但是下来遇到的一个问题就是日志文件的轮循,因为日志是一直在增大的,如果不进行处理那么日志文件会越来越大,会影响web服务器运行效率;速率,还可能过大耗尽服务器硬盘空间,导致服务器无法正常运行,另外如果单个日志文件大于操作系统单文件尺寸的的限制,从而更进一步影响web服务的运行。而且日志文件如果不进行轮循也不变于日志统计分析程序的运行,因为日志统计分析都是以天为单位进行统计分析的,跨越很长时间日志会使得日志统计分析程序运行特别慢。因此这里就需要对web服务器日志文件每天进行轮循。

四、web服务器日志轮循

web服务器日志轮循比较好的方式有三种:第一种方法是利用Linux系统自身的日志文件轮循机制:logrotate;第二种方法是利用apache自带的日志轮循程序rotatelogs;第三种是使用在apache的FAQ中推荐发展已经比较成熟的一个日志轮循工具cronolog。

对于大型的WEB服务来说,其往往使用实用负载均衡技术提高web站点服务能力,这样后台有多个服务器提供WEB服务,这大大方便了服务的分布规划和扩展性,但多个服务器的分布就需要对日志进行合并统一进行统计分析。因此为了保证统计的精确性就需要严格按照每天的时段来自动生成日志文件。

4.1 logrotate实现日志轮循

首先我们讨论采用Linux系统自身的日志文件轮循机制:logrotate的方法。Logrotate是Linux系统自身带的一个日志轮循程序,是专门对各种系统日志(syslogd,mail)进行轮循的程序。该程序是由运行程序的服务crond来每天凌晨4:02运行的,可以在/etc/cron.daily目录下可以看到logrotate文件,其内容如下:

#!/bin/sh

/usr/sbin/logrotate /etc/logrotate.conf

可以看到每天清晨crond都会启动/etc/cron.daily目录下的logrotate脚本来进行日志轮循。

而在/etc/logrorate.con

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有