Analisi dei log: le informazioni che si ricavano sui vostri visitatori dai log del web server

Il sistema operativo del computer deve di solito eseguire diversi processi contemporaneamente per permettere così al computer di funzionare correttamente. La maggior parte di questi task avviene perciò in background senza che l’utente se ne accorga. Questi eseguono automaticamente il protocollo in file di protocollo specifici, indicati come file di log o semplicemente log, per consentire che le azioni dei programmi eseguiti siano perciò registrabili.

In questi file sono registrate precise attività ed eventi della relativa applicazione, come messaggi di errore, modifiche delle impostazioni, accessi al programma o rapporti sulle interruzioni. Gli utenti avanzati possono quindi estrapolare dai file informazioni sulla funzionalità e cimentarsi in modo mirato nella ricerca di errori. Se si analizzano i log di un web server, si possono ottenere nel frattempo anche informazioni sul comportamento generale dei visitatori della pagina. In questo caso si parla di analisi dei log.

Che cos’è un’analisi dei log?

L’analisi dei file di log, conosciuta anche come analisi dei log, indica il procedimento dell’ispezione mirata e dell’analisi del file. Questo metodo serve ad esempio a rintracciare un errore di trasmissione del database e dell’e-mail o a verificare le attività del firewall. Spesso viene utilizzato anche nell’ambito dell’ottimizzazione per i motori di ricerca. Chi infatti si dedica all’analisi dei log del server, può ottenere così delle informazioni utili sui visitatori e sulle loro attività. Dando uno sguardo ai log del web server, possono ad esempio venire svelati i seguenti dati utente:

  • L‘indirizzo IP e il nome host
  • La data e l‘ora dell’accesso
  • Il browser utilizzato dal visitatore
  • Il sistema operativo utilizzato dal visitatore
  • Il link di provenienza, cioè l’URL
  • Il motore di ricerca utilizzato comprensivo delle keyword ricercate
  • Il tempo di permanenza sul sito
  • Il numero delle pagine aperte
  • L’ultima pagina aperta prima di lasciare il sito

Visto che l’analisi manuale dei log è praticamente impossibile, data la presenza di innumerevoli dati, esistono diversi tool di analisi che presentano visivamente le informazioni rilevanti dei log. Il compito degli analisti rimane quindi quello di tirare le giuste conclusioni dai dati visualizzati. In aggiunta alla verifica dei visitatori del sito, i log del web server servono anche a constatare gli errori tecnici (della rete, delle applicazioni o dei singoli componenti), i problemi di sicurezza e gli accessi automatizzati tramite robot.

Analisi dei log del web server: problemi tipici e possibili soluzioni

Il problema più grande dell’analisi dei log del web server consiste nel fatto che l’HTTP è un protocollo senza stato: il protocollo di trasmissione, che è responsabile per la comunicazione tra il server e il client, si occupa così di ogni richiesta separatamente. Di conseguenza il web server assegna a due diverse richieste di apertura della pagina, provenienti da un unico client, anche due diverse istanze, cosa che è poco pratica per l’analisi del comportamento generale di un utente. Ci sono diverse soluzioni per aggirare questa situazione:

1. Assegnazione di un session ID: nel caso di un session ID, ovvero in italiano un ID di sessione, si tratta di un numero generato lato server che viene memorizzato sul browser dell’utente. Se al visitatore viene assegnato uno di questi numeri di identificazione, tramite questo vengono effettuate tutte le richieste fatte al web server. Tutte le azioni vengono perciò condensate in un’unica sessione. Per l’assegnazione del session ID esistono due possibilità: la prima è quella di pensare all’uso di cookie che vengono memorizzati dopo la prima richiesta fatta al client e che vengono trasmessi contestualmente per ogni altro contatto con il server. Tuttavia i cookie non sono visibili nel file di log e presuppongono perciò una speciale programmazione per un’analisi successiva. Invece, la seconda è quella di trasmettere l’ID di sessione come parametro URL. Per questi link specifici per gli utenti è però richiesto un impegno maggiore di programmazione. Anche dal punto di vista SEO si riscontrano problemi affidandosi a URL personalizzati. Lo stesso contenuto risulta, a ogni visita del crawler, raggiungibile da un altro URL, perciò potrebbe venire ben presto visto come contenuto duplicato.

2.Identificazione utente tramite indirizzo IP: se tutte le azioni di un utente sono riconducibili allo stesso indirizzo IP, possono essere identificate in questo modo in maniera univoca. Secondo l’opinione di molti esperti della privacy, il prerequisito per fare ciò, sarebbe però quello che l’utente abbia acconsentito preliminarmente alla raccolta del suo indirizzo IP completo a scopi di analisi. Sorgono sempre problemi con questo metodo di raccolta quando ai visitatori viene assegnato un IP dinamico, che cambia continuamente e viene così contato più volte o quando più utenti agiscono con lo stesso IP, ad esempio perché si appoggiano a un proxy.

3.Ricorso a misure indipendenti dal server: i cosiddetti pixel tag, componenti di base del Page Tagging, che vengono inseriti nel sito senza che l’utente se ne accorga, forniscono informazioni avanzate, ad esempio sulla risoluzione dello schermo e i plug-in installati sul browser. Combinando queste informazioni a quelle relative all’indirizzo IP, al browser e al sistema operativo, è quindi possibile differenziare meglio gli utenti, seppur sempre in misura limitata. Tuttavia si può fare un tracking grazie a widget pixel ed elementi AJAX. Nel caso di una semplice analisi dei file di log, non ricevete nessuna informazione in particolare sugli utenti.

Un altro problema dell’analisi dei log è la funzione di caching del browser e dei proxy impostati, decisivi per una consegna veloce dei dati richiesti, ma che sono anche responsabili del fatto che gli utenti non entrano sempre in contatto con il web server. Le richieste che coinvolgono i contenuti memorizzati nella cache, appaiono di conseguenza solo in maniera limitata (codice di stato 304 “Not modified”) nei log del server.

Infine è anche da menzionare il fatto che per la protocollazione permanente, la memorizzazione e l’analisi degli accessi server servono delle risorse aggiuntive, in particolare nei progetti web che registrano molti visitatori. Inoltre mancano nell’analisi dei log cifre importanti come la frequenza di rimbalzo o il tempo di permanenza dei visitatori, perciò dovrebbe essere utilizzato solo in aggiunta ad altri strumenti di verifica e non come unico metodo di analisi dei visitatori.

Analizzare i file di log: come funziona

Per riuscire a capire come funzioni un’analisi dei log, si dovrebbe prima di tutto dare un’occhiata ai contenuti e alla struttura di un simile file di log. A questo scopo, ad esempio, è necessario il log di un web server Apache che prende il nome di access.log e che viene automaticamente generato nella cartella apache.

Le informazioni che fornisce il log di Apache

Le voci create sono salvate nel cosiddetto Common Log Format (chiamato anche NCSA Common log format), che presenta la seguente sintassi:

%h %I %u %t "%r" %>s %b

I singoli componenti rappresentano le seguenti informazioni:

%h Indirizzo IP del client
%I Identità del client che in genere non viene rilevata. Perciò spesso in questo punto si trova un meno (-), volto a contrassegnare un’informazione mancante nei log.
%u ID utente del client che ad esempio viene assegnato in presenza di una cartella crittografata con autentificazione HTTP; in genere non assegnato.
%t Marca temporale della data e ora di accesso.
%r Informazioni sulla richiesta HTTP (metodo, risorse richieste e versione di protocollo)
%>s Codice di stato con il quale il server ha reagito alla richiesta
%b Quantità di dati trasmessi in byte

Quindi una voce completa nel file access.log si presenta così:

203.0.113.195 - user [07/Oct/2016:10:43:00 +0200] "GET /index.html HTTP/2.0" 200 2326

In questo caso il client con l’indirizzo IP 203.0.113.195 e user ID user ha aperto il file index.html il 7 ottobre 2016 alle 10.43 e per fare ciò ha utilizzato HTTP/2.0. Il server ha risposto con il codice di stato 200 (richiesta elaborata correttamente, il risultato viene trasmesso) e ha trasmesso 2326 byte.

Inoltre si può ampliare il file httpd.conf con altre due informazioni, aggiungendo al formato di log entrambi i componenti \"%{Referer}i\" e \"%{User-agent}i\". In questo modo scoprite tramite quali link (Referrer) e quindi da quale pagina i visitatori hanno raggiunto il vostro sito, oltre a comprendere quale client e quale sistema operativo utilizzino. Grazie a queste ultime informazioni, questo Combined Log Format consente anche la verifica di applicazioni esterne che aprono i dati dal vostro web server, come ad esempio i programmi di posta elettronica e i grafici integrati, ma anche i crawler dei motori di ricerca e gli spam bot. Trovate maggiori informazioni sulle proprietà dei log nel nostro articolo introduttivo sul tema.

I tool consentono l’analisi delle voci dei log

Se disponete dei permessi necessari per accedere ai file di log del vostro web server, è teoricamente possibile verificare i singoli accessi client al vostro progetto manualmente e senza ulteriori programmi che vengano in vostro soccorso. Ma prendiamo il caso che il vostro sito abbia circa 1.000 visitatori al giorno che aprono in media 10 pagine, generando così giornalmente anche 10.000 nuove voci di log, senza contare la visualizzazione dei contenuti integrati: una quantità simile è difficile da poter analizzare manualmente. Quindi per l’analisi dei log avete bisogno di strumenti con i quali poter esportare e segmentare i dati.

Considerando la facile comprensibilità delle informazioni contenute nei log, si adattano per la loro analisi programmi comuni di elaborazione dati come Microsoft Excel: per fare questo convertite il log nel formato CSV e infine importate i file, come descritto nelle seguenti istruzioni di Microsoft. Su Excel strutturate le informazioni sulle richieste raccolte e ordinatele, ad esempio, a seconda dell’indirizzo IP, del codice di stato o dei referrer. Visto che ci sono limitazioni per quanto riguarda le dimensioni dei log importati, i risultati dell’analisi dei log su Excel rappresentano però sempre delle istantanee, quindi sono dei dati provvisori relativi a un momento preciso.

Per condurre nel lungo periodo analisi del vostro traffico dati grazie ai file di log, si consiglia perciò l’uso di un analizzatore di log. A differenza dei programmi di calcolo, questi tool sono infatti stati sviluppati specificatamente per la rappresentazione grafica e l’analisi dei file di log. I dati citati sopra, che possono essere desunti dai log, vengono visualizzati nelle dashboard, che si aprono da un qualsiasi browser; ciò avviene in parte quasi in tempo reale, come ad esempio nel caso del tool open source GoAccess, che vi abbiamo presentato in un altro articolo.

Analisi dei log e la questione privacy

Un’analisi dei log che comprende i dati dei visitatori del sito, tocca sempre anche aspetti legati alla protezione dei dati personali e in questo contesto sono da evidenziare soprattutto due aspetti: da una parte il processo di analisi punta alla possibilità di salvare tutti i dati rilevati sul proprio server. Se il vostro web server, e quindi i file di log a esso collegato, si trova su un provider esterno, dovreste informarvi bene su quali servizi sono offerti per garantire la protezione dei dati.

È importante che i server si trovino all’interno dell’UE, meglio ancora se in Italia. Comunque è indispensabile che garantiscano l’integrità dei dati e che proteggano in maniera adeguata la sfera privata dei loro visitatori. Nel caso dei tracking tool come Google Analytics vengono sempre sollevati dei dubbi a tal proposito, non in ultimo per via del dato di fatto che tutte le informazioni utente vengono memorizzate sui server dell’azienda, che si trovano per la maggior parte negli USA.

Il secondo punto più importante riguarda la questione relativa al riferimento alle persone nell’analisi dei dati raccolti nei log. Mentre i dati quali l’orario di accesso, le pagine visitate o il browser usato rivelano poche informazioni sulla persona, la situazione cambia quando si tratta dell’indirizzo IP registrato: soprattutto nel caso di indirizzi IP statici, gli esperti della privacy criticano la possibilità, almeno teorica, di poter risalire all’utente. Per evitare quindi di incorrere in eventuali questioni, in generale si consiglia ai webmaster di salvare gli indirizzi in forma anonima e di eliminarli nel giro di una settimana, a patto che non sussista un obbligo di conservazione imposto dalla legge.

Chi vorrebbe analizzare i propri log, non ha però questa opzione, perché l’anonimizzazione dei dati impedirebbe di poter far risalire le diverse azioni a un singolo utente. Per andare sul sicuro, i gestori dei siti dovrebbero informare gli utenti della raccolta dell’indirizzo IP e di altri dati sensibili a scopi di analisi.

Analizzare i file di log del server: una solida base per la vostra analisi web

La registrazione dei dati utente fa parte dei mezzi più importanti per misurare il successo del proprio sito web.  Solo chi osserva lo sviluppo del traffico e il comportamento dei visitatori regolarmente, può modulare la sua offerta su misura per il pubblico di riferimento. A differenza del tracking che avviene grazie a tool come Piwik e Google Analytics, l’analisi dei log si basa sui dati che riceve di solito il server e senza dover ricorrere a JavaScript. I dati possono quindi essere registrati, anche se l’utente blocca il linguaggio di scripting.

Tuttavia, questo vantaggio è anche legato a piccole limitazioni: mentre risulta possibile l’assegnazione dei singoli accessi a sessioni utente specifiche, anche se è essenzialmente più complessa rispetto al tracking con i cookie, nell’analisi dei log mancano alcuni dati come la frequenza di rimbalzo o l’esatto tempo di permanenza dei visitatori.

Inoltre si dimostra difficile il caching dei client. Ciò consente di effettuare richieste utente anche senza contattare il server, richieste che compaiono solo nel log del web server in forma ridotta, così come è il caso degli indirizzi IP, che evitano una concreta assegnazione dei diversi accessi ai singoli utenti. I risultati di un’analisi dei log vanno perciò compresi in relazione alla situazione attuale e, a seconda delle dimensioni del vostro progetto, è necessario utilizzare in aggiunta altri metodi di analisi.

Se vi occupate voi stessi dell’hosting e dell’analisi dei log e informate i vostri visitatori del fatto che rilevate il loro indirizzo IP e altri dati, potete allora procedere con la valutazione del comportamento degli utenti, sapendo di poter contare su di una base solida e conforme alle norme di protezione dei dati. L’analisi dei log risulta di grande utilità specialmente per distinguere tra il traffico Mobile e desktop, oltre che per la comprensione da parte dei bot, come il crawler di Google.