Webalizer

Web Log Analyzer

Webalizer by Stone Steps Inc.

Introduction

The Webalizer is an "old-school" log file analyzer. It was written by Bradford L. Barrett in 1997. Bradford wrote the program in C to be very fast - it can process 70,000 records per second.

The original Webalizer ceased to be updated from version 2.23-08 of August 26, 2013. The project was forked at version 2.1.10.1 of September 29, 2004 by Stone Steps Inc. and it is their version of Webalizer that I use.

When I checked in October 2023, I could not find the download of the version compiled for Windows. The Stone Steps Inc. site seems to have changed and the last version mentioned in version 4, released on July 18, 2015. The problem is that I have version 6.2.1 that I downloaded on November 24, 2022. For this reason I have made a zip file of the files from GitHub that includes version 6.2.1 of webalizer.exe for Windows. Download (Zip, 2.45Mb). I cannot accept any responsibility for these files. They are not mine and I do not know why they are no longer available. All I can say is that this is the version I use and it appears to work.

Installation

Analog is a simple program consisting of a single Windows EXE file that requires no installation along with a CSS, configuration, image, and language files that requires no installation apart from creating the folders that hold them. It can be run directly from the command line which makes it particularly easy to add to Windows Task Scheduler.

The only thing I forgot to do when setting it up was to copy the images folder, which also includes a CSS file, to the directory that contains the output statistics page.

Analog installation

Analog installation folder along with the configuration files
The images folder must also be copied to the folder that contains Analog's output files

Organization

This is where and how I installed the Anlog files:

AWStats file locations
  Location
Main program C:\Apache24\webalizer
Executable C:\Apache24\webalize
Config file C:\Apache24\webalizer
Log files C:\Apache24\logs
Main output C:\Apache24\htdocs\brisray\utils\wlogs
https://brisray.com/utils/wlogs/

Some Problems

Of course some of these problems were due to my misunderstanding the documentation.

Machine Name

Webalizer inserts the local machine name into its reports. What was happening was that I misunderstood the relationship between the configutation directives ReportTitle and HostName and what they do.

From the documentation:

ReportTitle This specifies the title to use for the generated reports. It is used in conjunction with the hostname (unless blank) to produce the final report titles. If not defined, the default of "Usage Statistics for" is used.

HostName - This defines the site hostname. The hostname is used in the report title as well as being prepended to URL's in the "Top URL's" table. This allows The Webalizer to be run on "virtual" web servers, or servers that do not reside on the local machine, and allows clicking on the URL to go to the right place. If not specified, The Webalizer attempts to get the hostname via a uname system call, and if that fails, will default to localhost.

What I originally used was:

ReportTitle Usage Statistics for brisray.com
HostName (Was left blank)

The output from this was definitely not correct. What Webalizer did was obtain the local machne name, in my case was desktop-xxxxxxxx. What this produced was

Usage Statistics for brisray.com desktop-xxxxxxxx

Not only that, but he URLs produced by the program were pointing to https://desktop-xxxxxxxx/

After correcting the lines to:

ReportTitle (Was left blank)
HostName brisray.com

then everything worked well.

Missing CSS File

This was another mistake I made in the configuration file. In the HTMLCssPath directive I put the system absolute path to Webalizer's CSS file. Of course, this is useless on a webserver. After changing theentry to simply ../ that worked as it should.

Only a Year's Worth of Reports

By default, Webalizer only maintains a year's worth of reports. to get around this I created new folders for each year, wlogs-2021, wlogs-2022, wlogs-2023 and so on and changed the configuration output file directive, OutputDir, accordingly. I wanted a summary page of every year I have records for as on https://brisray.com/utils/wlogs/. I created the table by using one of the pages produced by Webalizer as a template. I need a method of automatically producing this table, maybe something in PowerShell.

While I was looking at sources for this page, I came across the Webalizer statistics page for Your Spa Store and that has a multi-year summary that appears to have been made by Webalizer. I need to read the documentation and other sources to see how this was done.

Configuration Files

From the documentation:

When The Webalizer first executes, it looks for a default configuration file named "webalizer.conf" in the current directory. In addition, configuration files may be specified on the command line with the '-c' option. There are lots of different ways you can combine the use of configuration files and command line options to produce various results. The Webalizer always looks for and reads configuration options from a default configuration file before doing anything else. Because of this, you can override options found in the default file by use of additional configuration files specified on the command line or command line options themselves. If you specify a configuration file on the command line, you can override options in it by additional command line options which follow.

What this means is that if you use Webalizer to analyze several logs the main webalizer.cong file can cotain all the common values and various other configurations can be used for specific files. The command line can also be used to override some options found in the configuration files. Be aware that some command line options will be added to the ones in the configuration files and not simply replaced.

Command Line

I find it easier to process individual log files from the command line rather than keep having to change the configuration file. The command to do this is:

webalizer -c brisray.conf c:\apache24\logs\brisray-access-2023-10.log

Where -c stipulates the configuration file to use. The final file name is the log file to process.

Newer File Types

Webalizer was written in 1997, and I use StoneSteps v6.2.1 which was published in October 2022. It seems the multimedia list Webalizer uses have has not changed much since it was first published and I added webp, webm and svg files to the list of file types to be counted as hits but not page views. To do this I added the lines to the configuration file:

HideURL *.webp
HideURL *.webm
HideURL *.svg

Live Output

I have decided to make the statistics obtained from my web logs public. The logs are subject to referer spam, so if the referring site in these analytics pages looks suspicious, it probably is.

Webalizer Statistics (2009 - present)

The index page the above link goes to was not made by Webalizer. I took the information from the various annual reports it produces along with screenshots of them and created the page in the same style used by the program.

Unless it was changed, the Webalizer statistics pages start with "Usage Statistics for". A search of that phrase along with Webalizer in Google or Bing brings up lots of statistics pages. Some have URLs that can be manipulated to go back in time to previous years/months.

One interesting page is Your Spa Store's. It is interesting as Webalizer does not normally create multi-year graphs like this.

Sources and Resources

Comparison table of the features offered by Analog, AWStats, and Webalizer
Stone Steps Webalizer
Stone Steps Webalizer (GitHub)
The Webalizer - This site has not been updated since May 28, 2014
Webalizer (Wikipedia)
Webalizer Documentations (Internet Archive) Webalizer documentation written by Danilo C. Dy
Webalizer GUI - A GUI by Tobias Schwarz alias "Sir Tobe"
Webalizer Review (Pat Research)
Webalizer - Unix, Linux Command (Tutorials Point) - this is a brief summary of Webalizer's command line and configuration file options.