Skip to content

GOACCESS è un piccolo tool di analisi da installare sul web server Linux che permette di monitorare in tempo reale i dati del log attraverso un report visibile sia via console SSH sia in un file HTML.

In un precedente articolo spiegavo perchè è importante analizzare il log del web server e come analizzarlo con Excel. Oggi vediamo COME analizzarlo in tempo reale con un piccolo software server-side chiamato GOACCESS.

Per installare GOACCESS devi avere accesso al web server via SSH con poteri root.


Installare GOACCESS

Ho creato questa guida mentre installavo GOACCESS sul mio server che è basato su Ubuntu e come web server usa NGINX. Per installazioni in ambienti diversi fai riferimento al sito ufficiale oppure al repository su Github.

Per installare GOACCESS su Ubuntu collegati via console SSH al tuo web server. Le seguenti istruzioni permettono di installare la versione più aggiornata del software.

#Official GoAccess' Debian/Ubuntu Repository
echo "deb http://deb.goaccess.io/ $(lsb_release -cs) main" | sudo tee -a /etc/apt/sources.list.d/goaccess.list
wget -O - https://deb.goaccess.io/gnugpg.key | sudo apt-key add -
sudo apt-get update
sudo apt-get install goaccess

# UBUNTU EASY INSTALL
apt-get install goaccess

Ora che hai installato GOACCESS è necessario configurarlo per aiutarlo ad interpretare il formato del log. Apache infatti ha un formato leggermente diverso da Nginx che a sua volta è differente da altri log.

Configurare GOACCESS

In particolare è necessario configurare il time-format, date-format e log-format. Queste istruzioni indicano a GOACCESS come leggere le stringhe del log ed estrarre l’orario, la data e le informazioni inserite nel log.

Il file di configurazione di GOACCESS lo trovi solitamente qui: /etc/goaccess.conf, a seconda del tipo di installazione che hai fatto lo puoi trovare anche in /usr/etc/ oppure /usr/local/etc/.

Per editare il file digita nella console SSH

sudo nano /etc/goaccess.conf

In base al tuo web server devi inserire i 3 parametri visti sopra. Per web server Nginx aggiungi queste tre righe oppure, se presenti, togli il commento “#”:

time-format %H:%M:%S
date-format %d/%b/%Y
log-format %h %^[%d:%t %^]  "%r" %s %b "%R" "%u" %T %^

Per web server Apache usa questa configurazione:

date-format %d/%b/%Y

# NCSA Combined Log Format
# For Non-Virtual Host Setups
log-format %h %^[%d:%^] "%r" %s %b "%R" "%u"

# NCSA Combined Log Format with Virtual Host
# For Virtual Host Setups
log-format %^:%^ %h %^[%d:%^] "%r" %s %b "%R" "%u"

Attenzione, togli il commento solo da un solo log-format in base alla tua installazione, non abilitarli entrambi!

Visualizzare il LOG in tempo reale via SSH

Ora sei pronto per lanciare GOACCESS e visualizzare i dati in tempo reale. GOACCESS nasce come tool da usare via SSH, quindi vediamo come visualizzare il log da console. Prima di tutto devi localizzare i tuoi log, nel mio ambiente li trovo sotto: /var/log/nginx/.

Ora che sappiamo dove si trova il log basta lanciare GOACCESS da riga di comando:

goaccess -f /var/log/nginx/access.log -a -m
  • Il parametro -f serve per indicare il percorso del file log
  • Il parametro -a permette di visualizzare gli user-agent
  • Il parametro -m abilita il mouse nella dashboard

Sostituisci il nome log con il tuo! Ricorda anche che il log in tempo reale è il più recente (access.log) ma nulla ti vieta di aprire un log precedentemente salvato (ad esempio access.log.3).

Nella dashboard sono presenti le informazioni critiche estratte dal log del web server:

  • Total Requests
  • Unique Visitors
  • Unique Files
  • Referrers
  • Valid Requests
  • Processed Time
  • Static Files
  • Log Size
  • Failed Requests
  • Excl. IP Hits
  • Unique 404
  • Bandwidth
  • Log File Location
  • Unique visitors per day – Including spiders
  • Requested Files (URL)
  • Static Requests
  • Not Found (URLs)
  • Visitors Hostname and IPs
  • Operating Systems
  • Browsers
  • Time Distribution
  • Referring SItes
  • Geo Location
  • HTTP Status Codes

I dati vengono aggiornati in tempo reale, lancia una scansione con Screaming Frog per verificare. Per navigare i dati della dashboard puoi usare i comandi rapidi:

  • F1/h: help
  • F5: refresh della finestra
  • q: per uscire da GOACCESS oppure per chiudere il modulo attivo
  • o/ENTER: espande il modulo evidenziato
  • 0-9 e Shift + 0: imposta il modulo attivo
  • j: Scroll down all’interno del modulo attivo
  • k: Scroll up all’interno del modulo attivo
  • c: cambiare lo schema di colori
  • ^ f: Scroll forward all’interno del modulo attivo
  • ^ b: Scroll backward all’interno del modulo attivo
  • TAB: passa da un modulo all’altro (avanti)
  • SHIFT + TAB: passa da un modulo all’altro (indietro)
  • s: opzioni del modulo attivo
  • /: cerca nel modulo via Regex
  • n: cerca la posizione della prossima ricorrenza
  • g: per muoversi al primo elemento della pagina
  • G: per muoversi all’ultimo elemento della pagina

Salvare il log in HTML

Nel caso non ti piacesse usare la dashboard via SSH puoi sempre esportare il report in HTML.

goaccess -f access.log -a > report.html

Devi specificare un path per il file HTML, che abbia i permessi giusti e che sia raggiungibile non solo da localhost. Nel mio caso la stringa è la seguente:

goaccess -f /var/log/nginx/access.log -o /home/user/www/miosito/report.html

Qui puoi vedere una demo del report HTML di GOACCESS.

Per aggiornare il report devi eseguire di nuovo il comando oppure creare un cronjob.

Aggiornare il report via crontab

Dalla console SSH digita

crontab -e

seleziona l’editor che preferisci (consiglio nano oppure vim) ed aggiungi una riga seguendo questa logica:

0 * * * * sudo goaccess -f /var/log/nginx/access.log -a > /home/user/www/miosito/report.html

Questo cronjob aggiorna il report ogni ora. Salva il link al report.html così potrai visualizzarlo aggiornato quando vorrai, senza dover accedere al server via SSH.

Visualizzare il LOG in tempo reale via HTML

GOACCESS permette anche di visualizzare un report in tempo reale semplicemente digitando questo comando:

goaccess -f /var/log/nginx/access.log -o /home/user/www/miosito/report.html --real-time-html --ws-url=host
  • Il parametro -o server per inviare l’output in un altro file (HTML, JSON oppure CSV).
  • Il parametro –real-time-html attiva il report in tempo reale.
  • Il parametro –ws-url è facoltativo, si usa per visualizzare il report su un host diverso dal server monitorato. Come attributo del parametro si inserisce l’indirizzo dell’host senza http.
Analisi log in tempo reale
Analisi log in tempo reale

Comandi Extra

Di seguito ho raccolto alcuni comandi da console che mi tornano utili per lanciare analisi filtrate del log del web server. Ricordati di modificare il percorso al tuo log file.

GOACCESS permette anche di esportare i report in JSON e CSV

Per generare il report in JSON:

goaccess -f access.log -a -d -o report.json 

Per esportare in CSV:

goaccess -f access.log --no-csv-summary -o report.csv

Tramite la funzione Grep è possibile filtrare, ad esempio, solo gli hit di Googlebot:

grep -i 'Googlebot' /var/log/nginx/access.log | goaccess -a

Per processare solo l’ultimo log:

goaccess -f /var/log/nginx/access.log -a -m

Per processare tutti i log storici:

zcat -f /var/log/nginx/access.log* | goaccess 

Per processare solo i dati di oggi:

sed -n '/'$(date '+%d\/%b\/%Y' -d 'today')'/,$ p' /var/log/nginx/access.log | goaccess -a -m

Per processare solo Googlebot:

grep -i 'Googlebot/2.1' /var/log/nginx/access.log | goaccess -a -m --color-scheme 2

Per processare solo pagine AMP:

grep -i '/amp/' /var/log/nginx/access.log | goaccess -a -m

Per processare solo una pagina:

grep -i '/inserisci-url-relativo/' /var/log/nginx/access.log | goaccess -a -m

Qui trovi altri esempi. Tu che software usi per monitorare il log del web server in tempo reale?

Articoli correlati

Autore

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Ultimi articoli aggiornati

Richiedi un preventivo SEO e Google Ads

Porta il tuo sito web al livello successivo con l’esperienza di EVE Milano. La nostra agenzia di Search Marketing ha ricevuto oltre 1187 richieste di preventivo, un segnale chiaro della fiducia che imprenditori e manager, come te, ripongono nella nostra specializzazione tecnica e verticale nella SEO e PPC. Se la tua organizzazione cerca competenze specifiche per emergere nei risultati di Google, noi siamo pronti a fornire quel valore aggiunto. Richiedi un preventivo ora e scopri la differenza tra noi e gli altri.
Richiedi un preventivo

Vuoi ricevere un avviso al mese con le nuove guide pubblicate?

Iscriviti alla newsletter!

Informativa sui cookies

Noi e terze parti selezionate utilizziamo cookie o tecnologie simili per finalità tecniche e, con il tuo consenso, anche per le finalità di esperienza e misurazione come specificato nella cookie policy. Puoi liberamente prestare, rifiutare o revocare il tuo consenso, in qualsiasi momento, accedendo al pannello delle preferenze. Il rifiuto del consenso può rendere non disponibili le relative funzioni. Usa il pulsante “Accetta” per acconsentire. Usa il pulsante “Rifiuta” per continuare senza accettare.