v1.2 is a major release that gives the
ability to parse multiple log files in real-time. It also adds the ability to
pipe data in w/o closing the pipe and thus allowing a great amount of flexibility
such as the ability to use
tail -f and still have real-time stats.
In addition to GeoIP2 support and other features and fixes.
For the complete list of features and changes, see the Releases Notes page.
If you would like to be on top of all the changes occuring to GoAccess,
feel free to use the GitHub master branch and build from it. Instructions on how to build GoAccess from Github can be found at the bottom of the Download page.
This is where all the development goes. If you already have Git installed, you can get the latest development version via Git.
Installing GoAccess is pretty easy. Just download, extract and compile it with:
$ wget http://tar.goaccess.io/goaccess-1.2.tar.gz $ tar -xzvf goaccess-1.2.tar.gz $ cd goaccess-1.2/ $ ./configure --enable-utf8 --enable-geoip=legacy $ make # make installNote: The only dependency is ncurses.
Multiple options can be used to configure GoAccess. For a complete up- to-date list of configure options, run ./configure --help
legacywill utilize the original GeoIP databases.
mmdbwill utilize the enhanced GeoIP2 databases.
memhashwill utilize Tokyo Cabinet's in-memory hash database.
btreewill utilize Tokyo Cabinet's on-disk B+ Tree database.
It is easiest to install GoAccess on Linux using the preferred package manager of your Linux distribution. Please note that not all distributions will have the lastest version of GoAccess available
# apt-get install goaccess
Note: This may not always give you the latest stable version. To make sure that you're running the latest stable version of GoAccess see option below.
$ echo "deb http://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list $ wget -O - https://deb.goaccess.io/gnugpg.key | sudo apt-key add - $ sudo apt-get update $ sudo apt-get install goaccess
sudo apt-get install goaccess-tcb.
.debpackages in the official repo are available through
httpsas well. You may need to install
# yum install goaccess
# pacman -S goaccess
# emerge net-analyzer/goaccess
# brew install goaccessNote: If GeoIP is needed, append
--with-libmaxminddbto the command above. You will need to download the City/Country database from MaxMind and use the option
--geoip-databaseto specify the database.
# pkg install sysutils/goaccess
# pkg_add goaccess
# pkgin install goaccess
# curl https://slackbuilds.org/slackbuilds/14.1/system/goaccess.tar.gz | tar xvz # cd goaccess/ # GEOIP=yes ./goaccess.SlackBuild
GoAccess can be used in Windows through Cygwin. See packages to install.
GoAccess has minimal requirements, it's written in C and requires only ncurses. However, below is a table of some optional dependencies in some distros to build GoAccess from source.
|Distro||NCurses||GeoIP (optional)||Tokyo Cabinet (optional)||OpenSSL (optional)|
|Arch Linux||ncurses||geoip||compile from source||openssl|
make, etc for compiling/building software from source. e.g.,
Before running your own GoAccess Docker container, first create a config file in /srv/goaccess/data. You can start one from scratch or use the one from config/goaccess.conf as a starting point and change it as needed.
A minimal GoAccess configuration file for a Docker container with a real-time HTML report would need at least the following options to be set
Once you have your configuration file all set, clone the repo from Github:
$ git clone https://github.com/allinurl/goaccess.git goaccess && cd $_
and then build and run the image as follows:
Note: You may need to replace
docker build . -t allinurl/goaccess docker run --restart=always -d -p 7890:7890 \ -v "/srv/goaccess/data:/srv/data" \ -v "/srv/goaccess/html:/srv/report" \ -v "/var/log/apache2:/srv/logs" \ --name=goaccess allinurl/goaccess
/var/log/apache2according to the location of your webserver access logs.
If everything goes fine, the generated report should live under
If you you made changes to the config file after building the image, you don't have to rebuild from scratch. Simply restart the container:
docker restart goaccess
For more details, please see the Docker section on README.md file