Fork me on GitHub

What is it?

GoAccess is an open source 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.

web log analyzer - goaccess
Alternative Outputs


GoAccess parses the specified web log file and outputs the data to the X terminal.

  • General statistics, bandwidth, etc.
  • Time taken to serve the request (useful to track pages that are slowing down your site)
  • Metrics for cumulative, average and slowest running requests
  • Top visitors
  • Requested files & static files
  • 404 or Not Found
  • Hosts, Reverse DNS, IP Location
  • Operating Systems
  • Browsers and Spiders
  • Referring Sites & URLs
  • Keyphrases
  • Geo Location - Continent/Country/City
  • Visitors Time Distribution
  • HTTP Status Codes
  • Metrics per Virtual Host
  • Ability to output JSON and CSV
  • Tailor GoAccess to suit your own color taste/schemes
  • Incremental log processing
  • Support for large datasets + data persistence
  • Support for HTTP/2 & IPv6
  • and more...
Nearly all web log formats...

GoAccess allows any custom log format string. Predefined options include, but not limited to:

  • Amazon CloudFront (Download Distribution).
  • AWS Elastic Load Balancing
  • Apache/NGINX Common/Combined + VHosts
  • Google Cloud Storage
  • W3C format (IIS)

Why GoAccess?

The main idea behind GoAccess is being able to quickly analyze and view web server statistics in real time without having to generate an HTML report (great if you want to do a quick analysis of your access log via SSH).

Although it is possible to generate an HTML, JSON, CSV report, by default it outputs to a terminal.

You can see it more of a monitor command tool than anything else.

What people are saying


@chrisnuber you can pass -d for reverse lookups.


@goaccess is there a way to have the reverse host lookups show under Hosts in an html-generated page, rather than the IP address?


@goaccess cheers!


@stuart_ca This should get only 500s: awk '$9~/500/' /var/log/apache2/access.log | goaccess


@goaccess another silly question, is it possible to use GoAccess to generate a list of pages that have returned a HTTP 500?


Latest stable release 0.9.7 - 2015-12-21

Download v0.9.7