:: WEBALIZER


Nome del pacchetto:   webalizer
Sito di riferimento:   http://www.mrunix.net/webalizer/
Autore:   Bradford L. Barrett
Versione presentata:   v. 2.1.10
Categoria port:   WWW

:: Descrizione del pacchetto

Webalizer è uno strumento per l'elaborazione e la produzione di statistiche relative agli accessi a siti web. Questo programma è scritto in C, è compatibile con gli standard ANSI/POSIX ed è rilasciato sotto licenza GPL.

L'elaborazione delle statistiche degli accessi si basa sul fatto che Apache (e in generale qualsiasi webserver) registra alcune informazioni essenziali relative alle richieste di pagine. Alcune di esse sono:

  • indirizzo ip del chiamante;
  • pagina richiesta;
  • data e ora della richiesta;
  • esito della richiesta (servita con successo, pagina non trovata etc.);
  • browser utilizzato.
Tutte queste informazioni posso ovviamente essere rielaborate in modo da capire:
  • il carico di lavoro del server;
  • chi sono gli utenti del nostro sistema;
  • le fasce orarie del giorno in cui il nostro server lavora di più;
  • le pagine web richieste o i servizi più utilizzati.
Grazie a webalizer possiamo rapidamente produrre delle statistiche in modo automatico.

Abbiamo scelto questo pacchetto perchè:
  • è open-source;
  • è veloce nella generazione dei report;
  • produce pagine html standard prive di frame, javascript etc.;
  • i report prodotti riepilogano tutte le informazioni necessarie per il controllo del nostro sito;
  • i report sono facilmente leggibili e "gradevoli" grazie anche all'inserimento di istogrammi, grafici a torta etc.;
  • ha il supporto multilingua;
  • è possibile elaborare i log in modo "incrementale";
  • supporta per il DNS lookup.
Utilizzeremo questo pacchetto per controllare l'utilizzo del webmail.


:: Installazione

Webalizer è disponibile tra i ports di FreeBSD. Pertanto è possibile installarlo attraverso i comandi:

# cd /usr/ports/www/webalizer
# make
# make install
# make clean

Il pacchetto installerà l'eseguibile webalizer nella directory /usr/local/bin/.

L'installazione è completata. Per verificare l'elenco dei file compresi nel pacchetto vi ricordiamo l'utilizzo di:

# pkg_info (elenco dei pacchetti tra cui webalizer)
# pkg_info -L [nome del pacchetto]


:: Configurazione

La configurazione di questo pacchetto è relativamente semplice.
Webalizer usa un solo file di configurazione. L'unica cosa da fare una volta aggiustato questo file con i propri parametri, è automatizzare la generazione dei report degli accessi attraverso una entry nella crontab.

Come prima cosa modifichiamo il file di configurazione di webalizer:

# cd /usr/local/etc/
# cp webalizer.conf-dist webalizer.conf
# mkdir /usr/local/www/data/statistiche_sito (*)

(*) La directory statistiche_sito è stata creata nella home directory di default (/usr/local/www/data) di Apache (installato ovviamente tramite il port).

Ora editiamo il file /usr/local/etc/webalizer.conf. Riportiamo solo le modifiche che abbiamo apportato rispetto al file "originale".

LogFile /var/log/http_access.log
OutputDir /usr/local/www/data/statistiche_sito
Incremental yes
IncrementalName /var/log/statistiche_sito.current
ReportTitle Report Statistiche utilizzo sito SERVER.RETE.DOM
PageType php
PageType pl
PageType cgi
UseHTTPS no
TopURLs 150

Prepariamo il file batch che eseguiremo periodicamente grazie alla crontab di sistema:

# cd /etc/
# vi weblog.sh
[CONTENUTO DEL FILE]
/usr/local/bin/webalizer -c /usr/local/etc/webalizer.conf

# chmod 700 weblog.sh

Ed ecco come schedulare l'esecuzione del batch weblog.sh:

# cd /etc
# vi crontab
[CONTENUTO DEL FILE]
....................
....................
[IN CODA AL CONTENUTO GIA' ESISTENTE INSERIRE QUANTO SEGUE]
59 1 * * * root /etc/weblog.sh

Con questa entry, il sistema eseguirà alle 01:59am di ogni giorno il comando weblog.sh come utente root.

Ovviamente potremo schedulare l'esecuzione del batch a qualsiasi ora, settimanalmente o mensilmente. Per una spiegazione più approfondita sul funzionamento della crontab consultate la man page.

Come ultima cosa proteggiamo i report prodotti attraverso una password di accesso. Eseguiamo i seguenti comandi:

# cd /usr/local/www/data/statistiche_sito
# vi .htaccess
[CONTENUTO DEL FILE]
AuthName "restricted stuff"
AuthType Basic
AuthUserFile /usr/local/etc/users

require valid-user

Osservate che la creazione del file .htaccess è necessaria visto che Apache, per default, si aspetta di trovare in questo file le direttive sulle autorizzazioni per l'accesso alle pagine. Il file dovrà essere presente in ogni directory da proteggere e potrà fare riferimento a diversi "database" di utenti.

Creato questo file dobbiamo generare il "database" contenente l'utente e la password. Ecco come fare:

# htpasswd -c /usr/local/etc/users sysadm
[INSERIRE PASSWORD QUANDO RICHIESTA]

# cat /usr/local/etc/users
sysadm:[password crittografata]

Da ora in poi la directory statistiche_sito del vostro web server sarà accessibile solo mediante inserimento di username e password.

Per consultare le statistiche potrete utilizzare un qualsiasi browser (ex: Firefox, Netscape, Microsoft Explorer, Safari etc.) e digitare il seguente URL:

http://server.rete.dom/statistiche_sito/


:: Utilizzo

Prima di presentare l'utilizzo del pacchetto riassumiamo in una tabella alcune delle principali opzioni che il programma accetta in input.

Opzione abbreviata Descrizione
-h Help delle opzioni disponibili.
-v Visualizza la versione installata del programma e non esegue l'elaborazione dei log.
-d Esegue webalizer in modalità debug per l'individuazione di errori.
-p Elaborazione dei log in modo "incrementale".
-q Non visualizza informazioni sull'elaborazione durante l'esecuzione del programma. Eventuali errori sono comunque visualizzati.
-Q Non visualizza informazioni sull'elaborazione durante l'esecuzione del programma compresi errori.
-c Usa un file di configurazione contenente le direttive sull'elaborazione da eseguire.
-o Indica la directory di output per la generazione delle pagine html contenenti le statistiche prodotte.
-t Indica il titolo del report che sarà inserito nelle pagine html.
-Y Esclude il grafico degli accessi per paese dal report prodotto .
-G Esclude il grafico degli accessi giornalieri per ora dal report prodotto.
-H Esclude le statistiche di accesso per ora dal report.
-L Esclude le legende dai grafici.
-m Permette di configurare il periodo di timeout delle visite. Il default è 1800 secondi.
-T Forza la stampa a video del tempo di elaborazione delle statistiche.
-M Visualizza informazioni sul browser utilizzato dagli utenti secondo 5 livelli di output.
5   Nome del browser + Versione "major".
4   Nome del browser + Versione "major" + Versione "minor".
3   Nome del browser + Versione "major" + Versione "minor" con due cifre decimali.
2   Nome del browser + Versione "major" + Version "minor" + eventuali sub-version.
1   Nome del browser + Versione e tipo di macchina se l'informazione è recuperabile.
0   Tutte le informazioni possibili.
-n Usa l'hostname dell macchina per la generazione delle statistiche.
-F (clf | ftp | squid) Tipo di log file da processare. Il default è clf. Il log ftp è lo standard prodotto da wu-ftpd.
-l [num] Specifica il numero di righe da utilizzare come sfondo nelle immagini. Il default è 2. 0 disabilita la stampa di linee.

Webalizer può essere eseguito con il seguente comando:

# webalizer [options]

Esempio:

# /usr/local/bin/webalizer -c /usr/local/etc/webalizer.conf

Nella configurazione presentata abbiamo tuttavia previsto la generazione automatica delle statistiche attraverso la schedulazione di un batch.

Va notato infine che diverse opzioni disponibili a linea di comando possono essere omesse se si utilizza il file di configurazione.

:: Terminologia usata nei report


Termine Descrizione
HITS Numero di richieste ricevute dal server durante un periodo di tempo.
FILES Numero di hits che hanno come risultato l'invio di un "oggetto" al browser dell'utente, ad esempio una immagine o una pagina html. Non tutte le hits sono dei files. "404 not found" ad esempio non è un file ma solo una hits per webalizer.
SITES Numero di host che hanno effettuato una richiesta al nostro server con indirizzo IP "unico".
VISITS Numero di richieste per singola pagina. Una visita non prevede il conteggio di una pagina visitata più volte dallo stesso host durante un periodo di tempo (di default 30 minuti). Trascorso il periodo di default, la visita alla pagina verrà contata come nuova visita.
PAGES URL che hanno una estensione definita nel file di configurazione (.html, .cgi, .php etc.)


[ Pagina principale ]