Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
goaccess — GoAccess è un analizzatore di log web in tempo reale e un visualizzatore interattivo che gira in un terminale in sistemi *nix o tramite il tuo browser. | Kitploit
Strumenti/GitHubGitHub/allinurl/goaccess
Utilità GenerichePrivacyRilevamento di AnomalieAnalisi dei Log
GitHuballinurl/goaccess

goaccess

GoAccess è un analizzatore di log web in tempo reale e un visualizzatore interattivo che gira in un terminale in sistemi *nix o tramite il tuo browser.

Vedi Repository
20.8k1.2k1218h 35m faRevisionato da Kitploit
Sito web

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

GoAccess C build GoAccess

Cos'è?

GoAccess è un analizzatore di log web in tempo reale open source e un visualizzatore interattivo che funziona in un terminale su sistemi *nix o direttamente nel browser. Progettato pensando ad amministratori di sistema, ingegneri DevOps e professionisti della sicurezza, fornisce statistiche HTTP rapide e utili e report visivi del server al volo. GoAccess analizza i log del tuo server web in tempo reale e presenta i dati direttamente nel terminale o tramite una dashboard HTML live, rendendo facile monitorare il traffico, rilevare anomalie e risolvere problemi istantaneamente.

Maggiori informazioni su: https://goaccess.io.

GoAccess Terminal Dashboard

GoAccess HTML Dashboard

Funzionalità

GoAccess analizza il file di log web specificato e invia i dati al terminale X. Le funzionalità includono:

  • Completamente in tempo reale
    Tutti i pannelli e le metriche vengono aggiornati ogni 200 ms sull'output del terminale e ogni secondo sull'output HTML.

  • Configurazione minima necessaria
    Puoi semplicemente eseguirlo sul tuo file di log di accesso, scegliere il formato del log e lasciare che GoAccess analizzi il log di accesso e mostri le statistiche.

  • Monitoraggio del tempo di risposta dell'applicazione
    Tieni traccia del tempo impiegato per servire la richiesta. Estremamente utile se desideri monitorare le pagine che rallentano il tuo sito.

  • Autenticazione WebSocket:
    GoAccess offre un'autenticazione WebSocket migliorata, con supporto per verifica JWT locale ed esterna, funzionalità di aggiornamento sicuro del token e integrazione perfetta con sistemi di autenticazione esterni.

  • Quasi tutti i formati di log web
    GoAccess accetta qualsiasi stringa di formato di log personalizzata. Le opzioni predefinite includono Apache, Nginx, Amazon S3, Elastic Load Balancing, CloudFront, ecc.

  • Elaborazione incrementale dei log
    Hai bisogno di persistenza dei dati? GoAccess ha la capacità di elaborare i log in modo incrementale tramite le opzioni di persistenza su disco.

  • Una sola dipendenza
    GoAccess è scritto in C. Per eseguirlo, hai solo bisogno di ncurses come dipendenza. Tutto qui. Include persino il proprio server Web Socket — http://gwsocket.io/.

  • Visitatori
    Determina il numero di hits, visitatori, larghezza di banda e metriche per le richieste più lente per ora o per data.

  • Metriche per Virtual Host
    Hai più Virtual Host (Server Blocks)? Include un pannello che mostra quale virtual host sta consumando la maggior parte delle risorse del server web.

  • ASN (mappatura del numero di sistema autonomo)
    Ottimo per rilevare modelli di traffico dannosi e bloccarli di conseguenza.

  • Schema di colori personalizzabile
    Personalizza GoAccess in base ai tuoi gusti/schemi di colore. Sia tramite il terminale, sia semplicemente applicando il foglio di stile sull'output HTML.

  • Supporto per grandi set di dati
    GoAccess offre la capacità di analizzare log di grandi dimensioni grazie alle sue tabelle hash ottimizzate in memoria. Ha un ottimo utilizzo della memoria e prestazioni piuttosto buone. Questa archiviazione supporta anche la persistenza su disco.

  • Supporto Docker
    Possibilità di creare l'immagine Docker di GoAccess dall'upstream. Puoi ancora configurarlo completamente utilizzando il mapping dei volumi e modificando goaccess.conf. Vedi la sezione Docker qui sotto. È disponibile anche la documentazione su come utilizzare docker-compose.

Quasi tutti i formati di log web...

GoAccess accetta qualsiasi stringa di formato di log personalizzata. Le opzioni predefinite includono, ma non sono limitate a:

  • Amazon CloudFront (Download Distribution).
  • Amazon Simple Storage Service (S3)
  • AWS Elastic Load Balancing
  • Combined Log Format (XLF/ELF) Apache | Nginx
  • Common Log Format (CLF) Apache
  • Google Cloud Storage.
  • Apache virtual hosts
  • Squid Native Format.
  • W3C format (IIS).
  • Caddy's JSON Structured format.
  • Traefik's CLF flavor

Perché GoAccess?

GoAccess è stato progettato per essere un analizzatore di log veloce basato su terminale. La sua idea principale è analizzare rapidamente e visualizzare le statistiche del server web in tempo reale senza bisogno di utilizzare il browser (ottimo se si vuole fare una rapida analisi del log di accesso via SSH, o se si ama semplicemente lavorare nel terminale).

Serve anche come strumento pratico per il monitoraggio della sicurezza, rendendo facile individuare attività sospette, modelli di traffico insoliti, tentativi di brute-force, scanner, bot e richieste anomale direttamente dai tuoi log.

Mentre l'output del terminale è l'output predefinito, ha la capacità di generare un report HTML completo, autonomo e in tempo reale, oltre a report JSON e CSV.

Lo si può vedere più come uno strumento di comando di monitoraggio che altro.

Installazione

Packaging status

Compilazione dalla release

GoAccess può essere compilato e utilizzato su sistemi *nix.

Scarica, estrai e compila GoAccess con:

root@kitploit:~
$ wget https://tar.goaccess.io/goaccess-1.10.2.tar.gz
$ tar -xzvf goaccess-1.10.2.tar.gz
$ cd goaccess-1.10.2/
$ ./configure --enable-utf8 --enable-geoip=mmdb --with-zlib
$ make
# make install

Compilazione da GitHub (Sviluppo)

root@kitploit:~
$ git clone https://github.com/allinurl/goaccess.git
$ cd goaccess
$ autoreconf -fiv
$ ./configure --enable-utf8 --enable-geoip=mmdb
$ make
# make install

Distribuzioni

È più semplice installare GoAccess su GNU+Linux utilizzando il gestore di pacchetti preferito della propria distribuzione GNU+Linux. Si noti che non tutte le distribuzioni avranno l'ultima versione di GoAccess disponibile.

Debian/Ubuntu

root@kitploit:~
# apt-get install goaccess

Nota: È probabile che questo installi una versione obsoleta di GoAccess. Per assicurarti di eseguire l'ultima versione stabile di GoAccess, consulta l'opzione alternativa di seguito.

Repository ufficiale GoAccess per Debian e Ubuntu

root@kitploit:~
$ wget -O - https://deb.goaccess.io/gnugpg.key | gpg --dearmor | sudo tee /usr/share/keyrings/goaccess.gpg >/dev/null
$ echo "deb [signed-by=/usr/share/keyrings/goaccess.gpg arch=$(dpkg --print-architecture)] https://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/goaccess.list
$ sudo apt-get update
$ sudo apt-get install goaccess

Nota:

  • I pacchetti .deb nel repository ufficiale sono disponibili anche tramite HTTPS. Potrebbe essere necessario installare apt-transport-https.

Fedora

root@kitploit:~
# yum install goaccess

Arch

root@kitploit:~
# pacman -S goaccess

Gentoo

root@kitploit:~
# emerge net-analyzer/goaccess

OS X / Homebrew

root@kitploit:~
# brew install goaccess

FreeBSD

root@kitploit:~
# cd /usr/ports/sysutils/goaccess/ && make install clean
# pkg install sysutils/goaccess

OpenBSD

root@kitploit:~
# cd /usr/ports/www/goaccess && make install clean
# pkg_add goaccess

openSUSE

root@kitploit:~
# zypper ar -f obs://server:http http
# zypper in goaccess

OpenIndiana

root@kitploit:~
# pkg install goaccess

pkgsrc (NetBSD, Solaris, SmartOS, ...)

root@kitploit:~
# pkgin install goaccess

Windows

GoAccess può essere utilizzato in Windows tramite Cygwin. Vedi i pacchetti di Cygwin. Oppure tramite il Sottosistema GNU+Linux su Windows 10.

Docker

Un'immagine Docker è stata aggiornata, in grado di dirigere l'output da un log di accesso. Se vuoi solo produrre un report, puoi inviare un log dall'ambiente esterno a un processo basato su Docker:

root@kitploit:~
touch report.html
cat access.log | docker run --rm -i -v ./report.html:/report.html -e LANG=$LANG allinurl/goaccess -a -o report.html --log-format COMBINED -

O in tempo reale

root@kitploit:~
tail -F access.log | docker run -p 7890:7890 --rm -i -e LANG=$LANG allinurl/goaccess -a -o report.html --log-format COMBINED --real-time-html -

Esiste anche documentazione su come utilizzare docker-compose.

Compilazione in contenitore isolato

Puoi anche compilare il binario per sistemi basati su Debian in un ambiente contenitore isolato per evitare di ingombrare il tuo sistema locale con le librerie di sviluppo:

root@kitploit:~
$ curl -L "https://github.com/allinurl/goaccess/archive/refs/heads/master.tar.gz" | tar -xz && cd goaccess-master
$ docker build -t goaccess/build.debian-12 -f Dockerfile.debian-12 .
$ docker run -i --rm -v $PWD:/goaccess goaccess/build.debian-12 > goaccess

Puoi leggere ulteriori informazioni sull'utilizzo dell'immagine Docker in DOCKER.md.

Pacchetti delle distribuzioni

GoAccess ha requisiti minimi, è scritto in C e richiede solo ncurses. Tuttavia, di seguito è riportata una tabella di alcune dipendenze opzionali in alcune distribuzioni per compilare GoAccess dal sorgente.

DistroNCursesGeoIP (opt)GeoIP2 (opt)OpenSSL (opt)
Ubuntu/Debianlibncurses-devlibgeoip-devlibmaxminddb-devlibssl-dev
RHEL/CentOSncurses-develgeoip-devellibmaxminddb-developenssl-devel
Archncursesgeoiplibmaxminddbopenssl
Gentoosys-libs/ncursesdev-libs/geoipdev-libs/libmaxminddbdev-libs/openssl
SlackwarencursesGeoIPlibmaxminddbopenssl

Nota: Potrebbe essere necessario installare strumenti di compilazione come gcc, autoconf, gettext, autopoint ecc. per compilare/costruire software dal sorgente. ad esempio base-devel, build-essential, "Development Tools".

Archiviazione

Tabelle hash predefinite

L'archiviazione in memoria offre prestazioni migliori al costo di limitare la dimensione del set di dati alla quantità di memoria fisica disponibile. GoAccess utilizza tabelle hash in memoria. Ha un uso della memoria molto buono e prestazioni abbastanza buone. Questa archiviazione supporta anche la persistenza su disco.

Opzioni della riga di comando / di configurazione

Vedi le opzioni che possono essere fornite al comando o specificate nel file di configurazione. Se specificate nel file di configurazione, le opzioni lunghe devono essere usate senza anteporre --.

Utilizzo / Esempi

Nota: Invio di dati tramite pipe a GoAccess non richiederà una finestra di configurazione del log/data/ora, sarà necessario definirla preventivamente nel file di configurazione o nella riga di comando.

Per iniziare

Per produrre un output su un terminale e generare un report interattivo:

root@kitploit:~
# goaccess access.log

Per generare un report HTML:

root@kitploit:~
# goaccess access.log -a > report.html

Per generare un file di report JSON:

root@kitploit:~
# goaccess access.log -a -d -o report.json

Per generare un report CSV su stdout:

root@kitploit:~
# goaccess access.log --no-csv-summary -o csv

GoAccess offre anche grande flessibilità per il filtraggio e l'analisi in tempo reale. Ad esempio, per diagnosticare rapidamente i problemi monitorando i log da quando goaccess è stato avviato:

root@kitploit:~
# tail -f access.log | goaccess -

E ancora meglio, per filtrare mantenendo aperta una pipe per preservare l'analisi in tempo reale, possiamo usare tail -f e uno strumento di corrispondenza di modelli come grep, awk, sed, ecc.:

root@kitploit:~
# tail -f access.log | grep -i --line-buffered 'firefox' | goaccess --log-format=COMBINED -

o per analizzare dall'inizio del file mantenendo la pipe aperta e applicando un filtro

root@kitploit:~
# tail -f -n +0 access.log | grep -i --line-buffered 'firefox' | goaccess -o report.html --real-time-html -

File di log multipli

Ci sono diversi modi per analizzare più log con GoAccess. Il più semplice è passare più file di log alla riga di comando:

root@kitploit:~
# goaccess access.log access.log.1

È persino possibile analizzare file da una pipe mentre si leggono file regolari:

root@kitploit:~
# cat access.log.2 | goaccess access.log access.log.1 -

Nota: il trattino singolo viene aggiunto alla riga di comando per far sapere a GoAccess che deve leggere dalla pipe.

Ora se vogliamo aggiungere più flessibilità a GoAccess, possiamo usare zcat --force per leggere file compressi e non compressi. Ad esempio, se volessimo elaborare tutti i file di log access.log*, possiamo fare:

root@kitploit:~
# zcat --force access.log* | goaccess -

Nota: Su Mac OS X, usa gunzip -c invece di zcat.

Supporto multi-thread

Usa --jobs=<count> (o -j) per abilitare l'analisi multi-thread. Ad esempio:

root@kitploit:~
# goaccess access.log -o report.html -j 4

E usa --chunk-size=<256-32768> per regolare la dimensione del chunk, la dimensione predefinita del chunk è 1024. Ad esempio:

root@kitploit:~
# goaccess access.log -o report.html -j 4 --chunk-size=8192

Output HTML in tempo reale

GoAccess ha la capacità di produrre dati in tempo reale nel report HTML. Puoi persino inviare via email il file HTML poiché è composto da un singolo file senza dipendenze esterne, quanto è bello!

Il processo di generazione di un report HTML in tempo reale è molto simile al processo di creazione di un report statico. Solo --real-time-html è necessario per renderlo in tempo reale.

root@kitploit:~
# goaccess access.log -o /usr/share/nginx/html/your_site/report.html --real-time-html

Per visualizzare il report puoi navigare a http://your_site/report.html.

Per impostazione predefinita, GoAccess utilizzerà il nome host del report generato. Opzionalmente, puoi specificare l'URL a cui si connetterà il browser del client. Vedi FAQ per un esempio più dettagliato.

root@kitploit:~
# goaccess access.log -o report.html --real-time-html --ws-url=goaccess.io

Per impostazione predefinita, GoAccess ascolta sulla porta 7890, per utilizzare una porta diversa da 7890, puoi specificarla come (assicurati che la porta sia aperta):

root@kitploit:~
# goaccess access.log -o report.html --real-time-html --port=9870

E per associare il server WebSocket a un indirizzo diverso da 0.0.0.0, puoi specificarlo come:

root@kitploit:~
# goaccess access.log -o report.html --real-time-html --addr=127.0.0.1

Nota: Per inviare dati in tempo reale su una connessione TLS/SSL, devi usare --ssl-cert=<cert.crt> e --ssl-key=<priv.key>.

Filtraggio

Lavorare con le date

Un altro utile pipe sarebbe filtrare le date dal log web.

Il seguente otterrà tutte le richieste HTTP a partire da 05/Dec/2010 fino alla fine del file.

root@kitploit:~
# sed -n '/05\/Dec\/2010/,$ p' access.log | goaccess -a -

o utilizzando date relative come ieri o domani:

root@kitploit:~
# sed -n '/'$(date '+%d\/%b\/%Y' -d '1 week ago')'/,$ p' access.log | goaccess -a -

Se vogliamo analizzare solo un determinato intervallo di tempo dalla DATA a alla DATA b, possiamo fare:

root@kitploit:~
# sed -n '/5\/Nov\/2010/,/5\/Dec\/2010/ p' access.log | goaccess -a -

Se vogliamo preservare solo una certa quantità di dati e riciclare l'archiviazione, possiamo mantenere solo un certo numero di giorni. Ad esempio per mantenere e mostrare gli ultimi 5 giorni:

root@kitploit:~
# goaccess access.log --keep-last=5

Virtual hosts

Supponendo che il tuo log contenga il campo virtual host. Ad esempio:

root@kitploit:~
vhost.io:80 8.8.4.4 - - [02/Mar/2016:08:14:04 -0600] "GET /shop HTTP/1.1" 200 615 "-" "Googlebot-Image/1.0"

E vorresti aggiungere il virtual host alla richiesta per vedere a quale virtual host appartengono gli URL principali:

root@kitploit:~
awk '$8=$1$8' access.log | goaccess -a -

Per fare lo stesso, ma anche utilizzare il filtraggio e l'analisi in tempo reale:

root@kitploit:~
tail -f  access.log | unbuffer -p awk '$8=$1$8' | goaccess -a -

Per escludere un elenco di virtual host puoi fare quanto segue:

root@kitploit:~
# grep -v "`cat exclude_vhost_list_file`" vhost_access.log | goaccess -

File, codici di stato e bot

Per analizzare pagine specifiche, ad esempio visualizzazioni di pagina, html, htm, php, ecc. all'interno di una richiesta:

root@kitploit:~
# awk '$7~/\.html|\.htm|\.php/' access.log | goaccess -

Nota, $7 è il campo richiesta per il formato log comune e combinato (senza Virtual Host), se il tuo log include Virtual Host, probabilmente vorrai usare $8 invece. È meglio controllare quale campo stai cercando, ad esempio:

root@kitploit:~
# tail -10 access.log | awk '{print $8}'

O per analizzare un codice di stato specifico, ad esempio 500 (Errore interno del server):

root@kitploit:~
# awk '$9~/500/' access.log | goaccess -

O più codici di stato, ad esempio tutti i 3xx e 5xx:

root@kitploit:~
# tail -f -n +0 access.log | awk '$9~/3[0-9]{2}|5[0-9]{2}/' | goaccess -o out.html -

E per ottenere una stima di quanti bot (crawler) stanno colpendo il tuo server:

root@kitploit:~
# tail -F -n +0 access.log | grep -i --line-buffered 'bot' | goaccess -

Suggerimenti

Inoltre, vale la pena sottolineare che se vogliamo eseguire GoAccess con priorità inferiore, possiamo eseguirlo come:

root@kitploit:~
# nice -n 19 goaccess -f access.log -a

e se non vuoi installarlo sul tuo server, puoi comunque eseguirlo dalla tua macchina locale!

root@kitploit:~
# ssh -n root@server 'tail -f /var/log/apache2/access.log' | goaccess - --log-format=COMBINED

Nota: SSH richiede -n affinché GoAccess possa leggere da stdin. Inoltre, assicurati di utilizzare chiavi SSH per l'autenticazione poiché non funzionerà se è richiesta una passphrase.

Risoluzione dei problemi

Riceviamo molte domande e problemi a cui è già stata data risposta.

  • Problemi di corrispondenza data/ora? Controlla che il formato del log e la locale di sistema in cui esegui GoAccess corrispondano. Vedi #1571
  • Problemi con la corrispondenza di modelli? Gli spazi sono spesso un problema, vedi ad esempio #136, #1579
  • Altri problemi di corrispondenza delle voci di log: Vedi >200 issue chiusi relativi ai formati log/data/ora
  • Problemi con l'elaborazione dei log? Vedi >111 issue relativi all'elaborazione dei log

Elaborazione incrementale dei log

GoAccess ha la capacità di elaborare i log in modo incrementale attraverso la sua archiviazione interna e scaricare i dati su disco. Funziona nel seguente modo:

  1. Un set di dati deve essere prima persistito con --persist, quindi lo stesso set di dati può essere caricato con.
  2. --restore. Se vengono passati nuovi dati (tramite pipe o attraverso un file di log), verranno aggiunti al set di dati originale.
NOTE

GoAccess tiene traccia degli inode di tutti i file elaborati (supponendo che i file rimangano sulla stessa partizione), inoltre estrae uno snippet di dati dal log insieme all'ultima riga analizzata di ogni file e il timestamp dell'ultima riga analizzata. Ad esempio: inode:29627417|line:20012|ts:20171231235059

Prima confronta se lo snippet corrisponde al log in fase di analisi, se corrisponde, presume che il log non sia cambiato drasticamente, ad esempio non sia stato troncato. Se l'inode non corrisponde al file corrente, analizza tutte le righe. Se il file corrente corrisponde all'inode, legge le righe rimanenti e aggiorna il conteggio delle righe analizzate e il timestamp. Come ulteriore precauzione, non analizzerà le righe di log con un timestamp ≤ di quello memorizzato.

I dati tramite pipe funzionano in base al timestamp dell'ultima riga letta. Ad esempio, analizzerà e scarterà tutte le voci in arrivo fino a quando non trova un timestamp >= di quello memorizzato.

Esempi
root@kitploit:~
// log di accesso del mese scorso
# goaccess access.log.1 --persist

poi, caricalo con

root@kitploit:~
// aggiungi il log di accesso di questo mese e preserva i nuovi dati
# goaccess access.log --restore --persist

Per leggere solo i dati persistenti (senza analizzare nuovi dati)

root@kitploit:~
# goaccess --restore

Contribuire ##Qualsiasi aiuto su GoAccess è ben accetto. Il modo più utile è provarlo e dare

feedback. Sentiti libero di utilizzare il tracker dei problemi di GitHub e le pull request per discutere e inviare modifiche al codice.

Puoi contribuire alle nostre traduzioni modificando i file .po direttamente su GitHub o utilizzando l'interfaccia visiva inlang.com

Buon divertimento!

Scarica lo strumento