Skip to content

Guide · Open source

How to use GoAccess: install, read logs and view live stats

Updated · written with AI from the project's own documentation and checked against our catalogue data

GoAccess is an open source web log analyzer. It reads your web server's access log and turns it into traffic statistics such as hits, visitors, bandwidth and slow requests, shown live in a terminal or in an HTML dashboard. This guide covers building it from source, running it against a log file and generating reports, so you can monitor traffic and spot problems without leaving the command line.

GoAccessallinurl/goaccess · ★ 21.1k · MIT

Quick start

  1. 1Check prerequisites. Confirm you have a *nix system, ncurses and autotools (autoreconf) if building from GitHub.
  2. 2Clone the repository. Run git clone https://github.com/allinurl/goaccess.git and enter the goaccess directory.
  3. 3Generate build files. Run autoreconf -fiv inside the directory.
  4. 4Configure the build. Run ./configure --enable-utf8 --enable-geoip=mmdb.
  5. 5Compile and install. Run make, then make install with root privileges.
  6. 6Open your access log. Run GoAccess against your web server access log and select the matching log format.

What GoAccess needs before you install it

GoAccess runs on *nix systems such as Linux, macOS and BSD. The only runtime dependency the project describes is ncurses. Building from the GitHub source also requires autotools, specifically autoreconf.

  • A *nix system (Linux, macOS, BSD)
  • ncurses
  • autotools (autoreconf), needed only when building from GitHub source

Install GoAccess from GitHub source

The development version is built from the repository with the commands below. Run them in a shell on your server or workstation. The README also lists a release tarball and many package managers, such as apt, dnf, pacman, Homebrew and pkg, as alternatives; packages may not carry the latest version.

$ git clone https://github.com/allinurl/goaccess.git $ cd goaccess $ autoreconf -fiv $ ./configure --enable-utf8 --enable-geoip=mmdb $ make # make install

Run GoAccess against your access log

GoAccess parses the web log file you give it and shows the results in the terminal. The project says minimal configuration is needed: you point it at your access log, pick the log format and let it parse the data. It supports Apache, Nginx, Amazon S3, Elastic Load Balancing, CloudFront and custom log format strings, among others.

  • Choose the log format that matches your server, such as Apache or Nginx combined logs.
  • Watch the terminal output, which the project says updates every 200 ms.
  • Use the HTML output if you prefer a browser view, which the project says updates every second.

Read the key panels: visitors, bandwidth and slow requests

The visitors view shows hits, visitors, bandwidth and metrics for the slowest requests, broken down by hour or date. If your log format includes response time, GoAccess can track pages that are slowing down your site. A panel per virtual host shows which Server Block uses the most resources.

  • Hits and visitors by hour or date
  • Bandwidth per period
  • Slowest requests when response time is logged
  • Metrics per virtual host

Export reports as HTML, JSON or CSV

Terminal output is the default. GoAccess can also generate a self-contained, real-time HTML report, as well as JSON and CSV reports. The HTML dashboard is useful for sharing stats with people who do not work in the terminal.

Use GoAccess for security monitoring

The README describes GoAccess as a tool for spotting suspicious activity in logs, including unusual traffic patterns, brute-force attempts, scanners, bots and anomalous requests. ASN mapping can help you find malicious traffic, and whole networks can be dropped while parsing with --exclude-asn.

  • Look for unusual traffic patterns and anomalous requests
  • Group traffic by ASN to find suspicious networks
  • Exclude a network while parsing with --exclude-asn

What people use it for

  • Checking live traffic over SSH on a server with no browser
  • Monitoring Nginx or Apache traffic for sudden spikes or errors
  • Finding the slowest pages when response time is logged
  • Reviewing which virtual host uses the most resources
  • Spotting scanners, bots and brute-force attempts in access logs

Frequently asked questions

Is GoAccess free?

GoAccess is released under the MIT licence and is open source. The source is on GitHub at allinurl/goaccess.

What are the requirements for GoAccess?

The project says you need a *nix system such as Linux, macOS or BSD, and ncurses as its only dependency. Building from GitHub source also requires autotools (autoreconf).

Can I use GoAccess on Windows?

The README says GoAccess can be used on Windows only through Cygwin. Native Windows is not mentioned as supported.

Does GoAccess work with Nginx and Apache logs?

Yes. The README lists Apache and Nginx combined log formats among the predefined options, and it also accepts custom log format strings.

How is GoAccess different from browser analytics like Matomo?

GoAccess reads your server's log files, so it does not depend on JavaScript running in visitors' browsers. Matomo is a browser-based analytics option that the project's comparison list mentions for that use.

What are alternatives to GoAccess?

The comparison list names AWStats, Matomo for browser-based analytics, Logstash and Grafana. Pick based on whether you want a terminal tool or a browser-based analytics platform.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

GoAccess suits system administrators and DevOps engineers who want fast traffic stats over SSH or a live HTML dashboard built from server logs. People who need JavaScript-based visitor analytics, or who run only Windows without Cygwin, should look at a browser-based tool such as Matomo instead.

Install options & downloads