Web服务器日志统计分析完全解决方案.doc
《Web服务器日志统计分析完全解决方案.doc》由会员分享,可在线阅读,更多相关《Web服务器日志统计分析完全解决方案.doc(6页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 本文由黑冥雾海贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 Web 服务器日志统计分析完全解决方案 摘要 对于所有的 ICP 来说,除了保证网站稳定正常运行以外,一个重要的问题就是网站访问量的统计和分 析报表,这对于了解和监控网站的运行状态,对提高各个网站的服务能力和服务水平是必不可少的。 通过对 Web 服务器的日志文件进行分析和统计, 能够有效掌握系统运行情况以及网站内容的受访问情 况、加强对整个网站及其内容的维护与管理。本文对 Web 服务器日志分析的原理和技术进行讨论。 请注意本文已刊载在开放系统世界2003 年第二期,该文章版权属于该杂
2、志所有,请勿随意转载, 请注意 转载请保留该声明 关键字: 关键字:web 服务器 日志 统计分析 crontab cronolog apache 摘要: 摘要:对于所有的 ICP 来说,除了保证网站稳定正常运行以外,一个重要的问题就是网站访问量的统 计和分析报表,这对于了解和监控网站的运行状态,对提高各个网站的服务能力和服务水平是必不可 少的。通过对 Web 服务器的日志文件进行分析和统计,能够有效掌握系统运行情况以及网站内容的 受访问情况、加强对整个网站及其内容的维护与管理。本文对 Web 服务器日志分析的原理和技术进 行讨论。 文章相关软件: webalizer cronolog Apa
3、che http:/www.cronolog.org/ http:/www.apache.org/ 一、 前言 随着 Internet 上 Web 服务的发展,几乎各个政府部门、公司、大专院校、科研院所等都在构建或正在 建设自己的网站。而与此同时,在构建网站建设中各个单位都会遇到各种各样的问题,那么对 web 服 务器的运行和访问情况进行详细和周全的分析对于了解网站运行情况,发现网站存在的不足,促进网 站的更好发展重要性是不言而喻的。 管理 Web 网站不只是监视 Web 的速度和 Web 的内容传送,它要求不仅仅关注服务器每天的吞吐量, 还要了解对这些 Web 网站的外来访问,了解网站各页面
4、的访问情况,根据各页面的点击频率来改善 网页的内容和质量、提高内容的可读性,跟踪包含有商业交易的步骤以及管理 Web 网站“幕后”的 数据等。 为了更好地提供 WWW 服务,监控 WEB 服务器的运行情况、了解网站内容的详细访问状况就越来越 显得重要和迫切了。而这些要求都可以通过对 web 服务器的日志文件的统计和分析来做到。 二、WEB 日志分析的原理 网站服务器日志记录了 web 服务器接收处理请求以及运行时错误等各种原始信息。 通过对日志进行统 计、分析、综合,就能有效地掌握服务器的运行状况,发现和排除错误原因、了解客户访问分布等, 更好的加强系统的维护和管理。 在 WWW 服务模型是非
5、常简单的(见图 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
6、/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */* Referer: Accept-Language: zh-cn Accept-Encoding: gzip, deflate User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0) Host: Connection: Keep-Alive 可以看到,在客户机的请求里包含了
7、很多有用的信息,例如:客户端类型等等。而 web 服务器就会将 请求的 web 页内容发送返回给客户机。 目前最常用的 web 服务器有 Apache、Netscape enterprise server、MS IIS 等。而目前互联网上最常用的 web 服务器就是 apache,因此我们这里的讨论都以 Linuxapache 环境讨论,其他的应用环境类似。 对于 Apache 来说, 支持多种日志文件格式, 最常见的是 common 和 combined 两种模式, 其中 combined 方式比 common 方式的日志的信息要多 Referer(该请求来自于哪里,例如来自于 yahoo
8、的搜索引擎) 和 User-agent(用户客户端类型,如 mozilla 或 IE)。我们这里讨论 combined 类型。下面是 common 类型的日志示例: 218.242.102.121 - - 06/Dec/2002:00:00:00 +0000 GET /2/face/shnew/ad/vialogo.gif HTTP/1.1 304 0 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
9、 HTTP/1.1 200 178 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/vialogo.gif HTTP/1.1 304 0 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
10、304 0 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 Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0) 从上面的日志文件可以看出日志记录会记录客户端的 IP 地址、访问发生的时间、访问请求的页面、 web 服务器对于该请求返回的状态信息、返回给客户端的内容的大小(以字节为单位)、该请求的引 用地
11、址、客户浏览器类型等信息。 三、apache 日志的配置和管理 本文中我们假设我们的 apache 运行有两个虚拟主机: 和 。我 们需要对这两个虚拟主机分别进行访问日志分析和统计。 Apache 配置文件中,我们需要关心的和日志相关的配置有两个: CustomLog /www/logs/access_log common ErrorLog /www/logs/error_log CustomLog 用来指示 apache 的访问日志的存放位置 (这里保存在/www/logs/access_log 中) 和格式 (这 里为 common);ErrorLog 用来指示 apache 错误信息日志
12、的存放位置。 对于不配置虚拟主机的服务器来说, 只需要直接在 httpd.conf 中查找 CustomLOg 的配置进行修改即可; 而对于具有多个虚拟服务器的 web 服务器来说,需要分离各个虚拟服务器的访问日志,以便对各个虚 拟服务器进行访问统计和分析。因此这就需要在虚拟服务器配置中进行独立的日志配置,示例: NameVirtualHost 75.8.18.19 ServerName ServerAdmin secfocus DocumentRoot /www/htdocs/secfocus/ CustomLog /www/log/secfocus combined Alias /usag
13、e/ /www/log/secfocus/usage/ ServerName ServerAdmin tomorrowtel DocumentRoot /www/htdocs/ tomorrowtel CustomLog /www/log/tomorrowtel combined Alias /usage/ /www/log/tomorrowtel/usage/ 这里需要注意的是每个虚拟主机的定义都有一个 CustomLog 命令, 用来指定该虚拟主机访问日志的存 放文件;而 Alias 命令用来让日志分析生成的报表能通过 过上面的配置就完成了日志文件的保存。 但是下来遇到的一个问题就是日志文
14、件的轮循,因为日志是一直在增大的,如果不进行处理那么日志 文件会越来越大,会影响 web 服务器运行效率;速率,还可能过大耗尽服务器硬盘空间,导致服务器 无法正常运行,另外如果单个日志文件大于操作系统单文件尺寸的的限制,从而更进一步影响 web 服 务的运行。而且日志文件如果不进行轮循也不变于日志统计分析程序的运行,因为日志统计分析都是 以天为单位进行统计分析的,跨越很长时间日志会使得日志统计分析程序运行特别慢。因此这里就需 要对 web 服务器日志文件每天进行轮循。 四、web 服务器日志轮循 web 服务器日志轮循比较好的方式有三种:第一种方法是利用 Linux 系统自身的日志文件轮循机制
15、: logrotate;第二种方法是利用 apache 自带的日志轮循程序 rotatelogs;第三种是使用在 apache 的 FAQ 中推荐发展已经比较成熟的一个日志轮循工具 cronolog。 对于大型的 WEB 服务来说,其往往使用实用负载均衡技术提高 web 站点服务能力,这样后台有多个 服务器提供 WEB 服务,这大大方便了服务的分布规划和扩展性,但多个服务器的分布就需要对日志 进行合并统一进行统计分析。因此为了保证统计的精确性就需要严格按照每天的时段来自动生成日志 文件。 41 logrotate 实现日志轮循 首先我们讨论采用 Linux 系统自身的日志文件轮循机制:logr
16、otate 的方法。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.conf 中可以看到内容如
17、下: # see man logrotate for details # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # create new (empty) log files after rotating old ones create # uncomment this if you want your log files compressed #compress # RPM packages drop log rotation information into this director
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Web 服务器 日志 统计分析 完全 解决方案
限制150内