Install GoAccess Log Analysis on Rocky Linux 10

By Anurag Singh

Updated on Jan 12, 2026

Install GoAccess Log Analysis on Rocky Linux 10

Learn how to install and configure GoAccess on Rocky Linux 10 using Docker for real-time Nginx or Apache web log analysis.

Introduction

GoAccess is an open-source, real-time web log analyzer and interactive viewer that helps us monitor and understand our server traffic through a visual dashboard. Designed to be fast and minimal, GoAccess processes web server log files (like those from Nginx or Apache) and turns raw data into meaningful insights all from the command line or via a live HTML report.

GoAccess is a powerful log analyzer that converts Nginx access logs into a live, interactive HTML dashboard. Running it inside Docker avoids OS-level package issues and ensures reliable WebSocket support for real-time updates.

This guide shows how we deploy GoAccess in Docker and serve the dashboard securely using Nginx on Rocky Linux 10.

Prerequisites

Before we begin, let’s ensure we have the following in place:

How to Install and Run GoAccess Real-Time Dashboard on Rocky Linux 10 Using Docker for Real-Time Nginx/Apache Log Analysis

Step 1: Install Docker

Let's install Docker first: 

sudo dnf -y install dnf-plugins-core
sudo dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo dnf install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable --now docker

Verify:

docker --version

Step 2: Prepare Directory for Reports

sudo mkdir -p /var/www/goaccess
sudo chown -R nginx:nginx /var/www/goaccess

Configure SELinux (If you have enabled it)

sudo chcon -Rt httpd_sys_content_t /var/www/goaccess

This directory will be used by Nginx to serve the GoAccess HTML dashboard.

Grant Nginx Network Permission (SELinux)

Note: You can skip if you already enabled it.

sudo setsebool -P httpd_can_network_connect 1

Step 3: Run GoAccess Container

Execute following Docker command to create GoAccess Docker container.

Note: Change the log path /var/log/nginx with your log path. We are using Nginx's default log path here for demostration purpose.

docker run -d \
  --name goaccess \
  -p 7890:7890 \
  -v /var/log/nginx:/logs:ro \
  -v /var/www/goaccess:/report \
  --entrypoint /bin/sh \
  allinurl/goaccess -c "
    goaccess /logs/access.log \
      --log-format=COMBINED \
      --real-time-html \
      --addr=0.0.0.0 \
      --port=7890 \
      -o /report/index.html
  "

Verify container status:

docker ps
docker logs -f goaccess

The logs should indicate that the WebSocket server is running.

Step 4: Configure Nginx WebSocket Proxy

Edit Nginx configuration:

sudo nano /etc/nginx/nginx.conf

Inside the server block add:

location /goaccess/ {
    alias /var/www/goaccess/;
    index index.html;
}

location /ws {
    proxy_pass http://127.0.0.1:7890;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
}

Reload Nginx:

sudo nginx -t
sudo systemctl reload nginx

Step 5: Protect Dashboard with Authentication

sudo dnf install -y httpd-tools
sudo htpasswd -c /etc/nginx/.goaccess_auth admin

Update the GoAccess location block:

location /goaccess/ {
    auth_basic "Restricted Area";
    auth_basic_user_file /etc/nginx/.goaccess_auth;
    alias /var/www/goaccess/;
    index index.html;
}

Reload Nginx again:

sudo systemctl reload nginx

Step 6: Access the Dashboard

Open in browser:

http://server-ip/goaccess/

The GoAccess dashboard now updates live and is secured behind authentication.

Conclusion

In this tutorial, we have seen how to install and configure GoAccess on Rocky Linux 10 using Docker for real-time Nginx or Apache web log analysis. Using Docker with GoAccess on Rocky Linux 10 ensures consistent real-time analytics with full WebSocket support, avoids distribution-specific package limitations, and integrates cleanly with Nginx. This approach provides a stable, production-ready log monitoring solution.