logstalgia-1.0.7-setup.exe logstalgia-1.0.7.win32.zip logstalgia-1.0.7.tar.gz

Introduction

Logstalgia is a website traffic visualization that replays or streams web-server access logs as a pong-like battle between the web server and an never ending torrent of requests.

Requests appear as colored balls (the same color as the host) which travel across the screen to arrive at the requested location. Successful requests are hit by the paddle while unsuccessful ones (eg 404 - File Not Found) are missed and pass through.

The paths of requests are summarized within the available space by identifying common path prefixes. Related paths are grouped together under headings. For instance, by default paths ending in png, gif or jpg are grouped under the heading Images. Paths that don’t match any of the specified groups are lumped together under a Miscellaneous section.

Requirements

Logstalgia requires a video card supporting OpenGL. For this reason you should typically run Logstalgia on your workstation rather than on the web-server itself (unless your workstation is the web-server).

As Logstalgia is designed to playback logs in real time you will need a log from a fairly busy web-server to achieve interesting results (eg 100s of requests each minute).

An example access log is included.

Log Formats

Logstalgia supports several standardized access.log formats used by web servers such as Apache and Nginx:

NCSA Common Log Format (CLF)
    "%h %l %u %t \"%r\" %>s %b"

NCSA Common Log Format with Virtual Host
    "%v %h %l %u %t \"%r\" %>s %b"

NCSA extended/combined log format
    "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""

NCSA extended/combined log format with Virtual Host
    "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""

The process id (%P), or some other identifier, may be included as an additional field at the end of the entry. This can be used with '--paddle-mode pid' where a separate paddle will be created for each unique value in this field.

Also supported a pipe delimited Custom Log Format (more details on the Wiki):

1371769989|127.0.0.1|/index.html|200|1024|1|00FF00

Examples

Watch an example access.log file using the default settings:

logstalgia data/example.log

Watch the live access.log, starting from the most recent batch of entries in the log (requires tail). Note than '-' at the end is required for logstalgia to know it needs to read from STDIN:

tail -f /var/log/apache2/access.log | logstalgia -

To follow the log in real time, use the --sync option. This will start reading from the next entry received on STDIN:

tail -f /var/log/apache2/access.log | logstalgia --sync

Watch a remote access.log via ssh. The '-g' option is used here to group together URLs requested containing the string '/adclick.php' under the heading 'Ad Clicks':

ssh user@yourserver.com tail -f /var/log/apache2/access.log | logstalgia -g "Ad Clicks,/adclick.php,30" -

NOTE: tailing remote logs is not currently recommended on the Windows version due to buffering issues.

Related Software

You may also want to check out Gource, a software version control visualization tool.

News

21 October 2015

Logstalgia 1.0.7 has been released.

Changes since 1.0.6:

Downloads:

21 March 2015

Due to Google Code shutting down I will soon be moving the Logstalgia homepage to Github. The source code is already hosted there.

I've disabled Wiki comments in the mean time due to link spam.

16 October 2014

Logstalgia 1.0.6 has been released.

Changes since 1.0.5:

Downloads:

3 April 2014

Well this hasn't happened in a while: a new Logstalgia release!

Logstalgia now uses SDL 2.0 when available, providing much better multi-monitor support.

You can also now date ranges on the command line using the --from and --to ISO_DATETIME options.

Various other improvements are listed below:

Downloads are now hosted on Github as Google Code no longer accepts adding new downloads:

If you package Logstalgia for a distro, please update the dependencies to use SDL 2 instead of SDL 1.2.

Donations

If you like Logstalgia and would like to show your appreciation and encourage future work on this and other open source projects by the author, please consider making a donation!