Reading web server logs can be hard and requires tons of scripting commands. We usually choose a application for this purpose. GoAccess one the tools developed for this goal and it’s stable, fast and in my opinion most powerfull feature of GoAccess is real time analyze.Also it can generate HTML, JSON and CSV report.
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.
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)
- Top Visitors
- Requested files & static files
- 404 or Not Found
- Hosts, Reverse DNS, IP Location
- Operating Systems
- Browsers and Spiders
- Referring Sites & URLs
- Geo Location – Continent/Country/City
- HTTP Status Codes
- Ability to output JSON and CSV
- Different Color Schemes
- Support for large datasets and data persistence
- Support for IPv6
- Output statistics to HTML.
You can find out installation steps including distributions based dependencies from official web page ( http://goaccess.io/download )
I will install GoAccess on Ubuntu 14.04.4 TLS from source code.
$ apt-get install build-essential libncursesw5-dev libglib2.0-dev libgeoip-dev
$ wget http://tar.goaccess.io/goaccess-0.8.5.tar.gz
$ tar -xzvf goaccess-0.8.5.tar.gz
$ cd goaccess-0.8.5/
$ ./configure --enable-geoip --enable-utf8
# make install
That’s it. We are ready to parse access logs in real time. One single command will start goaccess such as following one.
goaccess -f /var/log/apache2/access.log -a
GoAccess is supporting tons of log format as a default feature.
I will go with default NCSA Combinet Log Format. Also GoAccess have plenty of shortcuts and features. All of them can be found on their man page. ( http://goaccess.io/man )