image du menu image du menu

Configuration de base

AWStats est un outil d’analyse statistique d’un site Web. Écrit en langage perl, il nécessite l'usage du mode CGI du serveur http pour générer des pages web. L'installation est très simple, le programme étant disponible dans les dépôts. Son installation ne requiert pas de dépendances particulières, mais afin de profiter d'un maximum de fonctionnalité, comme les plugins hashfiles, HostInfo, geoipfree ou encore le reverse DNS pour les adresses ipv6 il est nécessaire d'installer des bibliothèques supplémentaires.

 aptitude install awstats libmldbm-perl libnet-xwhois-perl libgeo-ipfree-perl libnet-dns-perl libnet-ip-perl

Une fois installé, il faut éditer le fichier /etc/awstats/awstats.conf pour adapter le programme à nos besoins. La première chose à vérifier/modifier concerne la ligne LogFile. Pour des logs apache2 avec une installation standard, il vous faudra mettre

 LogFile="/var/log/apache2/access.log"

Ensuite vient la directive LogType qui permet de choisir quel type de journaux d'activité vont être analysé. Dans notre cas apache étant un serveur http, on mettra W (en majuscule).

 LogType=W

Suite à ça, il nous faut spécifier la syntaxe des journaux. Si vous utilisez un serveur apache2 pour lequel vous avez laissé la syntaxe par défaut, mettez le chiffre 1 comme valeur. Si vous utilisez un autre serveur comme par exemple lighttpd, il vous faudra spécifier manuellement le format des logs en vous basant sur les directives et exemple du fichier. On passe ensuite à la directive SiteDomain qui permet comme son nom l'indique de définir le nom de domaine du site. Si vous n'avez pas de nom de domaine, vous pouvez mettre localhost ou tout autre valeur, la seule condition étant que cette directive ne soit pas vide.

 SiteDomain="Generation-debian"

La configuration de base que je qualifierais de minimal (sous-entendu cela est le minimum à faire, sans ça on obtiendra pas un résultat cohérent)est terminé, on peut tester notre configuration via la commande

 /usr/lib/cgi-bin/awstats.pl -config=awstat --update

si votre installation d'awstats n'a à gérer des statistiques que pour un seul site, le mieux est de garder le nom awstats.conf comme nom du fichier. Pour plusieurs sites, voir la partie concernant les hotes virtuels. La durée d'exécution est très variable, pour un fichier de log de quelques kilo octets ce sera instantané, mais si vous avez un fichier de plus ou moins 100 Mo, compté quelques minutes. La génération des stats prendra beaucoup plus de temps si vous activez la résolution dns inverse. Suite à quoi vous obtenez dans le dossier /var/lib/awstats un fichier texte dont le nom est composé de awstats suivi du mois et de l'année correspondant vous l'aurez compris au mois et l'année traité. Ce qui signifie que chaque mois un nouveau fichier est créé.

Configuration d'apache

Afin d'obtenir de jolies graphiques consultable via votre navigateur web, il faut configurer le serveur http pour qu'il soit en mesure d'exécuter les scripts cgi. Si vous utilisez la configuration par défaut d'apache2, il vous suffit d'éditer le fichier /etc/apache2/sites-available/default et d'y ajouter les 3lignes suivantes :

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

Ces lignes sont à ajouter juste au dessus de la ligne

 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

Si vous utilisez un hote virtuel différent, il vous faudra ajoutez ceci

 Alias /awstatsclasses "/usr/share/awstats/classes/"
 Alias /awstatscss "/usr/share/awstats/css/"
 Alias /awstats-icon "/usr/share/awstats/icon/"
 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 <Directory "/usr/lib/cgi-bin">
 AllowOverride None
 Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
 Order allow,deny
 Allow from all
 </Directory>

à la fin du fichier définissant l'hôte en question. A la suite, on redémarre apache

 apache2ctl restart

Vous pouvez désormais accéder aux statistiques en tapant l'url suivante

 http://localhost/cgi-bin/awstats.pl

dans votre butineur préféré. Si vous utilisez un serveur distant, remplacez localhost par son adresse ip ou nom de domaine.

Générer des statistiques pour différents virtualhosts

Imaginons que l'on dispose de 3 domaines, nommés respectivement domaine1.tld, domaine2.tld, domaine3.tld. Le but recherché, c'est obtenir pour chaque domaine des statistiques détaillés séparés. Pour cela, nous allons effectuer quelques modifications par rapport à une configuration mono site. Commençons par créer les répertoires qui accueilleront les statistiques une fois générés (commande à taper en root):

 mkdir /var/lib/awstats/{domaine1,domaine2,domaine3}

A la suite nous créons les fichiers de configuration de chaque domaine, en dupliquant le fichier /etc/awstats.conf :

 cp /etc/awstats/awstats.conf /etc/awstats/awstats.domaine1.conf
 cp /etc/awstats/awstats.conf /etc/awstats/awstats.domaine2.conf
 cp /etc/awstats/awstats.conf /etc/awstats/awstats.domaine1.conf

Attention à bien respecter cette syntaxe de nommage, c'est à dire que le nom du fichier doit obligatoirement commencer par awstats. suivi du domaine qui sera défini à l'intérieur, suivi de l'extension .conf. Editons maintenant le fichier de configuration de chaque domaine pour l'adapter à nos paramétrages. Hormis la ligne SiteDomain à adapter à chaque domaine, en mettant respectivement domaine1, domaine2 etc… sans l'extension (ou tld, c'est à dire le .org dans notre cas) il nous faut adapter la ligne DirData pour chaque domaine, exemple :

 DirData="/var/lib/awstats/domaine1/"

etc… Il ne reste plus qu'a lancer la génération des statistiques, à l'aide de la commande

 /usr/lib/cgi-bin/awstats.pl --config=domaine1 --update

puis

 /usr/lib/cgi-bin/awstats.pl --config=domaine2 --update

et ainsi de suite pour chaque domaine. Pour accéder à l'interface web de visualisation, il vous faudra utiliser la syntaxe suivante :

 http://localhost/cgi-bin/awstats.pl?config=domaine1            etc... 

Réécriture d'url

Si vous avez plusieurs domaines, vous souhaitez probablement pouvoir accéder à leurs statistiques via une adresse plus simple que celle disponible par défaut, du style http://localhost/cgi-bin/domaine1, http://localhost/cgi-bin/domaine2 etc… Pour cela, il faut activer le module de réécriture du serveur apache, sur une debian cela se fait très simplement

 a2enmod rewrite

suivi d'un redémarrage d'apache

 apache2ctl restart

Il nous faut maintenant ajouter la règle qui va bien dans le ou les hôtes virtuels (plus communément appelé virtualhost ou vhost). Pour cela, on reprend la configuration exposé quelques lignes plus haut, et on lui ajoute ces deux lignes :

 RewriteEngine on
 RewriteRule ^([-0-9a-zA-Z]+)$ /cgi-bin/awstats.pl?config=$1 [L]

Attention à bien mettre ces lignes à l'intérieur de la directive autorisant l'usage de script cgi dans l'hote virtuel. Dans notre cas, voici ce à quoi ça doit ressembler :

 Alias /awstatsclasses "/usr/share/awstats/classes/"
 Alias /awstatscss "/usr/share/awstats/css/"
 Alias /awstats-icon "/usr/share/awstats/icon/"
 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 <Directory "/usr/lib/cgi-bin">
 AllowOverride None
 Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
 Order allow,deny
 Allow from all
 RewriteEngine on
 RewriteRule ^([-0-9a-zA-Z]+)$ /cgi-bin/awstats.pl?config=$1 [L]
 </Directory>

apres redémarrage du serveur web, votre configuration sera operationnelle.

Générer des pages statiques

Dans la configuration détaillé plus haut, on utilise le cgi, Common Gateway Interface qui est une interface permettant d'exécuter un programme écrit dans n'importe quel langage via un serveur web. Deux problèmes au moins se présentent avec cette interface. Le premier, d'un point de vue performance, le cgi plombe littéralement le serveur lorsqu'il est utilisé en forte charge. Même si dans le cas de statistiques d'accès, on peut imaginer qu'ils ne soient pas consulté même sur un gros site plusieurs fois par secondes, c'est quand même un élément à prendre en compte. Le second point négatif, c'est au niveau de la sécurité. Afin de palier à ses deux problèmes, l'une des possibilités consiste à générer de manière régulière des pages statiques pour une ou plusieurs catégories de statistiques fournis par awstats. Cette possibilité prend tout son sens dans le cas des logs des mois précédent, qui du fait qu'ils ne changeront pas, ne nécessitent pas d'être mis à jour du tout. Pour générer ces pages statiques, il est inutiles d'activer la prise en charge du cgi par le serveur http. Le serveur en question n'aura que des pages en html à envoyer au client, chose que tous les serveurs http savent faire nativement. Commençons par le plus simple, générer la page de résumé du mois en cours :

 /usr/lib/cgi-bin/awstats.pl -config=mon-site -output -staticlinks > awstats.mon-site.html

Pour avoir les détails par section, il suffit d'ajouter =section à la suite de output. Exemple pour avoir la liste complète des pays :

 /usr/lib/cgi-bin/awstats.pl -config=mon-site -output=alldomains -staticlinks > awstats.mon-site.domaine.html

Notez que vous pouvez mettre ce que vous voulez comme nom au fichier de sortie.

Section Valeur à mettre après output=
Liste des pays alldomains
Liste des Hôtes allhosts
Liste des derniers hôtes lasthosts
Liste des ip non résolues unknownip

Option du fichier de configuration

Afin d'exploiter au maximum le potentiel d'awstats, nous allons voir à quoi servent la plupart des options que l'on trouve dans le fichier de configuration.

 DNSLookup=

Cette directive permet d'activer ou non la résolution DNS inverse sur les adresses ip des visiteurs. Cette directive peut prendre trois valeurs, 0 (zéro) désactive la résolution DNS, 1 active la résolution DNS pour chaque entrée du fichier de log, et 2 ne fait une résolution inverse qu'en cherchant dans le fichier de cache statique définit plus loin.

 AllowToUpdateStatsFromBrowser=

Cette directive permet d'activer ou désactiver la mise à jour des statistiques via un lien dans l'interface web. Le chiffre 0 (valeur par défaut) désactive cette fonction, alors que le 1 l'active.

 AllowFullYearView=

Cette directive permet d'autoriser le résumé sur une année complète, au lieu d'un résumé par moi par défaut. Quatre valeurs sont possibles pour cette option. Le chiffre 0 désactive totalement cette possibilité, le chiffre 1 active cette option seulement via l'interface CLI (la ligne de commande), la valeur 2 fait la même chose que la précédente à la différence qu'elle laisse apparaitre l'année dans la liste déroulante des mois, mais elle n'est pas utilisable via le navigateur. Enfin le chiffre 3 autorise l'usage de cette option aussi bien en graphique qu'en ligne de commande.

http://awstats.sourceforge.net/docs/index.html

installation/awstats.txt · Dernière modification: 2010/08/28 20:38 par scorpio810