Keep in mind that many factors can influence the parsing time, including processor, ram, log, etc. However, generally we could derive the following table:
|Benchmark with full features enabled (v0.5)||100,000 lines per second|
Benchmarks were tested on: Intel(R) Xeon(R) CPU @ 2.40GHz 2GB RAM
GoAccess can parse virtually any web log format. Predefined options include, Common Log Format (CLF), Combined Log Format (XLF/ELF), including virtual host and W3C format (IIS).
GoAccess allows any custom format string as well.
It's fairly easy to run GoAccesss, once it has been installed (no configuration is needed), just run it against your web log file: (-a is optional)
Now if we want to add more flexibility to GoAccess, we can do a series of pipes. For instance:
If we would like to process all access.log.*.gz we can do:
For more examples, please check GoAccess' man page
To generate an HTML report, just run it against your web log file: (-a is optional)
* This feature is available from v0.5
GoAccess should not leak any memory, (tested w/ Valgrind), so mostly it will depend on the log size and the initial parse. For 100,000 parsed lines is about ~3.4MiB.
I'm definitely planning to add up the following features:
If you would like to be notified of new releases of GoAccess then please subscribe to the Freshmeat project. Feel free to rate or add a comment to the project. Freshmeat
This was fixed on version 0.4 - GLib 2.0 or later is now required instead of 2.16, as in previous versions.
There are some reports from people getting the following error under CentOS 5.5 and Redhat Enterprise:
Error: GHashTableIter undeclared (first use in this function)...
If you need to upgrade Glib2 to a more recent version, then you could do the following: (Note: I have only tested under CentOS 5.5)
Please be aware that if other packages on your system depend on older Glib2 versions, there might be a risk to break something up. However, generally speaking it shouldn't.
This was fixed on version 0.4.1
GeoIP is required on versions ≤0.4, however, I have created a PATCH that will make configure to skip the GeoIP check.
The next release will make GeoIP optional and as part of the ./configure options.
Thanks to Chris Orgill, GoAccess has been successfully built under OpenBSD 4.8-current. Here the shared steps:
parser.c line 613 lvalue required as left operand
ui.c GeoIP.h no such file or directory
util.c line 132 AF_INET undeclared in reverse_ip()
Security warnings about uses of strcpy() instead of strlcpy() in ui.c and sprintf() instead of snprintf() in settings.c !!, then
Runs to completion.
Can't --enable-utf8 because only the built-in system ncurses is available, not ncursesw.
Last Modified: 2013-05-02 20:29:12
The official man page for the current version is available here