使用awstats分析iis站点的日志

环境:win7 + iis7 + perl(ActivePerl-5.20.1.2000) + awstats 7.3

一、找到iis日志所在目录

 

 

建议全部都打勾

 

 

二、安装perl

AWStats是perl语言书写的程序,所以必选先安装ActivePerl程序。

1、下载http://www.activestate.com/activeperl/downloads

 

2、安装

 

记住perl的安装路径,后面会用到

 

 

 

 

三、配置awstats

1、下载awstats 

http://sourceforge.net/projects/awstats/,最新版为7.3

2、解压到文件夹

3、配置iis站点

站点配置到wwwroot文件夹

 

Iis站点 >> 功能视图 >> 处理程序映射,添加对pl文件后缀名的解析

 

在弹出的对话框,点击否

 

Internet信息服务(IIS)管理器 >> 点击左侧的计算机名  >> ISAPI 和 CGI限制  >>  设置允许

 

1、配置

找到wwwroot/cgi-bin/awstats.model.conf,把model改为需要统计站点的host,比如www.mysite.com,即awstats.www.mysite.com.conf,主要说明配置如下:

LogFile:日志文件的位置(ex%YY-24%MM-24%DD-24 为过去24小时格式)

LogFile="C:/WINDOWS/system32/LogFiles/W3SVC1/ex%YY-24%MM-24%DD-24.log"

 

LogType:日志类型(W-web log; M-mail log; F-ftp log)

LogType=W

 

LogFormat:日志格式(1-Apache or Lotus Notes日志格式; 2-IIS日志格式)

LogFormat="date time cs-method cs-uri-stem cs-username c-ip cs-version cs(User-Agent) cs(Referer) sc-status sc-bytes"

*注意:IIS6.0 不能用LogFormat=2的格式,具体设置参看上一行的例子

 

SiteDomain:统计站点(必须设置)

SiteDomain="www.mySite.com"

 

DefaultFile:网站的默认页面

DefaultFile="index.html"

 

Logo="corplogo.jpg"

LogoLink="http://www.mySite.com"

*logo必须是在icon/other目录下

 

StyleSheet:样式表所在位置

StyleSheet="/css/awstats_default.css"

 

HTMLHeadSection="<center><h1>这个是网页头</h1></center>"

HTMLEndSection="<center><h1>这个是网页尾</h1></center>"

*可以书写html代码

 

Include:包含另外一个conf文件

Include "awstats.public.conf"

说明:先继承另外一个conf文件的设置(比如一个公共的设置),该文件的设置覆盖所继承的文件的设置。主要方便多个站点的统计。在公共设置中设置好统计的选项,其他的配置文件只需要修改日志位置(LogFile)、统计站点的名称(SiteDomain)就可以了。

 

参考“http://blog.chinaunix.net/uid-15811445-id-150005.html

 

2、使用命令行开始统计

> cd D:/awstats-7.3/wwwroot/cgi-bin/

> awstats.pl -config=awstats.www.mysite.com.conf -update

  

3、测试效果  localhost:port/cgi-bin/awstats.pl?config=www.mysite.com

 

 

4、批量分析历史文件

制作pl1文件

Function Awstats

{

param ($Dir = $(Read-host "请输入iis日志文件所在目录")),

($Website = $(Read-Host "站点名(配置名)"))

$TargetFolder = $Dir

if (Test-Path $TargetFolder)

{

Write-host "DIREKTORIJ JE :" $TargetFolder -foregroundcolor "Red"

$Files = get-childitem $Dir\*.* -include *.log

$List = $Files | where {$_.extension -eq ".log"}

#write-host $List

foreach ($File in $Files)

{

write-host "Updating statistics" -foregroundcolor "Red";&'C:\perl\bin\perl.exe' awstats.pl config=$Website logfile=$File}

}

Awstats

完成后,把pl文件存放到awstat\wwwroot\cgi-bin目录下,记得在powershell中运行 >> .pl

 

 

问题1:

awstats-6.5/wwwroot/cgi-bin/awstats.pl -update -config=ipcn.org

Update for config "/etc/awstats/awstats.ipcn.org.conf"

With data in log file "/opt/squid/logs/access.log.20060507.ip2"...

Phase 1 : First bypass old records, searching new record...

Direct access to last remembered record has fallen on another record.

So searching new records from beginning of log file...

Jumped lines in file: 0

Parsed lines in file: 92378

 Found 92378 dropped records,

 Found 0 corrupted records,

 Found 0 old records,

 Found 0 new qualified records.

始终跳过,在官网查找了知道,在命令后加入“-showdropped -showcorrupted”,看到

 

我设置的网站域名和实际统计站点的域名不一样,我勒个去,所以这里强烈建议大家配置站点名和配置文件名使用实际域名。

官网解释:

Dropped records are records discarded because they were not "user HTTP requests" or were requests matching AWStats filters (See the SkipHostsSkipUserAgentsSkipFilesOnlyHostsOnlyUserAgents and OnlyFiles parameters). If you want to see which lines were dropped, you can add the -showdropped option on the command line. Corrupted records are records that do not match the log format defined by the "LogFormat" parameter in the AWStats configuration file. All web servers will typically have a few corrupted records (<5%) even when everything works correctly. This can result for several reasons: 1) Web server internal bugs, 2) bad requests made by buggy browsers, 3) a dirty web server shutdown, such as unplugging the server...   If all of your lines are corrupted and the LogFormat parameter in AWStats configuration file is correct, then there may be a setup problem with your web server log format. Don't forget that your LogFormat parameter in the AWStats configuration file MUST match the log file format you analyze.  If you want to see which lines are corrupted, you can add the -showcorrupted option on the command line. Old records are simply records that were already processed by a previous update session. Although it is not necessary to purge your log file after each update process, it is highly recommended that you do so as often as possible. New records are records in your log file that were successfully used to build/update the statistics database. Note: A log analysis process might be slow (one second for each 4500 lines of your logfile with an Athlon 1Ghz, plus DNS resolution time for each different IP address in your logfile if DNSLookup is set to 1 and not already done in your log file).  See the Benchmarks page for more detailed information.

http://awstats.sourceforge.net/docs/awstats_setup.html

 

问题2Flush history file on disk (unique url reach flush limit of 5000)

awstats.pl文件将每隔发现5千个新链接改为5万个;

> $LIMITFLUSH=5000; # Nb of records in data arrays after how we need to flush data on disk

 

 

 

附1:http://www.internetofficer.com/awstats/log-format/

posted @ 2016-03-14 10:11  远方V3  阅读(989)  评论(0编辑  收藏  举报