AWStats

AWStats est un anayleur de logs de serveur web. Il permet d'obtenir des rapports simples et efficaces sur la consultation d'un site Web.

Installation

Paquets à installer :

  • awstats

Configuration

La configuration de awstats se trouve dans les fichiers /etc/awstats/awstats.conf et /etc/awstats/awstats.conf.local

Le premier paramètre à modifier est :

SiteDomain="www.bouthors.fr"

Si apache est configuré, le site devrait être disponible dans /cgi-bin/awstats.pl

Préparation des logs

Par défaut les logs ne sont pas lisibles pour le script, il faut les rendre accessibles par exemple en les attribuant à l'utilisateur www-data :

bender:~# cd /var/log/apache2
bender:/var/log/apache2# chown www-data *
bender:/var/log/apache2# ll
total 256
-rw-r----- 1 www-data adm  17304 2007-07-02 23:44 access.log
-rw-r----- 1 www-data adm 213032 2007-06-24 22:21 access.log.1
-rw-r----- 1 www-data adm   4348 2007-07-02 23:07 error.log
-rw-r----- 1 www-data adm   8684 2007-06-27 06:25 error.log.1
bender:/var/log/apache2#

Afin de rendre cela permanent, il faut modifier la configuration de logrotate dans /etc/logrotate.d/apache2 :

        create 640 www-data adm

Configuration de AWstats

Editer /etc/awstats/awstats.conf.local :

# You can overrides config directives here.
# This is particularly useful for users with several configs for
# different virtual servers, who want to reuse common parameters.
# Also, this file is not updated with each new upstream release.
SiteDomain="www.bouthors.fr"
HostAliases="localhost 127.0.0.1 matthieu.bouthors.org"
LogFile="/var/log/apache2/access.log"
LogFormat = 1
AllowFullYearView = 3
  • Cette configuration inclus le nom d'hôte www.bouthors.fr ainsi que l'alias matthieu.bouthors.org
  • Le fichier de log d'apache 2 est spécifié (par défaut awstats utilise apache 1.3)
  • “LogFormat = 1” indique le format de log par défaut utilisé par Apache2 (combined)
  • “AllowFullYearView = 3” permet le rapport sur une année complète, attention ces requêtes sont gourmandes en CPU et RAM

Remarque : awstats stocke ses données dans /var/lib/awstats/ par défaut.

Importer les logs manuellement

bender:~# cd /usr/lib/cgi-bin/
bender:/usr/lib/cgi-bin# su www-data
bender:/usr/lib/cgi-bin$ ./awstats.pl -config=awstats -LogFile=/var/log/apache2/access.log.1
Update for config "/etc/awstats/awstats.conf"
With data in log file "/var/log/apache2/access.log.1"...
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: 831
 Found 0 dropped records,
 Found 0 corrupted records,
 Found 0 old records,
 Found 831 new qualified records.
bender:/usr/lib/cgi-bin$ ./awstats.pl -config=awstats -LogFile=/var/log/apache2/access.log
Update for config "/etc/awstats/awstats.conf"
With data in log file "/var/log/apache2/access.log"...
Phase 1 : First bypass old records, searching new record...
Direct access to last remembered record is out of file.
So searching it 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: 103
 Found 0 dropped records,
 Found 0 corrupted records,
 Found 0 old records,
 Found 103 new qualified records.
bender:/usr/lib/cgi-bin$ exit
exit
bender:/usr/lib/cgi-bin#

Configurer l'automatisation

Le cron (/etc/cron.d/awstats) ajouté automatiquement doit être modifié ainsi pour apache 2 :

0,10,20,30,40,50 * * * * www-data [ -x /usr/lib/cgi-bin/awstats.pl -a -f /etc/awstats/awstats.conf -a -r /var/log/apache2/access.log ] && /usr/lib/cgi-bin/awstats.pl -config=awstats -update >/dev/null

Afin de ne pas perdre les logs lors de la rotation, il faut ajouter l'analyse en script dans la configuration de logrotate /etc/logrotate.d/apache2 :

        prerotate
                /usr/bin/sudo -u www-data /usr/lib/cgi-bin/awstats.pl -config=awstats -update
        endscript

Ne pas oublier d'installer le paquet sudo pour que cela fonctionne.

Configurer Apache

Pour que les images s'affichent correctement il faut ajouter l'alias suivant :

Alias /awstats-icon/ /usr/share/awstats/icon/

Par exemple de cette façon :

  • créer le fichier /etc/apache2/sites-available/awstats avec le contenu suivant :
  Alias /awstats-icon/ /usr/share/awstats/icon/
  • puis l'activer :
# a2ensite awstats
Site awstats installed; run /etc/init.d/apache2 reload to enable.
# /etc/init.d/apache2 reload
Reloading web server config...7559
.
#

Résolution de problèmes d'import

Par défaut, awstats importe les logs de manière chronologique. Il n'est pas possible de réimporter d'anciens logs.
Une fois importées, les données sont stockées dans un fichier texte dans /var/lib/awstats/, sous forme d'un fichier par mois.

Pour retraiter des logs brutes, il est possible de supprimer le mois en question puis de réimporter le fichier de log. L'import manuel est décrit plus haut.

Enfin, pour l'import de plusieurs fichiers de logs provenant de sources différentes, il faut les fusionner et conserver un ordre chronologique.
Pour cela il existe un petit utilitaire logresolvemerge.pl situé dans /usr/share/doc/awstats/examples/.
Son utilisation est simple, il suffit de mettre la liste des fichiers à fusionner et de rediriger la sortie dans le fichier cible.

# cd /usr/share/doc/awstats/examples/
# /usr/share/doc/awstats/examples# ./logresolvemerge.pl fichier1 fichier2 > fichier_final

Supprimer echoping des logs

Si vous recevez des requêtes automatiques par exemple pour valider la santé du site, il se peut qu'elles soient comptabilisées en tant que requête utilisateur.
Pour les identifier, regarder dans le fichier de log d'apache pour identifier le User Agent de ces requêtes.

Le fichier /usr/share/awstats/lib/robots.pm définit les User Agent à ignorer, pour ignorer les requêtes provenant de “Echoping/6.0.0”, il suffit d'ajouter :

  • dans RobotsSearchIDOrder_list1
'echoping',
  • dans RobotsHashIDLib
'echoping','EchO!',

Backup

  • /etc/awstats/awstats.conf.local
  • /etc/logrotate.d/apache2
  • /var/lib/awstats/
  • /etc/cron.d/awstats
  • /etc/apache2/sites-available/awstats

Links

linux/awstats.txt · Dernière modification: 2011/01/12 09:18 par matthieu
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki