服务器 频道

使用AWStats分析IIS6日志记录(上)

  【IT168 服务器学院】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使用这种设置管理时区调整的时候,它不纠正夏令时差,因此在需要夏令时调整时,你必须手工更新这个值。

0
相关文章