八文_文档搜索
 
设为首页   |  加入收藏夹
 八文网 - 汇聚八方文档 - 做最优秀的免费文档下载网站
 

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

文档类型: Microsoft Word 文档 文档大小:91.5KB
Web服务器日志统计分析完全解决方案摘要对于所有的ICP来说,除了保证网站稳定正常运行以外,一个重要的问题就是网站访问量的统计和分析报表,这对于了解和监控网站的运行状态、对提高各个网站的服务能力和服务水平是必不可少的.通过对Web服务器的日志文件进行分析和统计,能够有效掌握系统运行情况以及网站内容的受访问情况,加强对整个网站及其内容的维护与管理.本文对Web服务器日志分析的原理和技术进行讨论.
请注意本文已刊载在《开放系统世界》2003年第二期,该文章版权属于该杂志所有、请勿随意转载,转载请保留该声明
关键字:web服务器日志统计分析crontab cronolog apache
摘要:对于所有的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等一系列信息.
图1 web访问机制2) web服务器收到请求后,将客户端要求的页面内容返回到客户端.如果出现错误,那么返回错误代码.
3) 服务器端将访问信息和错误信息纪录到日志文件里.下面是客户端发送给web服务器请求的数据报的内容:GET HTTP1.1
Accept: imagegif, imagejpeg, imagepjpeg,
zh-cn
gzip, deflate
Connection: Keep-Alive可以看到,在客户机的请求里包含了很多有用的信息,例如:客户端类型等等.而web服务器就会将请求的web页内容发送返回给客户机.
目前最常用的web服务器有 enterprise server,MS IIS等.而目前互联网上最常用的web服务器就是apache,因此我们这里的讨论都以Linuxapache环境讨论、其他的应用环境类似.对于Apache来说,支持多种日志文件格式,最常见的是common和combined两种模式,其中combined方式比common方式的日志的信息要多Referer(该请求来自于哪里、例如来自于yahoo的搜索引擎)和User-agent(用户客户端类型,如mozilla或IE).我们这里讨论combined类型.下面是common类型的日志示例:
DecGET Mozilla4.0 (compatible; MSIE 6.0; Windows 98)
DecGET Mozilla4.0 (compatible; MSIE 5.0; Windows 98; DigExt)
DecGET Mozilla4.0 (compatible; MSIE 5.0; Windows 98; DigExt)
DecGET Mozilla4.0 (compatible; MSIE 6.0; Windows NT 5.1)
DecGET Mozilla4.0 (compatible; MSIE 5.5; Windows NT 5.0)
从上面的日志文件可以看出日志记录会记录客户端的IP地址、访问发生的时间,访问请求的页面,web服务器对于该请求返回的状态信息,返回给客户端的内容的大小(以字节为单位)、该请求的引用地址、客户浏览器类型等信息.
三、apache日志的配置和管理本文中我们假设我们的apache运行有两个虚拟主机和我们需要对这两个虚拟主机分别进行访问日志分析和统计.
Apache配置文件中、我们需要关心的和日志相关的配置有两个:CustomLog commonErrorLog 用来指示apache的访问日志的存放位置(这里保存在中)和格式(这里为common);ErrorLog用来指示apache错误信息日志的存放位置.
对于不配置虚拟主机的服务器来说,只需要直接在httpd.conf中查找CustomLOg的配置进行修改即可;而对于具有多个虚拟服务器的web服务器来说,需要分离各个虚拟服务器的访问日志,以便对各个虚拟服务器进行访问统计和分析.因此这就需要在虚拟服务器配置中进行独立的日志配置,示例 wwwlogsecfocus combinedAlias usage wwwhtdocs combinedAlias usage 这里需要注意的是每个虚拟主机的定义都有一个CustomLog命令,用来指定该虚拟主机访问日志的存放文件;而Alias命令用来让日志分析生成的报表能通过的方式来访问.通过上面的配置就完成了日志文件的保存.
但是下来遇到的一个问题就是日志文件的轮循,因为日志是一直在增大的,如果不进行处理那么日志文件会越来越大,会影响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运行的,可以在etccron.daily目录下可以看到logrotate文件,其内容如下:! 可以看到每天清晨crond都会启动etccron.daily目录下的logrotate脚本来进行日志轮循.
而在中可以看到内容如下:see man logrotate for detailsrotate log files worth of backlogsrotate 4create new (empty) log files after rotating old this if you want your log files packages drop log rotation information into this packages own wtmp - well rotate them herevarlogwtmp {monthlycreate 0664 root utmprotate 1} logs may be also be configured here.
从logrotate的配置文件中可以看到除了wtmp以外,需要滚动的日志的配置都保存在etclogroate.d目录下.因此我们只需要在该目录下创建一个名为apache的配置文件,来指示logrotate如何轮循web服务器的日志文件即可,下面是一个示例 { -HUP httpd 2> devnull | {这里rotate 2表示轮循时只包括两个备份文件,也就是只有三个日志备份文件.就这样就实现了对两个虚拟主机的日志文件的轮循.后面我们会讨论如何使用日志统计分析软件对日志文件进行处理.
这种方法的优点是不需要其他第三方工具就可以实现日志轮循,但是对于重负载的服务器和使用负载均衡技术的web服务器来说这种方法就不是很实用.因为它是对相应服务进程发出一个-HUP重启命令来实现日志的截断归档的,这样会影响服务的连续性.
4.2 使用apache自带的rotatelogs实现日志轮循apache提供了将不把日志直接写入文件,而是通过管道发送给另外一个程序的能力、这样就大大的加强了对日志进行处理的能力、这个通过管道得到的程序可以是任何程序:如日志分析,压缩日志等.要实现将日志写到管道只需要将配置中日志文件部分的内容替换为|程序名即可,例如:compressed logsCustomLog |usrbingzip -c > common这样就可以实用apache自带的轮循工具:rotatelogs来对日志文件进行轮循.rotatelogs基本是用来按时间或按大小控制日志的.
CustomLog | 86400 common上面的示例中apache访问日志被发送给程序将日志写入并每隔86400秒(一天)对日志进行一次轮循.轮循以后的文件名为这里nnn是开始记录日志的时间.因此为了将日志按天对齐就需要在凌晨00:00启动服务,使得每天轮循得到的日志刚好是完整一天的日志,以提供给访问统计分析程序进行处理.如果是00:00开始生成新的日志,那么轮循得到的日志就是
4.3 使用cronolog实现日志轮循首先需要下载和安装cronolog,可以到下载最新版本的cronolog.下载完毕以后,解压安装即可,方法如下所示:
[root@mail root] tar xvfz [root@mail [root@mail cronologmake[root@mail cronologmake check[root@mail cronologmake install这就完成了cronolog的配置和安装、默认情况下cronolog是安装在usrlocalsbin下.
修改apache日志配置命令如下所示:
CustomLog | %waccess_log combined这里%w表示按照日期星期几在不同的目录下保存日志,这种方式会保存一周的日志.为了进行日志分析,需要每天将该日志文件拷贝(或移动,如果不希望保存一周的日志)到一个固定的位置以方便日志分析统计文件进行处理,实用crontab 0e,如下添加定时任务:
50binmv `date -v-1d %w`access_log 这样再使用日志统计分析程序的对文件进行处理.
对于使用负载均衡技术的大型站点、就存在多个服务器的访问日志的合并处理问题.对于这种情况,各个服务器定义或移动日志文件时就不能使用了,就应该带上服务器编号了,例如服务器IP地址等信息以区分.然后在各个服务器上运行网站镜像和备份服务rsyncd(参考文章用rsync实现网站镜像和备份然后将每个服务器每天的安装配置文件通过rsync下载到专门进行访问统计分析的服务器上进行合并.
合并多个服务器的日志文件,例如:log1 log2 log3并输出到log_all中的方法是:
-m: 使用merge优化算法-k 4表示根据时间进行排序-o表示将排序结果存放到指定的文件中.
五、日志统计分析程序webalizer的安装和配置webalizer是一个高效的,免费的web服务器日志分析程序.其分析结果是HTML文件格式,从而可以很方便的通过web服务器进行浏览.Internet上的很多站点都使用webalizer进行web服务器日志分析.Webalizer具有以下一些特性:
是用C写的程序,所以其具有很高的运行效率.在主频为200Mhz的机器上,webalizer每秒钟可以分析10000条记录,所以分析一个40M大小的日志文件只需要15秒.
webalizer支持标准的一般日志文件格式(Common Logfile Format);除此之外,也支持几种组合日志格式(Combined Logfile Format)的变种、从而可以统计客户情况以及客户操作系统类型.并且现在webalizer已经可以支持wu-ftpd xferlog日志格式以及squid日志文件格式了.
支持命令行配置以及配置文件.可以支持多种语言、也可以自己进行本地化工作.支持多种平台,比如UNIX,linux,NT, OS2 和MacOS等.
上图是webalizer生成的访问统计分析报表第一页的内容、这里包含每个月的平均访问量的表格和条形图统计分析情况.点击每个月分,可以得到这个月每天的详细统计信息.
5.1 安装在安装以前首先需要确保系统已经安装有gd库,可以使用:
[root@mail root] rpm -qa|grep 来确认系统已经安装有gd-deve和gd两个rpm包.安装webalizer有两种方式,一种是下载源代码来安装、一种是直接使用rpm包来安装.
即可实现安装.tar xvzf 在生成的目录中有个lang目录,该目录中保存了各种语言文件,但是只有繁体中文版本,可以自己转换成简体,或者自己重新翻译一下.然后进入生成的目录:cd webalizer
.configure make install编译成功后,会在usrlocalbin目录下安装一个webalizer可执行文件.
5.2 配置和运行对webalizer运行的控制可以通过配置文件或者在命令行指定参数的两种方式进行.而使用配置文件方式是比较简单和灵活的,适用于自动web服务器日志统计分析的应用环境.
webalizer的默认配置文件为当启动Webalizer时没有使用-f选项时,Webalizer就会寻找文件也可以使用-f来指定配置文件(当服务器有虚拟主机时,就需要配置多份不同的webalizer配置文件,不同的虚拟主机的webalizer使用不同的配置文件配置文件中需要修改的配置选项如下:LogFile 用来指示配置文件的路径信息,webalizer会将该日志文件作为输入进行统计分析;
OutputDir 用来指示主机名、统计报表中会引用该主机名.其他选项就无需修改、配置文件修改完毕以后,就需要在定时webalizer,每天生成当日的统计分析.
以root身份运行:crontab 0e 进入定时运行任务编辑状态、加入如下任务:
0f 0f 我们这里假设系统运行有两个虚拟主机、并分别定义了日志分析配置文件和这样我们定义在凌晨00:05对secfocus的日志进行统计分析;在凌晨00:15对tomorrowtel的日志进行统计分析.
六、保护日志统计分析报告不被未授权用户访问我们肯定不会希望自己网站访问统计信息随意被别人浏览,因此需要将usage目录保护起来,只允许合法用户访问.这里可以采用apache自带的基本的认证机制,配置以后再连接这个地址就会需要用户提供密码才能访问该页面:
1,条件
在配置文件中对目录应该设置为 All
2,需求
3,使用htpasswd建立用户文件此程序会询问用户admin的口令,你输入两次生效.
4,建立.htaccess文件用vi在目录下建立一个文件.htaccess,写入以下几行:AuthName Basicrequire user admin
5,测试
这时候通过浏览器访问就会弹出框请求输入用户名和口令,这时候输入admin就可以才可以访问访问日志统计分析报表.
doc文档的标签: 服务器 解决方案 日志 统计分析 完全
更多推荐标签: 私营经济   英语孙子兵法   港口论文   需求习题   合同续签申请   预防医学试题   汉语编码查询   知识与财富   创业项目选题   合同封面   生产建议   艺术特征   学校建筑论文   统计员责任书   茶叶育种学   贝卡尔特   除冰初雪机械   欺诈案例   岗位实训总结   中学家长评语   内勤制度   建政期货公司   物流网络建设   电子格式   计算机加密   详细需求分析   团结互助类   音像需求分析   管料分选装置   大学生抑郁症  
相关文档推荐
证券解决方案
红旗解决方案
电子商务案例分析与解决方案
宾馆解决方案
解决方案系列
解决方案
备份解决方案
解决方案
银行解决方案
贝尔阿尔卡特研发管理解决方案案例分析高级
解决方案
全套解决方案
备份解决方案
解决方案
惠普公司动能服务器解决方案合作协议
安全解决方案
解决方案
解决方案
解决方案
微软CRM外贸行业解决方案宁波金瑞案例分
推荐文档下载
学习要点
接地电阻测试仪
国中医药函200634号
福建交通精神
教学(管理)研究(项目
中央电大常务副校长于云秀关于总结性评估的
我与北外网院有约-2006年春报名入学指
灵岩山寺大雄宝殿建造的心路历程
高中生文言文学习兴趣调查报告
2汽车厂商\品牌数据
A公司新进人员发展方案的检讨与改善
关于花都撤市改区后有关地矿行政管理业务衔
授课时间
作者简介
TD4Z台式低速离心机使用说明书
中国简历网
商业街整体招商方案
区课件库建设实施条例
关于参加首届国际海运(中国)年会2004
华东师范大学招聘高级专业技术职务申报条件
 
文档下载提示:
·最新免费文档下载、毕业论文免费下载、Word文档下载、Excel表格下载、PDF电子书下载、PowerPoint提案下载
·所有文档均为网友上传,仅供学习参考,用作其它用途时请征得相关权益人许可.
·八文网只提供文档共享平台,不对文档内容的正确性及相关内容所引发的后果负责.
·如此文档"Web服务器日志统计分析完全解决方案"涉及您的权益,请附上网址来信告知web_8wen(#)126.com,本站将认真配合并改正。
Copyright ©2005-2008 八文网-  8Wen.com . All rights reserved.