Analog

From LinuxReviews
Jump to navigationJump to search
Analog / Analog CE
Search Word Report generated by Analog (CE)
Search Word Report generated by Analog (CE)
Original author(s)Stephen Turner
Developer(s)Stephen Turner, Chris Tilley
Initial releaseJune 21, 1995; 25 years ago (1995-06-21)
Stable release
6.0.16 / July 27, 2019; 15 months ago (2019-07-27)
Repositorygithub.com/c-amie/analog-ce
Written inC
Operating systemLinux/Unix-Like/Mac/Windows
TypeWeb Traffic Analytics
LicenseGNU GPL
Ksysguard-icon-breeze.svg

Analog (CE) is a web log analyzer that creates pretty simple reports using a web servers logs. It will show a lot of data based on the logs. Some of the information it shows is slightly useful, a lot of it is not.

The original Analog is a really old web log analyzer. It was originally written by Stephen Turner in 1995. The last Analog release is version 6.0 from 2004. Someone going by the nick C:Amie maintains a "fork" called Analog CE. That's the one you want if you want to use Analog. There's not really anything new since 2004 in that work beyond a few new User-Agents and very minor tweaks like that, it is essentially software that's stood still for 15+ years.

Analog CE at a glance
Increase.svg Decrease.svg
  • Analyzes traffic using logs, not page tags. No JavaScript or elements on web pages is required.
  • No support for partial log parsing using any kind of database.
  • You have to keep old logs around to get statistics for extended periods of time
  • No support for multiple vhosts on the same server (though you can work around that)
  • Running it becomes increasingly slow over time as the logs you have to keep grow in size

Features And Usability

Analog web server statistics - general summary.jpg
A typical report made by analog.

Let's start what what's really bad feature-wise compared to the alternatives since there is a fair chance that you found this page because you're considering using it:

  • Analog does not support any kind of log-data file for partial log-parsing.

This is a very important point worth considering. Alternatives like webalizer create a "history file" with the important data from logs and use that to store old data. That means that you can run webalizer and immediately eradicate the old log-files:

for f in /home/httpd/vhosts/*/conf/webalizer.conf ; do 
  nice -n 19 /bin/webalizer -Y -c $f  2>/dev/null
done
for f in /home/httpd/vhosts/*/statistics/logs/access_log;do
  echo > $f
done

You can't do anything similar with Analog. This means that it has two very clear draw-backs:

  • You have to keep a years worth of lots of you want to create a yearly report
  • Running analog takes an increasing amount of time as the amount of logs you parse grows.

Storage could also be a consideration though it's not really a problem unless you run a website with thousands of visitors on a box with a very small SSD or HDD.

Now to what you actually get:

Analog creates a long report that lists:

  • General Summary
  • Yearly Report
  • Quarterly Report
  • Monthly Report
  • Weekly Report
  • Daily Report
  • Daily Summary
  • Hourly Report
  • Hour of the Week Summary
  • Hourly Summary
  • Quarter-Hour Report
  • Quarter-Hour Summary
  • Five-Minute Report
  • Five-Minute Summary
  • Domain Report
  • Organisation Report
  • Host Report
  • Host Redirection Report
  • Host Failure Report
  • Redirected Referrer Report
  • Failed Referrer Report
  • Referrer Report
  • Referring Site Report
  • Search Query Report
  • Search Word Report
  • Browser Report
  • Browser Summary
  • Operating System Report
  • Status Code Report
  • File Size Report
  • File Type Report
  • Directory Report
  • Redirection Report
  • Failure Report
  • Request Report

Most of the reports have a vertical line bar. Some of them have a pie-chart.

The report it creates can be useful, and it's better than looking at raw longs, but it's not all that great.

Verdict And Conclusion

Analog isn't something we can recommend for one simple reason: You have to keep logs around for it to create reports with historical data. It can't analyze logs and make some statistics and keep those so you can throw the logs away, so you have to keep old logs around for as long as you want historical information in your statistics. This may not be something you care about, if you enjoy having a years worth of logs around then that's a non-issue. It does means that it will take increasingly long to create reports using Analog.

The reports Analog creates are somewhat useful. The report it creates isn't very pretty-looking, it's not eye candy. It does have all the important data-points you can create using logs listed, there are a lot of different sections listed in the report.

Accuracy of the reports are a concern with Analog: The default configuration file has just a few ROBOTINCLUDE entries. That doesn't mean it's useless: You can configure it to ignore all known robots if you spend a whole lot of time editing a configuration file.

Analog is, all in all, not something we recommend that anyone installs and uses for anything for the one simple reason we've already mentioned a few times: It requires you to keep old logs around. If you're fine with that and you want something that does work and does show neat statistics then it might.. be for you. Or not. There are alternatives like webalizer and AWStats that do the same job better.

Installation

git clone https://github.com/c-amie/analog-ce/
cd analog-ce
make

Now comes the very hard part: analog CE comes with a analog.cfg-sample file. You need to cp that file to a new configuration file and edit that file. The cloned GitHub source tree has a folder named docs/ with documentation.

The two most important, and essential, directives you need in your analog.cfg file are:

LOGFILE /logs/access_log.*
OUTFILE Report.html

The OUTFILE should be a file in a web servers root if you want it to be able to see the statistics on the web.

You may also need APACHELOGFORMAT line with your web servers log format in parenthesis (()) instead of quotes. This must be before the LOGFILE directive. If you use Apache and your virtual host is configured to use:

LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined

Then you'll want the Analog configuration to have a APACHELOGFORMAT line that says:

APACHELOGFORMAT (%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\")

You need to copy the images/ folder into the web-accessible folder where you generate the OUTFILE report.

Usage

Analog expects to find a analog.cfg in the folder it's executed from. It does not appear to have any command-line arguments like -c configfile.cfg. That's a problem if you want to analyze different logs for different virtual hosts.

There is a way around this. You can make symbolic links to the analog binary and the lang/ folder (it won't run without it) and make a script that changes into a folder for each virtual host you want logs analyzed for, each with it's own analog.cfg configuration file. Not elegant, but it's one way to do it.

Alternatives

Webalizer (and probably AWStats too) is a better alternative if you want to get some statistics about a web server based on logs alone.

Open Web Analytics is another solution if you want more than a log-analyzer. It's a more complete statistics server written in PHP that can collect statistics by calling it from PHP or by serving client-side JavaScript. It's not something like Analog that parses logs, though it does serve the same purpose.

Links

The only place to get Analog is to get Analog CE from c-amie.co.uk/software/analog/.

Add your comment
LinuxReviews welcomes all comments. If you do not want to be anonymous, register or log in. It is free.