After seeing the function of Apachetop, today I propose another similar software called GoAccess, which is a utility that allows to analyze in real time log files of web servers (Apache).

GoAccess Setup

  • Debian-Based Distribution

Before installing GoAccess, let's first install some required packages. Launch the terminal and run this command:

sudo apt-get install libncurses5-dev libglib2.0-dev libgeoip-dev

  • RPM-Based Distribution

For an RMP-based distribution, you need to install first some required packages. Open the terminal window and run this command:

yum install glib2-devel ncurses-devel GeoIP-devel 

Next download the sources from the official website, then run these commands:

tar zxvf goaccess-*.tar.gz
cd goaccess-*
make install 

GoAccess Use

To use GoAccess, run this command that indicates the path to the server log file:

goaccess -f /var/log/httpd/access_log 

Use then keyboard arrow keys (UP/Down/Left/Right) to monitor web server traffic in real time.

Post a Comment

  1. Excellent work! But I got stuck when trying this:

    I get through the ./configure part just fine:

    config.status: creating Makefile
    config.status: creating config.h
    config.status: executing depfiles commands

    but then when I hit type in "make" I get this:

    make: *** No rule to make target `Makefile.am', needed by `Makefile.in'. Stop.

    Any ideas what's wrong here? I'm totally stuck.

  2. Have you run this command before compiling:

    yum install glib2-devel ncurses-devel GeoIP-devel

  3. Yes, I've already installed Glib2, Ncurses and GeoIP.

    Package glib2-devel - 2.12.13-1.fc7.i386 is already installed.
    Package ncurses-devel - 5.6-9.20070812.fc7.i386 is already installed.
    Package GeoIP-devel - 1.4.4-2.fc7.i386 is already installed.

    Still can't figure out why I'm getting this:

    configure: creating ./config.status
    config.status: creating Makefile
    config.status: creating config.h
    config.status: config.h is unchanged
    config.status: executing depfiles commands
    [root@ip-72-167-140-182 go_access]# make
    make: *** No rule to make target `Makefile.am', needed by `Makefile.in'. Stop.
    [root@ip-72-167-140-182 go_access]#

  4. Which Linux distribution are you using?

  5. Try to install this RPM instead of compiling the source:


  6. ARg! After I tried to install it I'm now getting failed dependencies.

    [root@ip-72-167-140-182 log]# rpm -Uvh goaccess-0.4.1-1.fc14.i686.rpm
    error: Failed dependencies:
    libc.so.6(GLIBC_2.7) is needed by goaccess-0.4.1-1.fc14.i686
    rpmlib(FileDigests) <= 4.6.0-1 is needed by goaccess-0.4.1-1.fc14.i686
    rpmlib(PayloadIsXz) <= 5.2-1 is needed by goaccess-0.4.1-1.fc14.i686

    But I already have Glib2 installed? Also, I need FileDigests and PayloadISXz now?

    Sorry I'm VERY noob on working my way around with SSH. Any help is greatly appreciated.

  7. Please try this RPM:


  8. I have tested Goaccess on Ubuntu 10.10 and it worked fine. I will install Fedora tomorrow and see if I can help you installing it.