GoAccess (A Real-Time Apache and Nginx) Web Server Log Analyzer

GoAccess is an interactive and real-time web server log analyzer program that quickly analyze and view web server logs. It comes as an open-source and runs as a command line in Unix/Linux operating systems. It provides brief and beneficial HTTP (webserver) statistics report for Linux administrators on the fly. It also takes care of both the Apache and Ngnix web server log formats.

GoAccess parses and analyze the given web server log formats in preferred options including CLF (Common Log Format), W3C format (IIS), and Apache virtual hosts, and then generate an output of the data to the terminal.

Check out the Live Demo of Goaccess – https://rt.goaccess.io/

GoAccess Features

It has the following features.

  1. General Statistics, bandwidth, etc.
  2. Top Visitors, Visitors Time Distribution, Referring Sites & URLs, and 404 or Not Found.
  3. Hosts, Reverse DNS, IP Location.
  4. Operating Systems, Browsers, and Spiders.
  5. HTTP Status Codes
  6. Geo-Location – Continent/Country/City
  7. Metrics per Virtual Host
  8. Support for HTTP/2 & IPv6
  9. Ability to output JSON and CSV
  10. Incremental log processing and support for large datasets + data persistence
  11. Different Color Schemes

How Do I Install GoAccess in Linux?

Presently, the most recent version of GoAccess v1.4 is not available from default system package repositories, so to install the latest stable version, you need to manually download and compile it from source code under Linux systems as shown:

Install GoAccess from Sources in Linux

------------ Install GoAccess on CentOS, RHEL and Fedora ------------ 
# yum install ncurses-devel glib2-devel geoip-devel
# cd /usr/src
# wget https://tar.goaccess.io/goaccess-1.4.tar.gz
# tar -xzvf goaccess-1.4.tar.gz
# cd goaccess-1.4/
# ./configure --enable-utf8 --enable-geoip=legacy
# make
# make install
------------ Install GoAccess on Debian and Ubuntu ------------ 
$ sudo apt install libncursesw5-dev libgeoip-dev apt-transport-https 
$ cd /usr/src
$ wget https://tar.goaccess.io/goaccess-1.4.tar.gz
$ tar -xzvf goaccess-1.4.tar.gz
$ cd goaccess-1.4/
$ sudo ./configure --enable-utf8 --enable-geoip=legacy
$ sudo make
$ sudo make install

Install GoAccess Using Package Manager

The easiest and preferred way to install GoAccess on Linux using the default package manager of your respective Linux distribution.

Note: As I said above, not all distributions will have the most recent version of GoAccess available in the system default repositories..

On RedHat, CentOS, and Fedora
# yum install goaccess
# dnf install goaccess    [From Fedora 23+ versions]
On Debian and Ubuntu Systems

GoAccess utility is available since Debian Squeeze 6 and Ubuntu 12.04. To install just run the following command on the terminal.

$ sudo apt-get install goaccess

Note: The above command will not always provide you the most latest version. To get the latest stable version of GoAccess, add the official GoAccess Debian & Ubuntu repository as shown:

$ echo "deb http://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list
$ wget -O - http://deb.goaccess.io/gnugpg.key | sudo apt-key add -
$ sudo apt-get update
$ sudo apt-get install goaccess

How Do I Use GoAccess?

Once you have GoAccess installed on your Linux machine, you can ready to start using it by running the following command. It will first ask you to determine the log format of your access log.

Configure GoAccess Log Format
Configure GoAccess Log Format

The easiest way to get any web server statistics use the flag ‘f‘ with input log file name as shown below. The below command will give you general statistics of your web server logs.

# goaccess -f /var/log/httpd/tecmint.com
# goaccess -f /var/log/nginx/tecmint.com

The above command gives you a complete overview of web server metrics by showing summaries of various reports as panels on a one scrollable view as shown.

Apache Logs Overview

View Web Server Apache Logs
View Web Server Apache Logs

Apache Logs by Operating System – Overview

View Apache Logs By Operating System
View Apache Logs By Operating System

Apache Logs by Visitor Bandwidth – Overview

View Apache Visitor Bandwidth Usage
View Apache Visitor Bandwidth Usage

Apache Logs by Web Browser – Overview

View Apache Usage based on Browsers
View Apache Usage based on Browsers

How do I generate the Apache HTML report?

To generate an HTML report of your Apache web server logs, just run it against your weblog file.

# goaccess -f /var/log/httpd/access_log > reports.html
Monitor Apache Logs Using Web Browser
GoAccess: Monitor Apache Logs Using Web Browser

For more information and usage please visit http://goaccess.io/.

Hey TecMint readers,

Exciting news! Every month, our top blog commenters will have the chance to win fantastic rewards, like free Linux eBooks such as RHCE, RHCSA, LFCS, Learn Linux, and Awk, each worth $20!

Learn more about the contest and stand a chance to win by sharing your thoughts below!

Ravi Saive
I am an experienced GNU/Linux expert and a full-stack software developer with over a decade in the field of Linux and Open Source technologies

Each tutorial at TecMint is created by a team of experienced Linux system administrators so that it meets our high-quality standards.

Join the TecMint Weekly Newsletter (More Than 156,129 Linux Enthusiasts Have Subscribed)
Was this article helpful? Please add a comment or buy me a coffee to show your appreciation.

Got Something to Say? Join the Discussion...

Thank you for taking the time to share your thoughts with us. We appreciate your decision to leave a comment and value your contribution to the discussion. It's important to note that we moderate all comments in accordance with our comment policy to ensure a respectful and constructive conversation.

Rest assured that your email address will remain private and will not be published or shared with anyone. We prioritize the privacy and security of our users.