Awstats
Un article de Bellinux.
Pour suivre l'évolution du site, on a choisit d'utiliser awstats.
C'est une application qui fait un relevé de stats très complet, et qui permet de suivre plusieurs sites.
La version présente dans synaptic comprenait certains bugs, donc on est partit des sources du site.
# wget http://prdownloads.sourceforge.net/awstats/awstats-6.7.tar.gz # tar xvzf awstats-6.7.tar.gz
Pour que cette tache régulière soit accomplie, il faut que ces fichiers soit dans un répertoire qui n'ait pas besoin des droits root, donc on déplace le tout.
# mv awstats-6.7 /usr/local
On se place dans le répertoire tools, pour lancer le script de paramétrage
/usr/local/tools# perl perl awstats_configure.pl
On répond au question :
Do you want to continue setup from this NON standard directory [yN] ? y -----> Check for web server install Enter full config file path of your Web server. > /etc/apache2/sites-available/nomsite -----> Need to create a new config file ? file (required if first install) [y/N] ? y -----> Define config file name to create > full-domain-name -----> Create config file '/etc/awstats/awstats.full-domain-name.conf' Error: Failed to open '/usr/share/doc/awstats/examples/wwwroot/cgi-bin/awstats.model.conf' for read.
Malgré, l'erreur, le fichier de configuration a été créé. Après il faut définir des alias pour que awstats fonctionne dans apache, encore ici on défini ses paramètres dans le fichier de configuration d'apache relatif au serveur virtuel voulu.
# nano /etc/apache2/site-available/monsite
....
Alias /awstats-icon/ /usr/local/awstats-6.7/wwwroot/icon/
<Directory /usr/share/awstats/icon>
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
# CGI Directory
ScriptAlias /cgi-bin/ /usr/local/awstats-6.7/wwwroot/cgi-bin/
<Location /cgi-bin>
Options +ExecCGI
</Location>
# Logfiles
ErrorLog /var/www/site/logs/error.log
CustomLog /var/www/site/logs/access.log combined
....
Et maintenant, on peut redémarrer apache
# /etc/init.d/apache2 restart
Maintenant, on édite le fichier de configuration pour finaliser les réglages (LogFormat=1) et vérifier les infos relative au site.
Puis on génère les premiers stats en ligne commande.
/usr/local/tools# awstats.pl -config=monsite -update Update for config "/etc/awstats/awstats.monsite.conf" With data in log file "/var/log/apache2/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: 60 Found 0 dropped records, Found 0 corrupted records, Found 0 old records, Found 60 new qualified records.
Dorénavant, on peut accéder à l'interface web.
http://monsite/cgi-bin/awstats.pl?config=monsite
Dernière étape, on créé un fichier cron avec l'utilisateur qui automatise la mise à jour des stats.
# crontab -u www-data -e
Et on ajoute :
SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 5,10,15 * * * * www-data /usr/local/awstats-6.7/wwwroot/cgi-bin/awstats.pl -config=monsite -update >/dev/null
Puis on ajout une opération /etc/logrotate.d/apache pour qu'apache fasse un relevé avant la mise à jour des logs.
/var/log/apache2/*.log {
weekly
missingok
rotate 52
compress
delaycompress
notifempty
create 644 root adm
sharedscripts
prerotate
/usr/local/awstats-6.7/wwwroot/cgi-bin/awstats.pl -config=monsite -update
endscript
postrotate
if [ -f /var/run/apache.pid ]; then \
if [ -x /usr/sbin/invoke-rc.d ]; then \
invoke-rc.d apache reload > /dev/null; \
else \
/etc/init.d/apache reload > /dev/null; \
fi; \
fi;
endscript
}
Et pour finir
# chmod o+r /var/log/apache2/access.log
