[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico] [volume] [parte]
Nella gestione di un sito che offre i suoi servizi attraverso il protocollo HTTP, può essere importante l'analisi dei file delle registrazioni del servente HTTP, per ottenere delle statistiche sugli accessi. L'analisi quotidiana di queste statistiche consente di capire meglio cosa cerca il pubblico e che tipo di reazione si ottiene a seguito di iniziative che fanno capo al proprio sito.(1)
Dal momento che il protocollo HTTP è privo di stato, ogni operazione elementare inizia e conclude una connessione TCP, che può essere annotata nel file delle registrazioni del servente HTTP. Fortunatamente, i serventi più comuni utilizzano delle annotazioni abbastanza compatibili. L'esempio seguente riguarda alcune righe scritte dal servente Boa; si osservi che le righe appaiono spezzate per motivi tipografici:
127.0.0.1 - - [31/Aug/2002:14:01:22 +0000] "GET / HTTP/1.1" 304 0 "-" (segue) |
Si comincia dalla prima per osservare che si tratta di un accesso con una richiesta secondo il metodo GET, che ha origine dall'indirizzo 127.0.0.1 (localhost
). Per la precisione, è stata prelevata la risorsa corrispondente a http://host/
. Se si osserva attentamente, si può vedere che non esiste un punto di riferimento precedente; ovvero, l'indirizzo è stato ottenuto da un segnalibro oppure è stato scritto direttamente dall'utente:
|
Continuando l'osservazione dell'esempio, si può vedere che a partire da http://localhost/
è stata raggiunta la risorsa http://host/a2/dist/CD2/HTML/a2.html
; evidentemente, da http://localhost/
c'è un riferimento ipertestuale che punta proprio a http://host/a2/dist/CD2/HTML/a2.html
. Il terzo record indica il prelievo del foglio di stile http://host/a2/dist/CD2/HTML/a2.css
, a partire da un riferimento contenuto in http://dinkel.brot.dg/a2/dist/CD2/HTML/a2.html
; in pratica, si intuisce che la pagina http://dinkel.brot.dg/a2/dist/CD2/HTML/a2.html
contiene il riferimento a quel foglio di stile che deve essere caricato dal navigatore. Infine, gli ultimi due record indicano il prelievo di due file JPG, senza un referente apparente; in realtà, si tratta di immagini richieste dalla pagina http://dinkel.brot.dg/a2/dist/CD2/HTML/a2.html
, ma questa volta il programma di navigazione non lo ha fatto vedere al servente.
L'informazione sull'indirizzo referente, ovvero sull'indirizzo di partenza, permette di comprendere l'importanza che può avere il riferimento fatto da qualcun altro verso le pagine del proprio sito. In altri termini, Tizio che indica nelle sue pagine un riferimento a un certo sito esterno, fa una cortesia a quel sito, che può essere valutata nel numero di accessi che in questo modo vi vengono convogliati.
Tuttavia, le informazioni generate dal servente HTTP non sono sempre così dettagliate; spesso manca l'indicazione dell'indirizzo referente, a meno di richiedere espressamente tali notizie nella configurazione. L'esempio seguente riguarda una porzione della configurazione di Apache, in cui si dichiara il dominio virtuale linuxdidattica.org
e gli si associa un file di registrazioni specifico (/var/log/apache/linuxdidattica.org-access.log
) con tutte le informazioni che Apache è in grado di dare:
<VirtualHost 62.152.34.13> Servername linuxdidattica.org DocumentRoot /home/www/linuxdidattica.org CustomLog /var/log/apache/linuxdidattica.org-access.log full </VirtualHost> |
Il fatto di poter ottenere un file delle registrazioni separato per gli accessi a un dominio virtuale, oppure a un ramo del proprio sito, diventa importante, proprio per facilitare il lavoro successivo di lettura delle statistiche.
Eventualmente, se non è possibile ottenere dal servente HTTP un file delle registrazioni selettivo per un certo dominio virtuale, o per un certo ramo del proprio sito, si può intervenire con un programma realizzato appositamente per filtrare l'unico file a disposizione:
#!/usr/bin/perl $modello = $ARGV[0]; $riga = ""; while ($riga = <STDIN>) { if ($riga =~ m{\"[A-Z]+ $modello.* HTTP/[0-9.]+\"}) { print STDOUT ($riga); } } |
Se questo programma viene chiamato filtra e il file delle registrazioni è /var/log/boa/access_log
, per ottenere un file con gli accessi che si diramano a partire da http://host/servizi/casa/
, si potrebbe usare il comando seguente:
#
cat /var/log/boa/access_log | filtra /servizi/casa/
<-'
`->> /var/log/tmp_servizi_casa.log
In questo modo si creerebbe il file /var/log/tmp_servizi_casa.log
con i soli record che interessano.
Naturalmente, ci potrebbe essere la necessità di filtrare il file delle registrazioni anche per altri motivi. Per esempio, il servente Boa utilizza un file unico anche in presenza di domini virtuali, limitandosi ad aggiungere all'inizio dei record l'indirizzo a cui è giunta la richiesta. Il programma Perl seguente, crea una serie di file, ognuno dei quali ha un nome che corrisponde all'indirizzo del dominio virtuale interpellato:
#!/usr/bin/perl $riga = ""; $indirizzo = ""; while ($riga = <STDIN>) { if ($riga =~ m{^([0-9a-fA-F.:]+) (.*)$}) { $indirizzo = $1; $riga = $2; open (TEMP_FILE, ">> $indirizzo"); print TEMP_FILE ($riga); print TEMP_FILE ("\n"); close (TEMP_FILE); } } |
Se questo programma viene chiamato pre_filtro e il file delle registrazioni è /var/log/boa/access_log
, per una serie di file delle registrazioni nella directory /var/log/boa/access_log/domini/
, si potrebbero usare i comandi seguenti, per cancellare prima i file vecchi e per generare poi quelli nuovi:
#
rm -rf /var/log/boa/access_log/domini
#
mkdir /var/log/boa/access_log/domini
#
cd /var/log/boa/access_log/domini
#
cat ../access_log | pre_filtro
Webalizer (2) è un programma relativamente semplice per l'analisi di un file di registrazioni generato da un servente HTTP comune, dal quale produce un rapporto statistico che può essere letto anche attraverso lo stesso servizio HTTP. In pratica, il rapporto che si ottiene è fatto di pagine HTML e di immagini contenenti i grafici dei vari rapporti statistici generati; queste pagine possono essere consultate localmente o a distanza, con un navigatore comune.
Webalizer è un programma molto semplice che si avvale di un solo file di configurazione, che in condizioni normali corrisponde a /etc/webalizer.conf
. Tuttavia, nel file di configurazione si possono indicare espressamente il file delle registrazioni da analizzare e la directory di destinazione dei file delle statistiche; pertanto, se si gestiscono diversi siti virtuali, o comunque se quello che serve sono statistiche diverse in base al contesto di interesse, potrebbe essere conveniente la predisposizione di file di configurazione differenti, ognuno per l'obiettivo desiderato. Segue un elenco parziale delle direttive di questo file di configurazione, a cui si affianca l'opzione corrispondente dell'eseguibile webalizer, quando disponibile.
I motori di ricerca, quando vengono interpellati, utilizzano solitamente una modalità GET, in modo tale da riportare la stringa di ricerca nello stesso URI contenente l'elenco degli indirizzi che potrebbero corrispondere a ciò che si sta cercando. In tal modo, queste stringhe di ricerca possono apparire come indirizzi referenti; ma se Webalizer riesce a riconoscerle, genera una statistica speciale delle parole o delle stringhe cercate che hanno portato al sito.
Di solito, l'utilizzo di Webalizer è abbastanza semplice, salva l'attenzione che deve essere data al file di configurazione. L'eseguibile che compie il lavoro è webalizer, la cui sintassi generale è la seguente:
webalizer [opzioni] [file_delle_registrazioni]
Alcune delle opzioni sono state descritte a proposito della configurazione; inoltre, come già è stato visto, il file delle registrazioni da analizzare può essere specificato nella configurazione. Tuttavia, tra le opzioni già mostrate ne manca una di importante:
-c file_di_configurazione
Come si può intendere, si tratta della possibilità di indicare un file di configurazione diverso da quello predefinito, cosa che può essere utile per generare statistiche differenti, in base ai contesti di interesse.
In generale, conviene avviare l'eseguibile webalizer specificando sempre il file di configurazione, in modo tale da non dover mettere altro nella riga di comando, curando solo il contenuto della configurazione, come nell'esempio seguente:
#
webalizer -c /var/www/webalizer.conf
Naturalmente, in questo modo, nel file di configurazione bisogna stabilire necessariamente la directory in cui devono essere create le statistiche. Le figure seguenti mostrano alcune porzioni di un esempio di statistica generata da Webalizer.
La pagina iniziale delle statistiche che si ottengono, mostra un riassunto mensile, con una media giornaliera degli accessi. Selezionando il riferimento ipertestuale corrispondente al nome di un mese, se ne ottengono maggiori dettagli.
La figura precedente mostra in particolare le «pagine di ingresso», o presunte tali. Si tratta in pratica di quelle pagine a cui un utente accede all'inizio della sua visita. Si tratta probabilmente di risorse a cui si arriva attraverso dei segnalibri, oppure dei riferimenti da altri siti.
La figura precedente mostra l'elenco degli indirizzi di provenienza per l'ingresso dei visitatori. In questo caso, trattandosi delle statistiche di http://a2.swlibero.org
, si manifesta una carenza nella configurazione, dove sarebbe stato meglio mascherare i referenti appartenenti al dominio a2.swlibero.org
. Comunque, si può vedere nell'esempio che uno dei referenti è un noto motore di ricerca.
Non sempre i file delle registrazioni contengono le informazioni sui referenti. Spesso è necessario intervenire nella configurazione del servente HTTP per ottenere queste indicazioni. |
La figura precedente mostra in pratica che Webalizer è riuscito a individuare delle stringhe di ricerca dagli indirizzi dei referenti, appartenenti a motori di ricerca noti.
Webalizer
daniele @ swlibero.org
1) Eventualmente, le statistiche di accesso possono servire anche per dimostrare la visibilità reale di pagine a contenuto pubblicitario, ma rimane il fatto che sia facile creare dei file di registrazioni fasulli per ingannare i finanziatori.
2) Webalizer GNU GPL con l'uso di una libreria che ha una licenza differente
Dovrebbe essere possibile fare riferimento a questa pagina anche con il nome statistiche_di_accesso.html
[successivo] [precedente] [inizio] [fine] [indice generale] [violazione GPL] [translators] [docinfo] [indice analitico]