Awstats

Un article de Bellinux.

Jump to: navigation, search

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


http://www.sioban.net/article.php/20051007143814113