AWStats is one of the useful web analytic reporting tool which high accuracy as it directly parses and analyzes server log files. This tutorial will install AWStats to monitor traffics to Apache web server running on Windows operating system, specifically Windows XP.

Prerequisite

As AWStats is Perl based, a Perl Interpreter need to be installed first to take advantage of AWStats. For instruction on how to install Perl in Windows machine, check out this article.

Download AWStats

Download latest stable release of AWStats from http://www.awstats.org/. Choose the setup package that ended with .exe extension.

Install AWStats

Launch the AWStats setup file by double clicking on the executable that just has been downloaded.

Install AWStats
Click “Next” to continue.

Install AWStats
Click “I Agree” to continue.

Install AWStats
You may want to change the installation folder here. Then click on “Install” to start the installation.

Setup and Configuration for Apache Web Server

AWStats installer will automatically launches the awstats_configure.pl script to do several setup actions. If you’re not using the Windows installer, you can find the script in the AWStats tools directory. To execute it use (if location of perl.exe is within your path environment):

perl awstats_configure.pl

This is what the script does/asks (you can do all these steps manually instead of running awstats_configure.pl (automatically launch by Windows installer) if you prefer):

A) awstats_configure.pl tries to determine your current log format from your Apache web server configuration file httpd.conf (it asks for the path if not found). If you use a common log, awstats_configure.pl will suggest changing it to the NCSA combined/XLF/ELF format (you can use your own custom log format but this predefined log format is often the best choice and makes setup easier).

If you answer yes, awstats_configure.pl will modify your httpd.conf, changing the following directive from:

CustomLog /yourlogpath/yourlogfile common

to

CustomLog /yourlogpath/yourlogfile combined

See the Apache manual for more information on this directive (possibly installed on your server as www.mysite.com/manual).

B) awstats_configure.pl will then add, if not already present, the following directives to your Apache configuration file (note that the “/usr/local/awstats/wwwroot” path might differ according to your distribution or OS:

#
# Directives to add to your Apache conf file to allow use of AWStats as a CGI.
# Note that path “/usr/local/awstats/” must reflect your AWStats Installation path.
#
Alias /awstatsclasses “/usr/local/awstats/wwwroot/classes/”
Alias /awstatscss “/usr/local/awstats/wwwroot/css/”
Alias /awstatsicons “/usr/local/awstats/wwwroot/icon/”
ScriptAlias /awstats/ “/usr/local/awstats/wwwroot/cgi-bin/”

#
# This is to permit URL access to scripts/files in AWStats directory.
#

Options None
AllowOverride None
Order allow,deny
Allow from all

C) if changes were made as indicated in parts A and B, awstats_configure.pl restarts Apache to apply the changes. To be sure the log format change is effective, go to your homepage. This is an example of the type of records you should see inserted in your new log file after Apache was restarted:

62.161.78.75 – – [dd/mmm/yyyy:hh:mm:ss +0000] “GET / HTTP/1.1” 200 1234 “http://www.from.com/from.html” “Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)”

D) awstats_configure.pl will ask you for a name for the configuration profile file. Enter an appropriate name such as that of your web server or the virtual domain to be analyzed, i.e. mysite.

awstats_configure.pl will create a new file called awstats.mysite.conf by copying the template file awstats.model.conf. The new file location is:
– For Linux/BSD/Unix users: /etc/awstats.
– For Mac OS X, Windows and other operating systems: the same directory as awstats.pl (cgi-bin).

E) awstats_configure.pl ends.

Check through the httpd.conf is configured properly according to steps above. It has been reported that sometime the CustomLog is not changed from common to combined.

Additional Configuration at Main Parameters of awstats.mysite.conf

A) Change Apache log file directory by:

Find : LogFile=”/var/log/apache/access.log”
Replace with : LogFile=”C:/Program Files/Apache Group/Apache2/logs/access_log”

(Important: The setting is for default Apache installation path. If you change your Apache path, please input accordingly. Note that the directory seperator is /)

B) Change log file type (Optional, typically no need to change)

Find : LogType=W
Replace the value with “W” for analyzing web server log files, “S” for a streaming server log file, “M” for mail log files, “F” for ftp log files.

C) Check if LogFormat has the value “1” (it means “NCSA apache combined/ELF/XLF log format”) or use a personalized log format if you don’t use combined log format.

D) Check if SiteDomain parameter with the main domain name or the intranet web server name used to reach the web site to analyze (Example: www.mydomain.com).

E) If you have several possible name for same site, add list in HostAlias parameter:

Find : HostAliases=”localhost 127.0.0.1 REGEX[^.*.myserver.com$]”
Replace with : HostAliases=”yoursite.com localhost 127.0.0.1″
(You can include alias names from dynamic DNS accounts such as www.mysite.serveftp.net and etc.)

F) AWStats statistics can be updated from a browser, to provide real-time statistics, by clicking the “Update now” link that appears when AWStats is used as a CGI. To enable it:

Find : AllowToUpdateStatsFromBrowser=0
Replace with : AllowToUpdateStatsFromBrowser=1

G) Edit ‘awstats.pl’ located in “C:\Program Files\AWStats\www\root\cgi-bin” and change the path on the first line to point to exact location of perl.exe in your system, i.e. #!C:\perl\bin\perl.exe.

To Maintain Just Single CGI Directory – Optional

New version of AWStats creates alias directory entries at the bottom of Apache httpd.conf file. If you want to have just one CGI executable directory, you have to move the AWStats scripts to existing CGI directory.

The following assume installation in default path.

  • Copy ALL files and sub-folders contained within “C:\Program Files\AWStats\www\root\cgi-bin” and paste into your Apache2 web server’s cgi-bin at “C:\Program Files\Apache Group\Apache2\cgi-bin”
  • Copy ALL files and sub-folders contained within “C:\Program Files\AWStats\www\root\icon” and paste into our Apache2 web server’s icons folder at “C:\Program Files\Apache Group\Apache2\icons”

Edit again the awstats.mysite.conf file, the change the following:

Find : DirIcons=”/icon”
Replace with : DirIcons=”/icons”

Delete from Apache web server’s httpd.conf the alias directory that has been inserted by AWStats setup program.

Optional Setup Section

Find : DefaultFile=”index.html”
Replace with your default index page, only if necessary, i.e. DefaultFile=”index.php” or DefaultFile=”index.php index.html”

Find : SkipHosts=””
Replace with : SkipHosts=”127.0.0.1 REGEX[^192.168.] REGEX[^10.0.]”

This is to not include statistics from your own local machines, they will remain in the actual log files but excluded from awstats counts. To get actual hits and figures it’s sometime necessary, but is not essential at this stage.

Build/Update Statistics

There are two possible way to analyze, update and generate the AWStats statistics, command line and browser based.

Command Line Option

Go to the command line, and change directory to your AWStats cgi-bin directory, i.e. C:\Program Files\AWStats\www\root\cgi-bin.

The AWStats update command line is (replace with your domain):

perl awstats.pl -config=www.yourdomain.com -update

AWStats database files are saved in directory defined by DirData parameter in config file, which we left as default (current directory). Update might take a while, if the log file is big. When update is finished, you should get on screen a result like this:

Update for config “/etc/awstats/awstats.myvirtualhostname.conf”
With data in log file “/pathtoyourlog/yourlog.log”…
Phase 1 : First bypass old records, searching new record…
Searching new records from beginning of log file…
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)…
Jumped lines in file: 0
Parsed lines in file: 225730
Found 122 dropped records,
Found 87 corrupted records,
Found 0 old records,
Found 225521 new qualifed records.

Browser Option

AWStats statistics can be updated from a browser, to provide real-time statistics, by clicking the “Update now” link that appears when AWStats is used as a CGI (only applicable if AllowToUpdateStatsFromBrowser is set to 1 in AWStats config file ).

Read Statistics

Again, there is 2 methods where AWStats’s statistics can be read, corresponding to the generation method of the stats mentioned above.

Command Line Option

At the same directory, after the first update command is finished, run the following command:

perl awstats.pl -config=myvirtualhostname -output -staticlinks > awstats.myvirtualhostname.html

The process may take a while, after it’s finished, a html will be generated where you can view it with a browser by double clicking on it.

Browser Option

Access the following directory (replace with your own domain):

http://www.myserver.mydomain/awstats/awstats.pl?config=myvirtualhostname