Webalizer

From Wikipedia, the free encyclopedia

Example Webalizer chart
Example Webalizer chart

The Webalizer is a GPL application that generates web pages of analysis, from access and usage logs, i.e. it is web log analysis software. It is one of the most commonly used web server administration tools. It was initiated by Bradford L. Barrett in 1997. Statistics commonly reported by Webalizer include: hits; visits; referrers; the visitors' countries; and the amount of data downloaded. These statistics can be viewed graphically and presented by different time frames, such as per day, hour, or month.

Contents

[edit] Overview

Website traffic analysis is produced by grouping and aggregating various data items captured by the web server in the form of log files while the website visitor is browsing the website. Some of the most commonly-used website traffic analysis terms are listed below:

URL

A Uniform Resource Locator (URL) uniquely identifies the resource requested by the user's browser.

Hit

Each HTTP request submitted by the browser is counted as one hit. Note that HTTP requests may be submitted for non-existent content, in which case they still will be counted. For example, if one of the five image files referred by the example page mentioned above is missing, the web server will still count six HTTP requests, but in this case, five will be marked as successful (one HTML file and four images) and one as a failed request (the missing image)

Page

A page is a successful HTTP request for a resource that constitutes primary website's content. Pages are usually identified by a file extension (e.g. .html, .php, .asp, etc) or by a missing extension, in which case the subject of the HTTP request is considered a directory and the default page for this directory is served.

File

Each successful HTTP request is counted as a file.

Visitor

A visitor is the actual person browsing the website. A typical website serves content to anonymous visitors and cannot associate visitors with the actual person browsing the website. Visitor identification may be based on their IP address or an HTTP cookie. The former approach is simple to implement, but results in all visitors browsing the same website from behind a firewall counted as a single visitor. The latter approach requires special configuration of the web server (i.e. to log HTTP cookies) and is more expensive to implement. Note that neither of the approaches identifies the actual person browsing the website and neither provides 100% accuracy in determining that the same visitor has visited the website again.

Visit

A visit is a series of HTTP requests submitted by a visitor with the maximum time between requests not exceeding a certain amount configured by the webmaster, which is typically set at 30 minutes. For example, if a visitor requested page A, then in 10 minutes page B and then in 40 minutes page C, then this visitor has generated two visits, one when pages A and B were requested and another when the page C was requested.

Host

In general, a host is the visitor's machine running the browser. Hosts are often identified by IP addresses or domain names. Those web traffic analysis tools that use IP addresses to identify visitors use the words hosts, domain names and IP addresses interchangeably.

User Agent

User agent is a synonym for a web browser.

In order to illustrate the difference between hits, pages and files, let's consider a user requesting an HTML file referring to five images, one of which is missing. In this case the web server will log six hits (i.e. one successful for the HTML file itself and four for successfully retrieved images and one for the missing image), five files (i.e. five successful HTML requests) and one page (i.e. the HTML file).

[edit] Log File Types

The Webalizer analyzes web server log files, extracting such items as client's IP addresses, URL paths, processing times, user agents, referrers, etc and grouping them in order to produce HTML reports.

Web servers log HTTP traffic using different file formats. Most popular file formats are CLF, the Apache Custom Log Format and W3C Extended Log File Format. CLF is the less informative log format and should be used only when there are no other options. An example of a CLF log line is shown below.

192.168.1.20 - - [26/Dec/2006:03:09:16 -0500] "GET  HTTP/ 1.1" 200 1774

Apache Custom Log Format can be customized to log most HTTP parameters, including request processing time and the size of the request itself. The format of a custom log is controlled by the format line. A typical Apache log format configuration is shown below.

LogFormat "%a %l \"%u\" %t %m \"%U\" \"%q\" %p %>s %b %D \"%{Referer}i\" \"%{User-Agent}i\"" my_custom_log
CustomLog logs/access_log my_custom_log

Microsoft's Internet Information Services (IIS) web server logs HTTP traffic in W3C Extended Log File Format. Similarly to Apache Custom Log format, IIS logs may be configured to capture such extended parameters as request processing time. W3C extended logs may be recognized by the presence of one or more format lines, such as the one shown below.

#Fields: date time s-ip cs-method cs-uri-stem cs-uri-query s-port cs-username c-ip cs(User-Agent) cs(Referer) sc-status sc-bytes cs-bytes time-taken

The original version of The Webalizer can process CLF log files, as well as HTTP proxy log files produced by Squid servers. Other log file formats are usually converted to CLF in order to be analyzed. Some of the forks listed in the External Links section below are capable of processing IIS and Apache log files without having to convert them to CLF first.

[edit] Command Line

The Webalizer is a command line application and is launched from the OS shell prompt. A typical command is shown below.

webalizer -p -F clf -n en.wikipedia.org -o reports logfiles/access_log

This command instructs The Webalizer to analyze the log file access_log, run in the incremental mode (-p), interpret the log as a CLF log file (-F), use the domain name en.wikipedia.org for report links (-n) and produce the output subdirectory of the current directory.

Use the -h option to see the complete list of command line options.

[edit] Configuration

Besides the command line options, The Webalizer may be configured through parameters of a configuration file. By default, The Webalizer reads the file webalizer.conf and interprets each line as a processing instruction. Alternatively, a user-specified file may be provided using the -c option.

For example, if the webmaster would like to ignore all requests made from a particular group of hosts, he or she can use the IgnoreSite parameter to discard all log records with the IP address matching the specified pattern:

IgnoreSite        192.168.0.*

There are over one hundred available configuration parameters, which make The Webalizer a highly-configurable web traffic analysis application. For a complete list of configuration parameters please refer to the README file shipped with every source or binary distribution.

[edit] Reports

By default, The Webalizer produces two kinds of reports - a yearly summary report and a detailed monthly report, one for each analyzed month.

The yearly summary report provides such information as the number of hits, file and page requests, hosts and visits, as well as daily averages of these counters for each month. The report is accompanied by a yearly summary graph.

Each of the monthly reports is generated as a single HTML page containing a monthly summary report (listing the overall number of hits, file and page requests, visits, hosts, etc), a daily report (grouping these counters for each of the days of the month), an aggregated hourly report (grouping counters for the same hour of each day together), a URL report (grouping collected information by URL), a host report (by IP address), website entry and exit URL reports (showing most common first and last visit URLs), a referrer report (grouping the referring third-party URLs leading to the analyzed website), a search string report (grouping items by search terms used in such search engines as Google), a user agent report (grouping by the browser type) and a country report (grouping by the host's country of origin).

Each of the standard HTML reports described above lists only top entries for each item (e.g. top 20 URLs). The actual number of lines for each of the reports is controlled by configuration. The Webalizer may also be configured to produce a separate report for each of the items, which will list every single item, such as all website visitors, all requested URLs, etc.

In addition to HTML reports, The Webalizer may be configured to produce comma-delimited dump files, which list all of the report data in a plain-text file. Dump files may be imported to spreadsheet applications or databases for further analysis.

[edit] Internationalization

HTML reports may be produced reports in over 30 languages, including Catalan, Croatian, Czech, Danish, Dutch, English, Estonian, Finnish, French, Galician, German, Greek, Hungarian, Icelandic, Indonesian, Italian, Japanese, Korean, Latvian, Malay, Norwegian, Polish, Portuguese, Portuguese (Brazil), Romanian, Russian, Serbian, Simplified Chinese, Slovak, Slovene, Spanish, Swedish, Turkish, Ukrainian.

To generate reports in an alternate language requires a separate webalizer binary compiled specifically for that language.

[edit] Criticism

  • Development has stopped in 2002 (see below for advancements)
  • Generated statistics do not differentiate between human visitors and robots. As a result all reported metrics are higher than those due to people alone.
  • Reported hits are too high for download managers with segmented downloads, each 206 "Partial Content" is reported as one hit
  • No query string analysis, dynamic generated websites can not be listed separately (e.g. PHP pages with arguments)

[edit] External links