GoAccess

GoAccess can operate in following modes:

Install

Installation on FreeBSD is pretty straightforward

pkg install goaccess

Run in terminal

goaccess /var/log/nginx/access.log

Run as web server

goaccess --log-format=COMBINED --real-time-html \
    --ws-url=kyka.tekkirk.org:443/Monitor/ws \
    -o /usr/local/www/nginx/Monitor/Report.html \
    /var/log/nginx/access.log

Configure Nginx

location Monitor/ws {
    proxy_pass http://localhost:7890;
}

Verify web-socket connection

curl --include \
     --no-buffer \
     --header "Connection: Upgrade" \
     --header "Upgrade: websocket" \
     --header "Host: kyka.tekkirk.org:443" \
     --header "Origin: https://kyka.tekkirk.org:443" \
     --header "Sec-WebSocket-Key: SGVsbG8sIHdvcmxkIQ==" \
     --header "Sec-WebSocket-Version: 13" \
     https://kyka.tekkirk.org/Monitor/ws

Configure

Check what is default configuration file

goaccess --dcf

Update configuration file - /usr/local/etc/goaccess.conf

log-format COMBINED
ws-url kyka.tekkirk.org:443/Monitor/ws
log-file /var/log/nginx/access.log
http-protocol false
no-query-string true
geoip-database /usr/local/share/GeoIP/GeoLite2-Country.mmdb
keep-last 7
db-path /var/run/goaccess
persist true
restore true

Create directory for persistent storage

mkdir /var/run/goaccess

Enable service

sysrc goaccess_config="/usr/local/etc/goaccess.conf"
sysrc goaccess_html="/usr/local/www/nginx/Monitor/Report.html"
sysrc goaccess_enable="YES"

and start it

service goaccess start

Notes

ToDo