dmesg.fr:~#

display message

Analyser des logs Apache 1and1 avec Awstats

awstats logoSi vous disposez d'un site Internet hébergé chez 1and1, vous aurez remarqué que celui-ci propose un outil propriétaire "1and1 Webstats" pour analyser la fréquentation de votre site web. A mon goût, les données fournies par 1and1 Webstats sont assez limitées et peu significatives.

Vous pouvez augmenter les possibilités d'analyse avec l'option "1&1 webstat confort", mais je vous propose plutôt d'analyser les logs Apache 1and1 avec l'outil Awstats sur votre machine Debian.


Principe

Le principe consiste à transférer les logs Apache du site hébergé chez 1and1 vers votre machine locale, puis de les exploiter et de les analyser. Par conséquent, vous devez d'abord installer Apache 2 et Awstats.


Installation Apache 2 et Awstats


Ouvrez un Terminal superutilisateur et tapez :

apt-get install apache2 awstats


Configuration et utilisation Awstats


Configuration Awstats Apache 2

Créez un fichier de configuration awstats Apache 2 comme suit :

Fichier : /etc/apache2/sites-available/awstats

################################################
Alias /awstatsclasses "/usr/share/awstats/classes/"
Alias /awstatscss "/usr/share/awstats/css/"
Alias /awstats-icon "/usr/share/awstats/icon/"

ScriptAlias /stats /usr/lib/cgi-bin/awstats.pl

# mêmes paramètres que dans awstats.*.conf
<Directory /usr/lib/cgi-bin/>
DirectoryIndex awstats.pl
UseCanonicalName off
#  AuthName "Statistiques awstats"
#  AuthType Basic
#  Require valid-user
#  AuthUserFile /che/min/.passwdstats
Options +ExecCGI
AllowOverride None
Order allow,deny
Allow from all
</Directory>

################################################



Activez la configuration :

a2ensite awstats

service apache2 reload


Configuration Awstats

L'exemple de configuration awstats qui suit utilise le nom de domaine dmesg.fr
A adapter selon votre nom de domaine.

Créez un fichier de configuration pour votre site :

cp /etc/awstats/awstats.conf /etc/awstats/awstats.dmesg.fr.conf


Editez le fichier de configuration /etc/awstats/awstats.dmesg.fr.conf et modifiez ces lignes comme suit :

#################################
# Fichier log à analyser
# A adapter selon votre user avec le répertoire de votre choix
LogFile="/home/td/logs-dmesg-fr/access.log"

# Type de fichier log
LogType=W

# LogFormat spécifique 1and1
LogFormat = "%host %other %logname %time1 %methodurl %code %bytesd %virtualname %refererquot %uaquot %otherquot"

# Domaine à analyser
# A adapter selon votre nom de domaine
SiteDomain="dmesg.fr"

# Autoriser la mise à jour de la base AWSTATS via l'interface web
AllowToUpdateStatsFromBrowser=1

# Autoriser l'affichage des stats à l'année
AllowFullYearView=3

# Activer le plugin hostinfo
LoadPlugin="hostinfo"
#################################



Pour accéder à l'interface web awstats, ouvrez votre navigateur Internet à l'adresse suivante :

http://localhost/cgi-bin/awstats.pl?config=dmesg.fr

A ce stade, aucune donnée n'est chargée.


Exploitation des logs Apache 1and1


Nommage des fichiers logs 1and1

Les fichiers logs Apache 1and1 se trouvent dans le répertoire logs du serveur et s'appellent access.log.* :

access.log.09.gz
access.log.10.gz
access.log.11.gz
access.log.12.gz
access.log.13.gz
access.log.14.gz
access.log.15.gz
access.log.16.1.gz
access.log.16.2.gz
access.log.16.3.gz
access.log.16.4.gz
access.log.16.5.gz
access.log.16.6.gz
access.log.16.7.gz



1and1 gère les fichiers access.log de la façon suivante :

Pour la semaine en cours, un fichier access.log par jour :

access.log.16.1.gz : correspond au 1er jour de la semaine 16
access.log.16.2.gz : correspond au 2ème jour de la semaine 16
etc.

Une fois la semaine passée, les stats sont stockées dans 1 fichier log par semaine :

access.log.14.gz : correspond à la semaine 14
access.log.15.gz : correspond à la semaine 15
etc.


Transfert des fichiers logs 1and1

Vous devez maintenant transférer des logs Apache depuis votre hébergeur 1and1 vers votre machine locale, par ftp ou ssh, selon le niveau de pack 1and1 que vous avez choisi.

Transférez un fichier log du répertoire "logs" 1and1 dans votre répertoire personnel "/home/td/logs-dmesg-fr/" (ou chemin que vous avez spécifié dans le fichier de configuration awstats LogFile=...) et renommez-le en access.log


Mise à jour de la base de données awstats :

Tapez :

su - www-data -c "perl /usr/lib/cgi-bin/awstats.pl -config=dmesg.fr -update"


Vous obtenez :

Create/Update database for config "/etc/awstats/awstats.dmesg.fr.conf" by AWStats version 6.95 (build 1.943)
From data in log file "/home/td/log-apache-dmesg/access.log"...
Phase 1 : First bypass old records, searching new record...
Direct access after last parsed record (after line xxxx)
Jumped lines in file: xxxx
Found xxxx already parsed records.
Parsed lines in file: 0
Found 0 dropped records,
Found 0 corrupted records,
Found 0 old records,
Found 0 new qualified records.



Rafraîchissez l'interface web awstats :

Dans votre navigateur Internet, ouvrez l'adresse :

http://localhost/cgi-bin/awstats.pl?config=dmesg.fr

Vous devriez voir les données correspondant au fichier log 1and1 que vous venez d'exploiter.


Stockage des fichiers statistiques awstats

Les fichiers statistiques produits par Awstats se trouvent dans le répertoire :

/var/lib/awstats



Mettre à jour la base awstats à partir de plusieurs fichiers logs existants

Nous l'avons vu plus haut, les fichiers logs 1and1 suivent une règle de nommage. Votre fichier log ne s'appelle donc pas access.log, mais access.log.xxx.

Au lieu de renommer systématiquement vos fichiers en access.log, vous pouvez faire :

zcat votre_fichier_access_log.gz | /usr/lib/cgi-bin/awstats.pl -config=dmesg.fr -update -LogFile=-

Attention : adaptez la ligne de commande selon votre nom de domaine.

Pour automatiser, libre à vous d'écrire un script qui transfère quotidiennement le fichier access.log 1and1 du jour, et qui fait la mise à jour de votre base awstats.


Optionnel : installation plugin GeoIP


Téléchargez la base GeoIP et copiez-là dans awstats :

wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz

gunzip GeoIP.dat.gz

cp GeoIP.dat /usr/share/awstats/lib/


Téléchargez et configurez PurePERL :

wget http://geolite.maxmind.com/download/geoip/api/pureperl/Geo-IP-PurePerl-1.25.tar.gz

tar xzf Geo-IP-PurePerl-1.25.tar.gz

cp Geo-IP-PurePerl-1.25/lib/Geo/IP/PurePerl.pm /usr/share/awstats/lib/

nano /usr/share/awstats/lib/PurePerl.pm

Recherchez "GeoIP.dat"

Modifiez la ligne :

my $def_db_file = '/usr/local/share/GeoIP/GeoIP.dat';
par
my $def_db_file = '/usr/share/awstats/lib/GeoIP.dat';


nano /usr/share/awstats/plugins/geoip.pm

Recherchez "PurePerl.pm"

Modifiez la ligne :

if (!eval ('require "Geo/IP/PurePerl.pm";')) {
par
if (!eval ('require "/usr/share/awstats/lib/PurePerl.pm";')) {


nano /etc/awstats/awstats.conf

Recherchez "GEOIP_STANDARD"

Décommentez et remplacez la ligne :

LoadPlugin="geoip GEOIP_STANDARD /usr/share/GeoIP/GeoIP.dat"
par
LoadPlugin="geoip GEOIP_STANDARD /usr/share/awstats/lib/GeoIP.dat"


Copyright dmesg.fr - All Rights Reserved.