Scroll to navigation

goaccess(1) User Manuals goaccess(1)

NAME

goaccess - fast web log analyzer and interactive viewer.

SYNOPSIS

goaccess [-f input-file ] [-c] [-e] [-a]

DESCRIPTION

goaccess is a free (GPL) real-time web log analyzer and interactive viewer that runs in a terminal in *nix systems. It provides fast and valuable HTTP statistics for system administrators that require a visual server report on the fly. First it will parse the web log file, then it will collect data from the parsed file and it will display it to the console or the X terminal. The collected information will be displayed to the user in a visual/interactive window. The collected information includes:
 
General Statistics:
Total number of valid requests, Total number of invalid requests, Total time to analyze the data, Total unique visitors, Total unique requested files, Total unique static files (css,ico,jpg,js,swf,gif,png) Total unique HTTP referrers (URLs), Total unique 404s (not found), Size of the parsed log file, Total bandwidth consumption.
Unique visitors:
HTTP requests having the same IP, same date and same agent will be considered a unique visit. (including crawlers). {Detail view} is available for this module
Requested files
The totals are based on unique requested files. This is based on the premise that HTTP requests having the same IP, same date and same agent will be considered a unique visit. {Detail view} is available for this module
Requested static files
The totals are based on unique requested files. Includes files such as: jpg, css, swf, js, gif, png etc. Unique requests are based on the premise that HTTP requests having the same IP, same date and same agent will be considered a unique visit. {Detail view} is available for this module
Referrers URLs
The URL where the request came from. Totals are not based on the above premise, but instead, based on the total number of requests. {Detail view} is available for this module
404 or Not Found
The total number is based on total requests. {Detail view} is available for this module
Operating Systems
The total number is based on unique visitors. {Detail view} is available for this module
Browsers
The total number is based on unique visitors. {Detail view} is available for this module
Hosts
The total number is based on total requests. {Detail view} is available for this module. {Detail view} for each IP can display extra information for the particular host, including reverse dns, and geolocation of the IP.
HTTP Status Codes
Totals are based on total requests. {Detail view} is available for this module
Referring Sites
This module will display only the host but not the whole URL. The total number is based on total requests. {Detail view} is available for this module
Keyphrases
This module will report keyphrases used on Google search, Google cache, and Google translate. The total number is based on total requests. {Detail view} is available for this module

OPTIONS

-f input-file
Path to input log file.
-c
Prompt date and log format configuration window.
-e
Exclude an IP from being counted under the HOST module.
-a
Enable a list of User-Agents for the selected host.

CUSTOM LOG/DATE FORMAT

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.
 
There are two ways to configure the log format. The easiest is to run GoAccess with -c to prompt a configuration window. Otherwise, it can be configured under ~/.goaccessrc.
date_format
The date_format variable followed by a space, specifies the log format date containing any combination of regular characters and special format specifiers. They all begin with a percentage (%) sign. See http://linux.die.net/man/3/strftime
log_format
The log_format variable followed by a space, specifies the log format string.
%d
date field matching the date_format variable.
%h
host (the client IP address, either IPv4 or IPv6)
%r
The request line from the client.
%s
The status code that the server sends back to the client.
%b
The size of the object returned to the client.
%R
The "Referer" HTTP request header.
%u
The User-Agent HTTP request header.
%^
Ignore this field.

INTERACTIVE MENU

F1
Main help.
F5
Redraw main window.
q
Quit the program or the current {detail view} (window).
o
Open a {detail view} for the current active module.
c
set or change scheme color.
TAB
Forward iteration of modules. Starts from current active module.
SHIFT + TAB
Backward iteration of modules. Starts from current active module.
RIGHT ARROW
Open a {detail view} for the current active module.
0-9
Activate module so the user can open a {detail view} with either ^o^ or ^RIGHT ARROW^.
SHIFT + 0-9
Activate module above 10.
s
Sort unique visitors by date. This will only work on the Unique visitors module(1).
S
Sort unique visitors by hits. This will only work on the Unique visitors module(1).
/
Search forward on any {detail view} window for the occurrence of typed pattern.
n
Find the position of the next occurrence on any {detail view} window.
t
Move to the first item or top of screen.
b
Move to the last item or bottom of screen.

EXAMPLES

The simplest and fastest usage would be:
 
# goaccess -f access.log
 
That will generate an interactive text-only output.
 
To generate an HTML report:
 
# goaccess -f access.log -a > report.html
 
To generate full statistics we can run GoAccess as:
 
# goaccess -f access.log -a
 
The -a flag indicates that we want to process an agent-list for every host parsed. The -c flag will prompt the date and log format configuration window. Only when curses is initialized.
 
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:
 
# zcat access.log.*.gz | goaccess
 
OR
 
# zcat -f access.log* | goaccess
 
Another useful pipe would be filtering dates out of the web log
 
The following will get all HTTP requests starting on 05/Dec/2010 until the end of the file.
 
# sed -n '/05\/Dec\/2010/,$ p' access.log | goaccess -a
 
If we want to parse only a certain time-frame from DATE a to DATE b, we can do:
 
sed -n '/5\/Nov\/2010/,/5\/Dec\/2010/ p' access.log | goaccess -a
 
Note that this could take longer time to parse depending on the speed of sed.
 
Also, it is worth pointing out that if we want to run GoAccess at lower priority, we can run it as:
 
# nice -n 19 goaccess -f access.log -a
 

NOTES

On each {detail view} window, the total number of items is 300.
 
Piping a log to GoAccess will disable the real-time functionality. This is due to the portability issue on determining the actual size of STDIN. However, a future release *might* include this feature.
 

BUGS

If you think you have found a bug, please send me an email to goaccess@prosoftcorp.com

AUTHOR

Gerardo Orellana <goaccess@prosoftcorp.com> For more details about it, or new releases, please visit http://goaccess.prosoftcorp.com
 
JUNE 2012 Linux