Menu
Szybki wybór
Hosting Domeny VPS SSL Kalkulator Porównania FAQ
Aktywne kody
Wszystkie kody rabatowe

GoAccess — analiza logów Nginx i Apache w czasie rzeczywistym

Opublikowano: 10 kwietnia 2026 · Kategoria: Hosting

Każde żądanie do Twojego serwera jest zapisywane w logach — ale kto je czyta? Ręczne przeglądanie plików access.log przez grep jest nużące i pomija kontekst. GoAccess to narzędzie które w kilka sekund przekształca surowe logi Nginx lub Apache w czytelny dashboard z wykresami, tabelami i filtrami. Działa w terminalu bez instalacji GUI, generuje statyczne raporty HTML lub interaktywny dashboard aktualizowany przez WebSocket. Najważniejsze: jest bezpłatny, open-source i nie wysyła żadnych danych poza serwer.

Instalacja GoAccess

# Ubuntu / Debian (oficjalne repo GoAccess — nowsza wersja niz w apt)
echo "deb https://deb.goaccess.io/ $(lsb_release -cs) main" | \
  sudo tee /etc/apt/sources.list.d/goaccess.list
wget -O - https://deb.goaccess.io/gnugpg.key | \
  sudo gpg --dearmor -o /usr/share/keyrings/goaccess-keyring.gpg
sudo apt update && sudo apt install goaccess -y

# Sprawdz wersje
goaccess --version

# Alternatywnie z domyslnego apt (starsza wersja, ale wystarczajaca)
sudo apt install goaccess

# CentOS / RHEL / Fedora
sudo dnf install goaccess

Pierwsze uruchomienie — analiza logów Nginx

Nginx używa domyślnie formatu "Combined Log Format" — GoAccess ma dla niego gotową predefinkowaną opcję. Możesz analizować logi interaktywnie w terminalu lub przekierować output do pliku.

# Analiza interaktywna w terminalu (TUI)
sudo goaccess /var/log/nginx/access.log --log-format=COMBINED

# Analiza z wlaczonym geolokalizacja IP (wymaga GeoIP2 database)
sudo goaccess /var/log/nginx/access.log \
  --log-format=COMBINED \
  --geoip-database=/usr/share/GeoIP/GeoLite2-City.mmdb

# Wiele plikow logow jednoczesnie (np. po logrotate)
sudo goaccess /var/log/nginx/access.log /var/log/nginx/access.log.1 \
  --log-format=COMBINED

# Skompresowane logi .gz bezposrednio
sudo zcat /var/log/nginx/access.log.*.gz | \
  goaccess - --log-format=COMBINED

# Apache (ten sam format Combined)
sudo goaccess /var/log/apache2/access.log --log-format=COMBINED

W trybie interaktywnym GoAccess wyświetla dashboard z panelami: statystyki globalne, żądania HTTP, adresy IP, kody odpowiedzi (200/404/500), przeglądarki, systemy operacyjne, referrery i wiele innych. Nawigacja za pomocą strzałek i klawiszy Page Up/Down.

Generowanie raportów HTML

Raport HTML to samodzielny plik z interaktywnym dashboardem — wykresy, tabele, filtry datowe. Możesz go otworzyć w przeglądarce, wysłać jako załącznik emaila lub udostępnić przez serwer WWW.

# Generuj raport HTML
sudo goaccess /var/log/nginx/access.log \
  --log-format=COMBINED \
  -o /var/www/html/stats/report.html

# Raport z ostatnich 7 dni (przez filtr dat)
sudo goaccess /var/log/nginx/access.log \
  --log-format=COMBINED \
  --date-format=%d/%b/%Y \
  --since-date=2026-04-03 \
  -o /var/www/html/stats/report-7days.html

# Raport z pelnego history (rotowane logi + aktualny)
sudo zcat /var/log/nginx/access.log.*.gz | \
  cat - /var/log/nginx/access.log | \
  goaccess - --log-format=COMBINED \
  -o /var/www/html/stats/full-report.html

# Zabezpiecz dostep do raportu przez Basic Auth w Nginx
# W /etc/nginx/sites-available/stats.conf:
# location /stats/ {
#   auth_basic "Analytics";
#   auth_basic_user_file /etc/nginx/.htpasswd;
# }

Dashboard real-time z WebSocket

GoAccess obsługuje tryb real-time: generuje plik HTML który automatycznie aktualizuje się przez WebSocket. Gdy ktoś odwiedza Twoją stronę, widzisz to na żywo w raporcie — bez przeładowania strony. GoAccess musi działać jako długotrwały proces (daemon).

# Real-time dashboard na porcie WebSocket 7890
sudo goaccess /var/log/nginx/access.log \
  --log-format=COMBINED \
  --real-time-html \
  --ws-url=wss://stats.twoja-domena.pl:443/ws \
  --port=7890 \
  -o /var/www/html/stats/realtime.html \
  --daemonize

# Nginx - proxy WebSocket dla GoAccess
# Dodaj do server block dla stats.twoja-domena.pl:
# location /ws {
#   proxy_pass http://localhost:7890;
#   proxy_http_version 1.1;
#   proxy_set_header Upgrade $http_upgrade;
#   proxy_set_header Connection "upgrade";
# }

# Zatrzymaj daemon GoAccess
kill $(cat /tmp/goaccess.pid)

Automatyczne raporty przez cron

# /etc/cron.d/goaccess-report
# Generuj raport co noc o 23:55 (przed logrotate o polnocy)

55 23 * * * root /usr/bin/goaccess /var/log/nginx/access.log \
  --log-format=COMBINED \
  -o /var/www/html/stats/daily-$(date +\%Y-\%m-\%d).html \
  --no-global-config 2>> /var/log/goaccess-cron.log

# Czyszczenie starych raportow (starsze niz 30 dni)
0 0 * * * root find /var/www/html/stats/ -name "daily-*.html" \
  -mtime +30 -delete

Przydatne panele GoAccess — co warto śledzić

Panel Co pokazuje Zastosowanie
Visitors Unikalnych odwiedzających per dzień/godzinę Trendy ruchu, peak hours
Requests Najczęściej żądane URL-e Najpopularniejsze strony, zasoby statyczne
Static Requests Pliki JS/CSS/obrazy/fonty Optymalizacja cache statycznych zasobów
Not Found (404) Brakujące strony i zasoby Wykrywanie broken links, błędnych URL-i
Hosts Adresy IP klientów z liczbą żądań Wykrywanie botów, scraper'ów, atakujących
HTTP Codes Rozkład kodów odpowiedzi (200/301/404/500) Monitoring błędów serwerowych
Operating Systems Systemy operacyjne klientów Optymalizacja dla mobile vs desktop
Referrers Skąd przychodzi ruch Analiza źródeł ruchu

Najczęstsze pytania

Czym jest GoAccess i co analizuje? +
GoAccess to open-source'owy analizator logów serwera WWW działający w czasie rzeczywistym. Parsuje logi Nginx, Apache i inne formaty (Combined Log Format, W3C, CloudFront, AWS S3, JSON). Pokazuje statystyki odwiedzin, najpopularniejsze URL-e, kody HTTP, przeglądarki, systemy operacyjne, geolokalizację IP i wiele więcej. Działa w terminalu lub generuje raporty HTML.
Jak GoAccess wypada w porównaniu z Google Analytics? +
GoAccess analizuje logi serwera, więc widzi WSZYSTKIE żądania — w tym boty, crawlery, żądania API i zasoby statyczne. Google Analytics działa przez skrypt JavaScript, więc nie widzi żądań bez JS (boty, skrobaki, żądania direct), odwiedza tych którzy blokują tracking i wielu żądań technicznych. GoAccess jest lepszy do analizy technicznej (błędy 404/500, ataki, crawlery). GA jest lepszy do analizy zachowań użytkowników i konwersji. Oba narzędzia uzupełniają się.
Czy GoAccess działa z logami z wielu serwerów? +
Tak, GoAccess może analizować wiele plików logów jednocześnie. Możesz podać kilka plików jako argumenty lub użyć cat/zcat do łączenia i przesyłania przez pipe. W przypadku wielu serwerów sprowadź logi do jednego miejsca (np. przez rsync lub centralne logowanie z Filebeat/Promtail) i analizuj łącznie. GoAccess obsługuje też skompresowane pliki .gz bez rozpakowywania.
Jak wygenerować raport HTML z GoAccess? +
GoAccess generuje samodzielny plik HTML z interaktywnym dashboardem. Polecenie: goaccess /var/log/nginx/access.log --log-format=COMBINED -o /var/www/html/report.html. Plik HTML zawiera wszystkie dane, wykresy i filtry. Możesz go otworzyć w przeglądarce, wysłać emailem lub udostępnić przez serwer WWW. Opcja --real-time-html włącza aktualizacje WebSocket.
Czy GoAccess obsługuje logi skompresowane gzip? +
Tak. GoAccess obsługuje skompresowane logi .gz bezpośrednio: goaccess access.log access.log.1.gz access.log.2.gz --log-format=COMBINED. Możesz też użyć zcat: zcat /var/log/nginx/access.log*.gz | goaccess --log-format=COMBINED. To szczególnie przydatne gdy logrotate kompresuje stare logi, a chcesz analizować dane historyczne.

Sprawdź oferty pasujące do tego scenariusza

Poniżej masz szybkie przejścia do ofert i stron z kodami rabatowymi tam, gdzie są dostępne.