To install AWStats on Windows, first download the current version from awstats.org. If you don’t have Perl on your machine, get Strawberry Perl for Windows, as ActivePerl requires an annual Business License for production use.
On the server, create a web directory and a data directory for awstats. Follow the steps in the AWStats Setup Guide.
To access the log files of a remote IIS, I created a read-only share on c:\inetpub\LogFiles, and had to run
icacls c:\inetpub\LogFiles /reset /t
to allow non-admin access to the IIS log files.
To get Strawberry Perl to run on IIS, follow this Installation Guide:
- In the Web Server role, you need to have the CGI feature installed.
- In IIS Administrator, create a web site or application hosting AWStats. In the site or application, you need to add a Script Map for *.pl executing
C:\path\to\perl.exe "%s" %s
Things should be running by now if you browse to
http://myHost/awstats/cgi-bin/awstats.pl?config=mySite
I noticed that the stats only included data from the installation date (IIS logs are configured to daily log files).
Answers on the internetz suggest to merge old log files using logresolvemerg.pl, a script that ships with awstats.
C:\awstats\tools>perl logresolvemerge.pl [all my log files] > merged.log
Replace the LogFile entry in your config file(s) to point to the merged log file
LogFile="C:\awstats-data\merged.log" #LogFile="\\path\to\LogFiles\W3SVC1\u_ex%YY-1%MM-1%DD-1.log"
and run
perl awstats.pl -config=mySite
again after deleting the previously generated data files.
Unfortunately, the merged log only resulted in “dropped” and “corrupted” records:
Phase 1 : First bypass old records, searching new record... Searching new records from beginning of log file... Jumped lines in file: 0 Parsed lines in file: 30376 Found 16100 dropped records, Found 0 comments, Found 0 blank records, Found 14276 corrupted records, Found 0 old records, Found 0 new qualified records.
This may be caused by a number of reasons, but it turned out that the merged log requires a specific LogFormat:
LogFormat="%time2 %other %method %url %query %other %logname %host %ua %code %other %other %other"
Finally, I created a batch file awstats.cmd to update all my statistics
net use z: \\host\LogFiles awstats /user:awstats d: cd D:\wwwroot\awstats\wwwroot\cgi-bin perl awstats.pl -update -config=mySite1 perl awstats.pl -update -config=mySite2 ... net use z: /delete
and created a scheduled task to automatically execute the script every day.
Pingback: Playing around with AWStats and Sitecore – Walking on clouds