FAQ
Here are some of the most frequently asked questions…
Here are some of the most frequently asked questions…
This document contains the most common questions for specific topics. These are items that don't necessarily fit in the man page. If you don't see an answer to your question here, check the man page or previously reported issues on GitHub.
Keep in mind that many factors can influence the parsing time, including processor, RAM, log size, etc. However, generally we could derive the following benchmarks:
| Benchmark (v1.4) - Default Hash Tables | 101,245.3 lines per second |
| Benchmark full features & metrics enabled (>=v1.4) - In-memory hash table | 100,502.5 lines per second |
400M hits (74G size) is parsed in 1H 20 mins (in-memory) consuming about 12GB RAM.
GoAccess should not leak any memory (tested with Valgrind), so mostly it will depend on the log size and features enabled. For 3,397,814 parsed lines the footprint is ~134.1 MiB (full features enabled).
-q can greatly decrease memory consumption, especially on timestamped requests.
If you are using the standard log format that comes with Apache or Nginx, configuring GoAccess should be pretty straightforward. There are several ways to set the log format. If you are outputting to a terminal (ncurses), the easiest is to run GoAccess with -c:
You could also specify the log format in the command line. For the standard Apache/Nginx format:
However, neither of those options will make the setting permanent. For that you will need to specify the format in the configuration file. See the question below for more details.
log_format to GoAccess log-format: https://github.com/stockrt/nginx2goaccess.12/Jan/2021 but your machine locale is not set to English, you need to set your LC_TIME:
The configuration file is located under ~/.goaccessrc or %sysconfdir%/goaccess.conf where %sysconfdir% is usually /etc/, /usr/etc/ or /usr/local/etc/. Passing --dcf to GoAccess will display where the config file is being read from. You can find the default configuration file here.
GoAccess has a generic predefined log format option in the config file & dialog. However, this script can automatically extract the proper format from IIS log files.
To generate an HTML report, just run it against your web log file (-a is optional):
For more examples, please check GoAccess' man page.
The process of generating a real-time HTML report is very similar to creating a static report. Just generate a static report and place the output HTML file under your web server's public folder. You need to add a couple of additional real-time flags — --real-time-html is required:
Upon opening the generated report in your browser, it will try to establish a WebSocket connection to the host name (window.location.hostname) where the report is running from. It's also possible to specify it using --ws-url=<host>. Note that host should point to the location where GoAccess is running and parsing logs, and should not contain http.
See the man page examples for more details.
--ssl-cert=<cert.crt> and --ssl-key=<priv.key>.
You will need to set unsafe-inline and unsafe-eval and configure a trusted source list:
GoAccess has minimal requirements — it's written in C and requires only ncurses. Optionally, GeoIP for geolocation from MaxMind. See package details related to GoAccess.
To build GoAccess on Windows using Cygwin, select the following packages on Cygwin's package installation screen:
libGeoIP-devellibncurses-devellibncursesw10gcc-core (C)makeautomakegettextgettext-develautomake wrapper scriptsThe following instructions allow you to install GoAccess on OS X El Capitan without relying on Homebrew. Admin privileges are needed.
/Library/Developer/CommandLineTools/.xcode-select --install/usr/local/./usr/local/bin/ to $PATH under ~/.bash_profile so you don't have to prepend the full path when invoking GoAccess./usr/local/etc/.Thanks to Valeriano for sharing this!
If you run an Ubuntu or Debian server, it's best to use GoAccess' official deb repo.
If you would like to be notified of new releases, please follow the project on Twitter. Feel free to share it with others too :)