补天网 - 网络管理技术精华   
分页显示
返回《网络管理技术精华》 快速返回
作 者  主题:使用AWStats分析IIS6日志记录【资料搜集】
.abu.


=凤舞九天=
头衔:山贼
职务:-=站长=-
积分:6339
贴数:5929
 日期:2007-3-9 17:15:41

  Web服务器日志是获取有关Web网站和应用程序信息的一个强大的资源。当启用日志功能的时候,Web服务器记录有关每一个请求的信息。分析这些信息能够揭示哪些资源最受欢迎、人们正在使用什么浏览器、一个网站消耗的带宽是多少以及在指定的时间范围内请求的趋势等信息。

  因为日志信息如此重要,许多服务器日志分析商业软件包都创建了有用的和外表非常好看的报告。遗憾的是,这些软件大多数的价格都非常昂贵。此外,某些记录分析器软件对服务器本身的性能还有影响。例如,WebTrends(最流行的商业软件包之一)最新版本需要占用大量的内存和处理器的时间。如果你没有财力专门用一台服务器进行Web记录分析和创建相关的报告,你就需要一个耗费资源没有那样可怕的廉价的和速度快的解决方案。

  幸运的是,这样的解决方案已经有了,它的名称是AWStats。

  AWStats

  AWStats是一种免费的开源软件记录分析器。它能够分析范围很广的各种日志记录和创建良好的报告。虽然这些报告不是昂贵的商业软件生成的那种功能齐全的、互动的和具有特殊效果的报告,但是,它的报告非常实用,而且所有重要的数据都以不错的形式的表现了出来。另外AWStats软件的运行速度很快,而且消耗的资源不多。事实上,AWStats软件在大多数时间里并不消耗任何资源。

  AWStats是一种拥有简单的结构的Perl程序。它需要一个能够执行Perl脚本的解释程序并且只在服务器中占据很小的空间。Perl的源码并不是很易读,因此,要改变软件的行为并不很容易。但是,你不必修改这个程序就可以满足大多数普通的需求。

  AWStats以两种模式进行工作。第一种模式是互动或者“在线”模式。当使用在线模式时,AWStats根据请求更新它的报告。第二种模式是“离线”模式。在这种模式下,AWStats分析数据并且创建一个静态的报告。这种静态报告是能够通过任何标准的Web服务器发表的HTML网页。

  本文仅讨论如何安装和以离线模式使用AWStats软件。离线模式是首选的使用模式,因为它能够把安全的风险和资源的使用降低到最小的限度,从而不会影响Web服务器的性能。例如,你可以设定周期性的在服务器最空闲的时间段自动自成所需报告。

  本文还将讨论如何安装AWStats、分析记录和根据IIS 6记录发表报告。

  安装AWStats

  要在Windows下安装AWStats,先下载一个Perl解释程序(如果你没有的话)和AWStats软件(脚本)。我建议使用ActivePerl 5.8,你可以从http://www.activestate.com/网站免费下载。ActivePerl 5.8的安装要使用一个标准的MSI安装程序。在安装过程中,你可以选择安装一个ISAPI Perl扩展。但是,我建议你不要安装它,因为你在离线模式下运行AWStats软件的时候并不需要它。如果你确实要以在线模式运行AWStats软件的话,你就可以安装ISAPI Perl扩展。

  下一步,下载AWStats软件。在本文发表的时候,这个软件的最近版本是6.4。

  下载的软件是一个.zip文件,你在需要的时候可以解压缩这个文件。AWStats .zip文件包含三个文件夹:docs(文件)、tools(工具)和wwwroot。我建议你删除docs文件夹。你可以在网络上找到文件,或者你可以把文件拷贝到工作站中。但是,你实际用的服务器不需要这些文件。下一步,创建一个新的文件夹,把运行AWStats软件需要的文件拷贝到里面。这样既可以减少安装的复杂性同时可以创建一个自己的AWStats 发布版。例如,你可以创建一个“E:myAppsawstats-6.4bin”文件夹。下面我将把这个文件夹简称为bin文件夹。

  其它的步骤如下:

  1.把解压缩AWStats软件时创建的wwwwroot与cgi-bin文件夹中的css、icon、lang、lib和plugin等文件夹拷贝到bin文件夹中。

  2.从同一个文件夹中拷贝awstats.pl文件。

  3.下一步,从tool文件夹中拷贝awstats_buildstaticpages.pl文件。

  4.最后,创建bindirdata文件夹,你将使用这个文件夹管理AWStats软件的数据库。

  到此结束。你在离线模式下运行AWStats软件仅需要从你下载的文件拷贝上述文件和文件夹,不需要其它的文件和文件夹。

  你还将使用bin文件夹放置本文后面介绍的配置文件自动运行这个应用程序的批处理脚本文件。

  AWStats软件的结构

  你可以通过创建或者(更常见的)修改配置文件的方式管理AWStats软件。配置文件是一种以.conf为扩展名的文件,包含了有关一个Web网站记录的信息。你必须要为你想进行分析的每一个Web站点建立一个配置文件。

  你应该使用“awstats.CONFIGNAME.conf”这样的命名方式为你的配置文件命名。在这里,“CONFIGNAME”是一个变量,是你要创建的那个配置文件的名字。你以后可以使用那个变量的名称修改具体的配置文件。例如,当你下达指令要求AWStats软件使用一个“CONFIGNAME”配置时,它将在bin文件夹中搜索一个名为“awstats.CONFIGNAME.conf”的文件。

  配置文件可以“包含/include”在其它文件中确定的选项。因此,最好创建一个基本的通用的配置文件。这个文件将包含你要应用于所有的报告的标准选项,然后为每一个Web站点指定一个具体的文件。这个具体站点的配置文件包含如下信息:要分析的记录在什么地方和如何为这个站点处理分析记录等。把标准的选项加入到单独的通用文件中,然后再把它在特定的站点配置文件中包括起来,这样可以简化在虚拟主机环境下需要对多许多Web站点日志纪录进行分析的情况。

  AWStats软件提供了一个名为“awstats.model.conf”的配置模板。你可以使用这个模板创建新的文件(你在安装软件的wwwroot/cgi-bin文件夹中能够找到这个模板)。

  把全部.conf文件放到你早些时候创建的bin文件夹中。

  IIS的日志记录

  IIS 6能够将日志数据存储在记录文件或者数据库表中。它记录的具体字段是能够被设置的。要同AWStats软件一起使用IIS6,你需要确保打开IIS6的日志功能,让它把数据存储到日志文件中。你需要确定搜集哪些数据字段和如何写入这些数据。你可以用IIS MMC管理单元的管理应用程序中控制这些选择,编辑一个具体的Web站点的属性或者全部Web站点的属性。 你可以在控制面板中用鼠标双击“管理工具”项目,然后再点击“互联网信息服务”来启动IIS MMC程序。

  启动IIS MMC程序之后的操作:

  •通过复选“启用记录”选项启用扩展的记录功能。

  •接受默认的“W3C扩展的记录文件格式”选项。

  •下一步,点击属性按钮并且编辑这个记录选项。

  •设置一个记录时间安排(我建议每月一次,因为时间安排能够让这个软件很容易通过AWStats配置进行管理)。复选“使用本地时间进行文件命名和Rollover”选项。然而,需要指出的是,这样做不能改变IIS在记录中记录时间值的方式,只能改变它管理文件的方式。

  •选择一个记录文件夹(我建议把这个记录转移到默认的文件夹以外的文件夹中,这样,对于你所有的Web站点你都会有一个简单的存储路径)。

  •设置IIS要记录的字段。要进行这种设置,先选择高级标签并复选下面几项:日期、时间、客户IP地址、用户名、方式、URI stem、URI查询、协议状态、发送字节、协议版本、用户代理和参考数据。检查你的选项,因为AWStats记录分析依赖于拥有正确的格式。



  最后,如果的Web站点已经存在活跃的日志文件,删除(或者重新命名)这个文件。这将迫使IIS创建新的文件和开始使用新的格式填写这个文件。如果你因为IIS正在使用这个文件而无法访问这个文件,你可以在命令提示符下输入iisreset.exe命令重新启动IIS程序。

 配置通用设置选项

  最好是使用写字板编辑AWStats配置文件(不是记事本,而是另一种Windows文本编辑器),因为提供的模板是用Unix文件格式编写的,每一行结尾使用了一个单个的LF(换行)字符,而不是像Windows那样同时使用一对儿CR/LF(回车/换行)字符,因此,在写字板中不容易管理。一个典型的Web站点的配置文件看起来应该是下面这个样子(注意,我删除了所有的AWStats末版的注释)。

  Include "awstats.common.conf"
  LogFile="E:LogsWebW3SVC529796009ex%YY-0%MM-0.log"
  SiteDomain="www.website.com"
  HostAliases=www.website.com



  这些文件告诉AWStats在一个指定的目录中查找IIS记录文件。在默认设置下,IIS使用exYYMM.log模式主动创建文件名。例如,对于2005年11月,IIS会使用一个名为“ex0511.log”的文件。你可以查看AWStats说明文件,检查支持的模式。

  上面讨论的“通用配置”文件是被包含的“awstats.common.conf”的文件。你可以利用这个文件管理全部共享的配置选项。你可以把这个文件与更多的具体配置文件合并在一起。你还可以把这个文件做成AWStats安装程序提供的“awstats.model.conf”模板的副本。你可以保留这个模板中确定的全部选项,删除全部“include”指令,并且覆盖下列的条目:

  LogFormat="date time cs-method cs-uri-stem cs-uri-query
   cs-username c-ip cs-version cs(User-Agent) cs(Referer)
   sc-status sc-bytes"
  DirData="E:myAppsawstats-6.4bindirdata"
  DirIcons="icon"
  Logo="logo_huge.gif"
  LogoLink="http://www.huge.it"
  LoadPlugin="timezone +1"


  在上面的代码中,LogFormat选项是最重要的选择之一。Logformat=2是IIS记录的默认选项,在IIS 6上面不能运行,因为AWStats软件不能识别这个选项记录数据的顺序。因此,你必须像上面那样明确地说明正确的参数。我提供的方式在IIS 6上面运行的很好,因此,你可以简单地剪切和粘贴就可以了。

  DirData是AWStats软件的工作文件夹,你可以在你的系统中确定这个文件夹。AWStats将把其工作文件(关于统计的数据库)存储在这个文件夹中。虽然你可以根据自己的喜好改变这个文件夹,但是,这个例子使用了你在安装期间创建的bindirData文件夹。

  DirIcons是一个包含创建报告使用的全部图形文件的文件夹。

  Logo定义要在报告中发表的标识(Logo)的文件名,而LogoLink确定这个图像文件的URL。在这种情况下,你可以留下标准的配置值进行试验。但是,你应该知道,你可以使用定制的标识创建报告。

  LoadPlugin时区选项告诉AWStats软件“纠正”记录文件中的时间值。IIS使用格林威治标准时间,因此,如果你要你的报告以当地时区为准,你必须要纠正记录中的时间值。例如,“时区+8”是对IIS记录的时间值增加八个小时(+1是中国的时区,所以,采用这个设置,我能够根据当地时间的结果阅读报告)。当AWStats使用这种设置管理时区调整的时候,它不纠正夏令时差,因此在需要夏令时调整时,你必须手工更新这个值。

.abu.


=凤舞九天=
头衔:山贼
职务:-=站长=-
积分:6339
贴数:5929
日期: 2007-3-9 17:17:28  

  运行AWStats

  运行AWStats非常简单:你只需要运行AWStats.pl和awstats_buildstaticpages.pl。不过,你需要提供一些参数。主要参数是-config。-config确定这个程序用来分析数据和创建报告时所使用的配置文件。

  你最终会设置让报告生成周期化和自动化。但是,一开始时直接从命令行开始运行AWStats是很有效的,这样既可以看到这个软件是如何工作的又可以测试你的设置文件是否正确。首先,在前几节介绍过的你的bin文件夹中创建一个awstats.www.companysite.com.conf文件。你需要有一个IIS记录文件进行分析,因此,你可以把你的.conf文件指向你使用IIS MMC指定的记录文件。

  现在选择“开始”、“运行”并且输入“cmd.exe /f:on”指令。在打开的命令窗口中,把目录改变到包含所有的AWStats资源的bin文件夹。

  要运行你的第一次分析,输入如下指令:awstats.pl -config=www.companysite.com

  这里www.companysite.com换成新分析的域名,也是你的awstats.youdomian.conf配置文件的youdomian部分。这个命令让AWStats打开你的记录文件,分析这个文件并且显示分析的结果,然后就结束了。如果运行一切正常,你将在你的bindirdata文件夹中发现一个新的文件。实际的文件名称根据配置文件的名称、分析的月份等情况而定。如果发生了什么问题(你可以从结果中检查这个问题),你要确认Perl语言解析程序已安装并且运行正常、你的.conf文件配置正确、你的IIS记录文件格式正确并且处在AWStats软件要找到的位置。如果你发现AWStats没有解开几行编码(这个结果将显示这个问题),不要慌张。如果大多数行的代码都解开了,那就很好。否则,你的IIS记录格式可能就存在问题。

  再次运行同样的命令。AWStats现在的运行速度非常快,跳过以前分析过的全部记录。那是因为它是在老数据的基础上运行的,仅检查和分析IIS记录中的新的记录。

  在分析了记录数据之后,你可以让AWStats创建一个报告。创建一个包含这个报告的文件夹。在这个例子中,我创建了E:Reports,并且把这个binicon文件夹拷贝到这个目录中。还要在这个文件夹中创建一个“www.companysite.com”目录以便存储这个特定的配置/Web站点的全报告文件(你可以为你管理的每一个配置/Web站点创建一个文件夹。现在,从你以前使用过的同一个命令窗口运行这个命令:

  awstats_buildstaticpages.pl -update -config=www.companysite.com --

  dir=E:Reportswww.companysite.com -diricons=../icon

  确定改变你创建的报告路径的那个路径。上述命令让AWStats在指定的文件夹中创建一个HTML格式的报告。你可以使用浏览器打开这个HTML文件来查看分析的数据。

  正如你能够看到的那样,在设置了正确的文件夹和配置之后,分析记录数据和创建报告仅需要运行两个脚本。事实上,你只需要运行buildstaticpages.pl文件,因为awstats.pl是在后台运行的。要记住,你手工启动这个程序只是为了检查输出和验证环境状况良好。

  因此,制定生成报告的时间安排是很简单的。然而,你头脑中仍然要有安全观念。这个话题我稍后再说。

  运行AWStats的一些窍门

  AWStats功能强大使用方便。但是,AWStats在Windows平台上运行有一些问题。为了节省你的时间,我制作了一个窍门列表,能够让你在运行AWStats软件的时候少出问题。

  •AWStats创建一个它分析的每一个Web站点的数据缓存(为创建的每一个.conf文件建立一个数据缓存)。你每一次运行AWStats的时候,这个软件都检查这个缓存,看它是否包含以前分析过的数据。如果有这些数据的话,它就利用这些数据以避免分析整个记录文件。AWStats将紧接着上次执行时读过的最后一行开始阅读记录。因此,如果你需要清除所有的数据并且分析你的记录,你必须删除缓存文件。你能够在你安装这个软件时创建的dirdata文件夹中发现这些数据。

  •AWStats以严格的队列方式分析数据。例如,如果你已经分析了10月份的记录数据,你以后就不能分析9月份的数据。如果你必须要不按照排列顺序工作,首先要删除dirdata文件夹中的缓存文件,然后在分析10月份的数据之前先分析9月份的数据。

  •AWStats将跳过格式不正确的记录文件。如果发生这种事情,停止运行IIS 6,重新命名(或者删除)当前的记录文件,确认记录文件的选项时正确的,然后重新启动浏览器。IIS 6然后就以正确的格式创建一个新的记录文件。你可以使用AWStats对这个文件进行分析。

  •AWStats能够对它在记录文件中发现的IP地址进行DNS查询。这是一项非常好的功能,因为它能够让你了解有关这个请求来源的更多的信息。但是,这也需要很多时间,因为AWStats必须查询每一个IP地址的DNS服务器。因此,尽管这个功能有好处,但是,通常最好是不启用这个功能。

  •根据默认设置,AWStats的重点是每个月做一次报告,分析和创建以一个月为重点的报告(实际上,按照默认的设置,AWStats是报告当前这个月的状况)。如果你需要不同月份的报告,你可以指定一个具体的月份或者数据的范围。

  制定运行AWStats的时间计划

  尽管你在以离线模式使用AWStats软件,你可能还需要自动地创建更新的报告。这样做的最简单的方法是使用Windows计划任务工具软件。首先,在Web服务器(或者主动目录)上创建一个没有扩展权限的新的标准用户账号(你可以在用户组中建立这个账号)。为这个账号分配一个强大的口令是一个好主意。你将使用这个账号建立一个定时的任务,而不做其它用途。

  下一步,创建一个批处理文件,对你需要创建报告的每一个Web站点启动数据分析。下面是在服务器上分析三个不同的Web站点的一个典型的批处理文件:

  start /low /wait awstats_buildstaticpages.pl -update
  -config=www. companysite.com
  -dir=E:\Logs\Reports\www.companysite.com -diricons=../icon
  start /low /wait awstats_buildstaticpages.pl -update
  -config=www.companysite2.com
  -dir=E:\Logs\Reports\www.companysite2.com -diricons=../icon
  start /low /wait awstats_buildstaticpages.pl -update
  -config=www.huge.it -dir=E:\Logs\Reports\www.huge.it
  -diricons=../icon

  把这个文件存储为以.bat为扩展名的文件。请注意,批处理文件使用start.exe文件,而不是直接运行Perl脚本,因为Perl是一种解释性的语言,当你运行Perl程序的时候,你不能定义一个任务的优先等级或者使用CPU的最大值。用start.exe运行这些命令,越过以低优先等级运行Perl脚本的“/low”参数,让Windows进程调度(Process Scheduler)程序为标准的程序分配更多的CPU时间,并且以对整个系统影响很小的情况下运行这个记录分析器。“/wait ”选项可以让start.exe文件在执行下一个指令之前等待程序执行完毕。如果你省略了“/wait”选项,这个批处理文件将同时启动所有定义的AWStats进程(在这个例子中是三项任务)。这样将消耗太多的服务器资源。

  安全和NTFS设置

  当你安排(或者运行)一个程序的时候,最好是尽可能地限制其权限。要创建一份报告,你可以为你为了运行计划的任务而创建的用户账号分配NTFS(新技术文件系统)权限。你必须要分配如下权限:

  •执行,执行在c:\program files\perl目录下的程序

  •仅列出你存储AWStats文件的根文件夹(磁盘的根包含\bin文件夹)中的文件夹内容(或者限制宽松一些的阅读选项)。

  •执行在\bin文件夹中的文件

  •修改\bin\dirdata文件夹中的文件

  •读取包含IIS记录的文件夹

  •修改你让AWStats创建报告文件的文件夹

  仅设置这些权限禁止文件和文件夹访问运行AWStats软件的用户账号。对于每一台服务器和每一个应用程序来说这是一个通用的“最佳做法”。

  除了上面提到的之外,AWStats还有许多额外的选项和功能。你可以找到完整的在线帮助文件。因此,你自己能够很容易找到和测试额外的功能。这个帮助文件是以Linux为中心的。但是,当你像本文介绍的那样在Windows平台上运行了AWStats软件之后,你将发现你可以参考那个帮助文件,没有什么问题。

.abu.


=凤舞九天=
头衔:山贼
职务:-=站长=-
积分:6339
贴数:5929
日期: 2007-3-9 17:23:50  
点击下载:

我还找了一个英文带图的pdf,发附件了

主要是看的老外的东西,中文版的小错误不断。
windows平台上跑程序,特别需要注意的就是权限问题。
返回《网络管理技术精华》 快速返回

IE不断爆出漏洞,使用FireFox浏览器,会更安全一些:

如果您想发帖,请先注册或登录!


Copyright © 2006 Patching.net All rights reserved.