Awstats (Advanced Web Statistics) è un degli migliori strumenti opensource per generare statistiche e grafici di siti Web, FTP, Mail e tanto altro. Le statistiche vengono prelevate direttamente dai log generati dal servizio (apache, postfix, squid ecc) in modo da avere statistiche precise e dettagliate. Awstas è configurabile in molti server Web come Apache Web Server, IIS, Nginx ecc. Vediamo in questa guida come installare e configurare Awstats su Apache in CentOS/RHEL.
Il primo passo da fare è certamente installare Apache WebServer, se non lo avete ancora fatto potete installarlo con il comando:
# yum install httpd
Completata l’installazione abilitiamo i repository EPEL attraverso QUESTA guida, in modo tale da poter installare awstats direttamente con YUM.
Installiamo awstats con il comando:
# yum install awstats
awstats creerà in automatico il file di configurazione per apache:
# cat /etc/httpd/conf.d/awstats.conf Alias /awstatsclasses "/usr/share/awstats/wwwroot/classes/" Alias /awstatscss "/usr/share/awstats/wwwroot/css/" Alias /awstatsicons "/usr/share/awstats/wwwroot/icon/" ScriptAlias /awstats/ "/usr/share/awstats/wwwroot/cgi-bin/" <Directory "/usr/share/awstats/wwwroot"> DirectoryIndex awstats.pl Options ExecCGI order deny,allow allow from all </Directory> <IfModule mod_env.c> SetEnv PERL5LIB /usr/share/awstats/lib:/usr/share/awstats/plugins </IfModule>
Creiamo il file di configurazione per il nostro sito Web basandoci sul file example:
# cp /etc/awstats/awstats.host.example.com.conf /etc/awstats/awstats.miosito.com.conf
Sostituendo miosito.com con il nome del vostro sito web. Modifichiamo il file appena copiato con il nostro editor preferito:
# vim /etc/awstats/awstats.miosito.com.conf
sostituiamo le direttive in questo modo:
LogFile="/var/log/httpd/miosito-access_log" SiteDomain="miosito.com" HostAliases="miosito2.com www.miosito.com"
- LogFile: il path dove risiede il log di apache da analizzare
- SiteDomain: il nome del vostro sito
- HostAliases: il vostro dominio e alias tipo “www.miosito.com”
A questo punto salviamo il file di configurazione e riavviamo/avviamo apache:
# /etc/init.d/httpd restart
Ricordiamoci che i log di apache devono essere in “combined“. Di seguito un esempio di virtualhost di apache:
<VirtualHost *:80> ServerAdmin admin@miosito.com DocumentRoot "/srv/http/miosito.com/" ServerName miosito.com ServerAlias www.miosito.com ErrorLog "/var/log/httpd/error_log" CustomLog "/var/log/httpd/miosito.com-access_log" combined </VirtualHost>
Scheduliamo la generazione delle statistiche in crontab ogni 5 minuti, in modo tale da avere statistiche sempre aggiornate. Per fare qesto editiamo il crontab con il comando:
# crontab -e
e aggiungiamo la riga:
*/5 * * * * /usr/bin/perl /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=miosito.com -update
Sostituendo miosito.com con il nome del file di awstats awstats.miosito.com.conf.
Per generare la prima volta le statistiche basta lanciare manualmente il comando messo in crontab:
# perl /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=miosito.com -update
noteremo un output simile a questo:
Create/Update database for config "/etc/awstats/awstats.miosito.com.conf" by AWStats version 7.2 (build 1.992) From data in log file "/opt/log/miosito.com-access_log"... Phase 1 : First bypass old records, searching new record... Direct access after last parsed record (after line 126440) Jumped lines in file: 1246440 Found 1246440 already parsed records. Parsed lines in file: 510 Found 0 dropped records, Found 0 comments, Found 0 blank records, Found 0 corrupted records, Found 0 old records, Found 5134 new qualified records.
Apriamo il Browser all’indirizzo:
http://miosito.com/awstats/awstats.pl?config=miosito.com