Guida all'Analisi delle Statistiche dei Siti con AWStats

Antezeta – Servizi di Statistiche per i Siti Internet

Scelta della soluzione, implementazione e formazione

Mettete un segnalibro a questa risorsa!

AWStats Logo

A cura di Sean Carlos
Pubblicato da O'Reilly Media come Analyzing Web Logs with AWStats.

Un aspetto cruciale, purtroppo troppo spesso trascurato, della gestione efficace di un sito Internet è lo studio delle attività che avvengono al suo interno. Le informazioni scoperte portano ad una comprensione delle dinamiche utile per le iniziative di miglioramento continuo che vanno dall'architettura del sito ai contenuto del sito stesso sino alla generazione del traffico. Questo articolo, suddiviso in due parti, mostra come utilizzare lo strumento open source AWStats per eseguire l'analisi dei log file di un web server. Nella prima parte è mostrato come preparare un log file campione, eseguire un'installazione di base d'AWStats, generare report e comprendere la terminologia propria della web analytics; la seconda parte si concentrerà invece sull'interpretazione dei report. L'intento principale è far chiarezza su alcuni dei fraintendimenti più comuni riguardo gli accessi, le pagine e le visite. La lezione fornirà le basi per configurare il programma in modo da soddisfare le richieste della produzione.

Installare AWStats

L'analisi dei web log può essere impegnativa per le risorse del server e viene eseguita, di solito, su un sistema diverso dal web server di produzione. Questa separazione permette anche di sfruttare la maggiore flessibilità offerta da una architettura eterogenea, in cui i web server potrebbero girare su Linux mentre gli analizzatori log funzionare sotto Windows o vice versa. Abbiamo immaginato uno scenario minimalista in cui si sia installato AWStats su una workstation per analisi ad hoc. Anche se AWStats funziona su qualsiasi piattaforma che supporti un interprete Perl recente, questo articolo fa riferimento a AWStats 6.4 con utilizzo di Linux o MS Windows.

File eseguibili per Linux (.rpm) e Windows (.exe) sono disponibili sul progetto AWStats. Per prima cosa occorre scaricare l'eseguibile appropriato per la propria workstation. Nel caso di un'installazione Windows, uno script chiederà le informazioni sul proprio ambiente web. È sufficiente rispondere con N per saltare questo passo, e premere Invio fino a quando la finestra di richiesta si chiuderà.

Una volta terminata l'installazione, i programmi e la documentazione AWStats saranno installati sul proprio disco rigido, probabilmente in /usr/local/awstats/ o C:\Program Files\AWStats. A questo punto assicurarsi che Perl sia disponibile. Sulla riga di comando del sistema, scrivere:

$ perl -v

Nel caso Perl sia installato saranno disponibili le informazioni relative versione corrente. AWStats si interromperà nel caso che la versione sia minore della 5.005_03; è consigliabile l'ultima versione (5.8.X), poiché offre migliori prestazioni. Per installare o aggiornare Perl, scaricare una versione per Linux da Perl per Linux o per Windows da ActivePerl d'ActiveState.

Preparazione di un log di un web server

Per produrre i report, occorre avere a disposizione i log di un web server di almeno un giorno. Se si sta utilizzando un server Apache, assicurarsi di avere impostato il formato logging del web server a Combinato. Nel caso del web server Microsoft IIS, impostare il formato su una versione modificata del W3C Extended Log File Format, seguendo le istruzioni in configurazione AWStats per IIS, Parte B, Passo 1. Queste configurazioni aggiungono alcuni dati necessari come user agent (browser) e referrer (provenienze accessi) alla configurazione di base. Per altri web server, consultare i valori del parametro AWStats LogFormat per ottenere una lista dei dati richiesti per una reportstica completa.

Riavviare dunque il web server per attivare le nove impostazioni del logging (dopo avere salvato i vecchi log, se necessario). Se si ha accesso ai dati di un web server di produzione che non si può riavviare, è possibile utilizzare i dati così come sono, con due condizioni: se alcuni dei dati richiesti, come browser, non sono tracciati, i relativi report AWStats saranno vuoti. Inoltre, occorrerà mappare manualmente ogni campo tracciato utilizzando il parametro LogFormat, altrimenti, la maggior parte del file apparirà ad AWStats come corrotto.

Una volta che il logging abbia funzionato per almeno un giorno di calendario, occorre copiare il file sul sistema su cui è installato AWStats, utilizzando la seguente sintassi:

$ cp /var/log/httpd/access_log /tmp/access.log

# o

> copy C:\WINDOWS\system32\Logfiles\W3SVC1\ex050623.log C:\temp\access.log

Adattare i percorsi di origine in base alla propria configurazione del web server.

È possibile combinare anche più log con date diverse utilizzando il commando type (Windows) o cat (Linux) (in un'impostazione di produzione, il nome del file sarebbe inserito in un parametro). Fare attenzione a combinare file in ordine cronologico:

$ cat logfile1 logfile2 logfile3 > access.log

Nel caso di più server in load balancing, unire i log con l'utilità AWStats logresolvemerge.pl.

Creazione di un file di configurazione AWStats

Con l'installazione di AWStats viene fornito un esempio di file di configurazione: awstats.model.conf. Copiare il file, cambiando model nel nome del dominio da analizzare. Solitamente viene utilizzato il nome del dominio, in realtà può essere qualsiasi cosa. L'esempio analizza i dati di antezeta.it, così il modello è antezeta:

$ cp /etc/awstats/awstats.model.conf /etc/awstats/awstats.antezeta.conf

> copy "C:\Program Files\AWStats\wwwroot\cgi-bin\awstats.model.conf"
    "C:\Program Files\AWStats\wwwroot\cgi-bin\awstats.antezeta.conf"

Aprire i file nell'editor di testo preferito, notepad.exe, vi o altro. Cambiare ognuno dei seguenti valori con quello corretto (in cui antezeta.it rappresenta il proprio dominio):

SiteDomain="antezeta.it"
HostAliases="antezeta.it localhost 127.0.0.1"
LogType=W

Mettere il parametro LogFormat a 1 per Apache, 2 per Microsoft IIS < 6.0, o date time cs-method cs-uri-stem cs-username c-ip cs-version cs(User-Agent) cs(Referer) sc-status sc-bytes per IIS 6.x. Per altri web server, consultare la documentazione nel file di configurazione AWStats.

LogFormat=1

Mettere il parametro DNSLookup a 1 a meno che il web server non sia già impostato per la risoluzione degli indirizzi IP con i nomi degli Host (reverse DNS lookup), cioè, traducendo l'indirizzo IP ospite in user34.adsl.myisp.com o simile. Dal momento che la risoluzione del DNS è lenta, i web server, di solito, non la eseguono, poiché rallenterebbe la navigazione degli utenti.

DNSLookup=1

Salvare il file.

Costruire ed aggiornare la base dati Statistica di AWStats

AWStats utilizza dei database intermedi per produrre i propri report; uno per ogni mese di ogni anno per ogni file di configurazione creato. Questi file rappresentano una versione ottimizzata dei dati dei web log grezzi, basata sulle impostazioni nel file di configurazione AWStats. Per generare un file per i log file del proprio web server occorre eseguire il comando appropriato per il proprio sistema operativo (sostituire antezeta con il proprio dominio):

$ perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -config=antezeta 
    -update -LogFile=/tmp/access.log

> perl "C:\Program Files\AWStats\wwwroot\cgi-bin\awstats.pl" -config=antezeta 
    -update -LogFile=C:\temp\access.log

Si vedrà una schermata simile al seguente esempio Windows:

Update for config "C:\Program Files\AWStats\wwwroot\cgi-bin\awstats.antezeta.conf"
With data in log file "C:\temp\access.log"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Jumped lines in file: 0
Parsed lines in file: 539
 Found 1 dropped records,
 Found 4 corrupted records,
 Found 0 old records,
 Found 534 new qualified records.

Sarà generato un file di statistica awstatsMMAAAA.antezeta.txt nella stessa cartella come awstats.pl (a meno che non si abbia indicato un valore diverso a DirData in awstats.antezeta.conf):

Directory of C:\Program Files\AWStats\wwwroot\cgi-bin\
06/23/2005 03:51 PM 6,633 awstats062005.antezeta.txt

dove MM è il mese e AAAA l'anno dei dati dei log del web server. Nel caso in cui i dati siano a cavallo di due mesi, la base dati statistica sarà composta da due file.

Eseguendo di nuovo il comando precedente verrà generata l'opportuna base dati per le statistiche. Invece di 534 nuovi record, se ne avranno 534 vecchi:

Update for config "C:\Program Files\AWStats\wwwroot\cgi-bin\awstats.antezeta.conf"
With data in log file "C:\temp\access.log"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Jumped lines in file: 0
Parsed lines in file: 539
 Found 1 dropped records,
 Found 4 corrupted records,
 Found 534 old records,
 Found 0 new qualified records.

AWStats si accorge che è stato specificato un fileio vecchio e, correttamente, ignora i vecchi dati. Tuttavia AWStats è meno flessibile quando viene a trattare log file non ordinati – pertanto occorre elaborarli cronologicamente. Se si salta l'elaborazione di un giorno, AWStats li ignorerà quando si tenta di elaborarli dopo avere elaborato i giorni successivi. La soluzione è di cancellare il file di quel mese e rielaborare i dati dei log per l'intero mese fino all'ultimo giorno disponibile per quel mese. Allo stesso modo, alcuni cambiamenti al file di configurazione AWStats influiscono sulla generazione del file di statistiche. Se i file di log non sono grandi e si hanno dei dubbi, è possibile cancellare l'archivio di statistica e rielaborare i log.

Suggerimenti per Log Corrotti

Suggerimento per la conservazione dei log

La conservazione dei file di log originali per periodi estesi è una buona norma, a meno che non ci siano vincoli legali o una politica aziendale contraria. L'accesso ai log storici permette di rielaborare i report se successivamente viene fatto un cambiamento del file di configurazione o si decide di passare ad un altro analizzatore per le statistiche web.

Produzione dei primi Report

Dopo aver creato una base dati statistica, è possibile creare i report. Dal momento che AWStats ha una buona interfaccia CGI per la reportistica su richiesta, è facile elaborare report Html statici per evitare la necessità di riconfigurare il proprio web server. I seguenti comandi genereranno i report nella cartella /tmp o C:\temp:

$ perl "/usr/local/awstats/tools/awstats_buildstaticpages.pl"
    -config=antezeta -lang=en
    -awstatsprog="/usr/local/awstats/wwwroot/cgi-bin/awstats.pl"
    -dir="/tmp"
    -diricons="/usr/local/awstats/wwwroot/icon"

> perl "C:\Program Files\AWStats\tools\awstats_buildstaticpages.pl"
    -config=antezeta
    -lang=en -awstatsprog="C:\Program Files\AWStats\wwwroot\cgi-bin\awstats.pl"
    -dir="C:temp" -diricons="../Program%20Files/AWStats/wwwroot/icon"

AWStats genera i report Html nella cartella specificata dal parametro -dir; il file principale è awstats.config.html (per questo esempio, awstats.antezeta.html). Aprirlo in un browser Web.

Suggerimento per le immagini incluse nei report

Se le immagini dovessero essere trasparenti invece che colorate, verificare il percorso specificato con il parametro -diricons. Questo valore è inserito nei file Html. Nell'esempio per Windows indicato sopra abbiamo dovuto codificare lo spazio nel nome del percorso con la notazione %20. Abbiamo utilizzato anche barre inclinate Html piuttosto che barre inverse Windows.

I report fondamentali: Accessi, Pagine, Sessioni e Visitatori

Per contestualizzare i report, cominciamo con il guardare i dati grezzi di un log e, da quello, definiamo la terminologia di base per la web analytics.

Anatomia di un log file di un web server

Utilizzando il formato di configurazione specificato prima, ogni web log avrà più righe di testo, ciascuna contenente nove campi di dati. Per capire il lavoro che AWStats deve eseguire, consideriamo l'aspetto di un log file:

Tabella 1. Esempio (di una riga) di un log da un web server.
  Campo Esempio di dati Spiegazione
1 IP Host (utente) d81-211-134-62.cust.tele2.it C'è stata una risoluzione DNS. Il web server può farlo, ma è possibile farlo anche successivamente. Visto l'host dell'utente, c'è una forte probabilità che la richiesta provenga dall'Italia. (Tuttavia, se l'host risultasse ad esempio proxy.alitalia.it, l'utente potrebbe aver lavorato per Alitalia a Boston!)
2 1413 identità (nome utente) RFC del cliente determinato da identd. Raramente utilizzato. I clienti PC non eseguono, di solito, identd. Un trattino indica l'assenza di un valore.
3 Utente autenticato (nome del login) Il nome del login per un login richiesto al web server. Di solito, non è valorizzato – la maggior parte dei siti web utilizzano login di application server, non login di web server.
4 La data e l'ora quando il server ha finito l'elaborazione della richiesta [08/Jun/2005:19:03:22 +0200] Il tempo include l'offset UTC
5 La richiesta dell'utente GET/HTTP/1.1 In questo caso, il client ha richiesto il documento di default / (index.html) utilizzando il metodo GET della versione 1.1 di protocollo HTTP.
6 Lo Stato della risposta inviato al client 200
  • 1xx – Informativo
  • 2xx – Successo
  • 3xx – Reindirizzamento
  • 4xx – Errore client
  • 5xx – Errore server
7 I byte inviati escludendo le testate HTTP 4544  
8 Referer (sic) URL, se ce n'è uno https://antezeta.it/chisiamo.html L'URL da cui il client ha ottenuto la richiesta. Questo campo è vuoto se l'utente immette direttamente un URL, sceglie un segnalibro, o utilizza un software di privacy che impedisce che le informazioni vengano inviate.
9 Identificazione User Agent. Comprende, di solito, il sistema operativo, il browser e le relative versioni. Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050513 Fedora/1.0.4-1.3.1 Firefox/1.0.4 Questo è un browser Firefox, versione 1.0.4, su un sistema Linux Fedora Core. Nota: alcuni browser, come Opera, permettono all'utente di scegliere quale identificazione inviare. Un utente può fare sembrare di utilizzare Microsoft Internet Explorer 6 anche quando utilizza Opera. Questa funzionalità di impostore è una risposta a tutti i siti progettati male – siti con la sigla "Ottimizzato per browser x" che rifiutano di lavorare con i browser conformi agli standard web.

Questa era una riga del log di un web server corrispondente a una richiesta soddisfatta per https://antezeta.it/. Rappresenta quello che viene comunemente chiamato un accesso. Un utente anonimo ha navigato partendo dalla pagina https://antezeta.it/chisiamo.html.

Accessi Ovunque

Occorre considerare che la pagina Home del sito nell'esempio sopra è costituita in realtà da un gruppo di file – un file di testo (index.html), un foglio di stile per indicare la formattazione (CSS), sei file d'immagine (gif, ico e png) e del codice dinamico lato client (JavaScript) memorizzato in due file separati sul web server. Con una semplice richiesta per la pagina home si innescheranno dieci richieste di file al web server, e così dieci accessi:


Tabella 2. Accessi innescati da una richiesta per la home di un sito
Qtà

Articolo

1 File di testo Html; ad esempio, index.html
1 Le istruzioni di formattazione memorizzate nel CSS
6 Le immagini memorizzate in file GIF, ICO, e PNG
2 Il codice JavaScript js
10 Accessi Totali

Probabilmente la misura più gettonata, gli accessi, è anche la misura meno significativa.

Accesso
Un accesso è una richiesta che ha avuto esito positivo di un oggetto residente sul web server. In caso di successo viene rimandato, di solito, un codice di stato 200 o, per gli oggetti identici a quelli già nella cache del browser dell'utente, il codice 304.

Insieme al consumo di banda, la misura degli accessi può essere utile per il dimensionamento del server e la pianificazione della capacità richiesta. Mentre il numero di accessi viene spesso citato come misura di successo di un sito, è fondamentale notare che gli accessi non hanno nessun valore intrinseco al business. Al contrario, indicano probabilmente soltanto una scarsa comprensione della loro significatività commerciale.

Passiamo alle Pagine

Poiché Internet è maturato, l'attenzione si è spostata dalla misura degli accessi a quella delle pagine viste. Sfortunatamente, questo nuova attenzione ha aperto un nuovo vaso di Pandora dal momento che non esiste alcuna definizione standard di pagina. Un log file di un web server contiene semplicemente informazioni sugli oggetti richiesti al web server. Dipende dal software di analisi dei log file dare un significato semantico a quegli oggetti.

Pagine
Generalmente una pagina è un insieme di contenuti che un utente ha esaminato, come un file Html, un documento proveniente da un elaboratore di testi, o un file Adobe Acrobat PDF.

AWStats, nella definizione di una pagina, lavora per esclusione. Per default, qualsiasi oggetto richiesto da un utente sul web server è una pagina a meno che non abbia un nome di file con un suffisso di css, js, classe, gif, jpg, jpeg, png, bitmap o ico. Occorre esplicitamente aggiungere qualsiasi altro oggetto che non si vuole contare come pagina nei report di AWStats. Ad esempio, per aggiungere i file ZIP e le animazioni Flash a questa lista è sufficiente inserire i loro suffissi nella direttiva AWStats NotPageList nel file di configurazione di AWStats:

NotPageList="css js class gif jpg jpeg png bmp ico swf zip tgz gz tar"

Quindi AWStats conterà ogni oggetto non compreso nella lista seguente come pagina.

Tabella 3. File non contati come pagine
Suffisso Descrizione
css Fogli di Stile a Cascata
js Codice JavaScript
class File di programma Java
gif, jpg, jpeg, png, e bmp Formati vari di immagini e fotografie
ico File icona ; molti siti hanno un logo di società salvato come favicon.ico;; molti browser utilizzano questo per i segnalibri (preferiti) e le etichette
swf Animazione Flash ShockWave
zip, tgz, gz, e tar Formati file compressi creati da PKZip, WinZip, tar, gzip o simili

Uno dei vantaggi di questo tipo di approccio è che, se si sta utilizzando un CGI per generare pagine dinamiche, non occorre preoccuparsi della gestione di ogni richiesta CGI come se fosse una pagina – questo sarà automatico.

Suggerimenti per il Conteggio delle Pagine

Visitatori e Sessioni

Come il concetto di pagina è aperto a molteplici interpretazioni, così il concetto di visitatore (e una visita, è anche detta sessione) è ancora più difficile da definire. I dati dei log non definiscono né tracciano l'entità visitatore. Si possono utilizzare numerosi approcci euristici per estrapolare i visitatori singoli dai dati dei log; ognuno aggiunge un piccolo di miglioramento.

Visitatore
Per convenzione, un visitatore è almeno l'indirizzo IP (l'ospite) da cui provengono le richieste. Molti strumenti commerciali utilizzano i cookie per aumentare la precisione di questo approccio. AWStats non utilizza ancora i cookie per aumentare la precisione di riconoscimento dei visitatori, anche se è un miglioramento richiesto spesso. Forse un programmatore Perl, leggendo queste note, raccoglierà la sfida.
Visita
Una visita costituisce tutta l'attività verificatasi senza un'interruzione di più di 30 minuti. Così, se si richiede una pagina e quindi si aspettano 29 minuti prima di richiederne una nuova, entrambe le richieste di pagina cadranno durante la stessa visita (o sessione). Tuttavia, se si richiede la pagina successiva 30 minuti e un secondo più tardi, questa verrà conteggiata come una nuova visita. AWStats attualmente conteggia un'interruzione di sessione del visitatore dopo 60 minuti. Speriamo che tale valore possa essere configurabile in una versione futura.
Sessione
Sinonimo di visita.
Visitatori unici
Il conteggio di visitatori, dopo che le visite ripetute sono state eliminate.
Visitatori autenticati
Gli utenti che si sono connessi con un nome utente e una password. Questo può essere un login al web server o un login a livello di application server. Strumenti d'analisi di web log come AWStats tracciano i login di tipo web server anche se il login a livello di application server è il più comune.

Alcuni problemi significativi sono inerenti alla registrazione dei dati dei visitatori e alle loro visite con software d'analisi dei web log come AWStats.

Malgrado queste limitazioni degli approcci euristici, il concetto di visitatori e le sessioni (ogni singola visita) rimangono strumenti validi come indicazioni di comportamento degli utenti e delle tendenze generali.

Tabella 4. Visite e Visitatori Unici
N. di visitatore Visite (sessioni) Visite uniche
1 2 1
2 1 1
3 12 1
3 15 3

Banda Utilizzata

La banda utilizzata interessa il personale tecnico, poiché c'è, di solito, un costo associato alla sua occupazione. A livello più macroscopico, le grandi dimensioni dei singoli file causeranno problemi di prestazioni, specialmente per utenti che facciano uso di modem.

Banda utilizzata
La dimensione totale del file inviato dal web server all'utente finale. Questo non comprende le intestazioni Http fornite dal web server, le intestazioni della richiesta Http degli utenti, né i byte necessari per i protocolli di rete sottostanti.

La parte finale di questa serie riguarderà i report che abbiamo elaborato, utilizzando le definizioni di cui sopra per identificare metriche da monitorare sia dal punto di vista del proprio business sia per gli aspetti tecnici.

Indice completo

  1. Guida all'Analisi delle Statistiche dei Siti con AWStats
    1. Installare AWStats
    2. Preparazione di un log di un web server
    3. Creazione di un file di configurazione AWStats
    4. Costruire ed aggiornare la base dati Statistica di AWStats
      1. Suggerimenti per Log Corrotti
      2. Suggerimento per la conservazione dei log
    5. Produzione dei primi Report
      1. Suggerimento per le immagini incluse nei report
    6. I report fondamentali: Accessi, Pagine, Sessioni e Visitatori
      1. Anatomia di un log file di un web server
      2. Accessi Ovunque
      3. Passiamo alle Pagine
      4. Suggerimenti per il Conteggio delle Pagine
      5. Visitatori e Sessioni
      6. Banda Utilizzata
      7. Relazioni AWStats "Sommari" e "Quando"
      8. Provenienza degli Utenti: Costruzione e Verifica del Traffico
        1. Accessi diretti o via segnalibro
        2. Utilizzo dei motori di ricerca
        3. Accessi da pagina esterna
        4. Provenienza geografica
      9. Relazioni sul comportamento dei visitatori nel sito
      10. Relazione per lo sviluppo e gestione dei siti
      11. Relazioni AWStats di Attività non Umane
        1. Ragni/spider dei motori di ricerca
        2. Attrezzi per scaricare ed uso locale (off-line)
        3. Attacchi
        4. Programmi di Verifica e Controllo
        5. Una nota sulla misurazione del traffico non-umano ed i sistemi con pagine etichettate
    7. Ultime Parole
      1. Consigli finali
    8. Risorse addizionali
      1. Opzioni per l'Assistenza
      2. Linee guida di misurazione
      3. Ragni Conosciuti
      4. Caching web
      5. Stumenti open source alternativi all'analisi di log web
      6. AWStats è grazie a...

Lascia che Antezeta ti aiuti nella selezione, implementazione ed utilizzo di una soluzione per i tuoi Web Analytics! Contattaci per saperne di più su Statistiche Internet - Web Analytics e sul resto dell'ecosistema web.

Home · Contattaci · Mappa e Ricerca nel sito · Tasti di scelta rapida ‹k› · Su ‹j›