06 10 | 2011

Installation et configuration d'awstats

Rédigé par Sorrodje

Classé dans : Informatique, Mémos techniques

AWstats est un outil permettant d'avoir des statistiques de fréquentation des sites que l'on met en ligne via un serveur web : nombre de visiteurs , de pages vues , de clics ,mots-clef utilisés , ... Outil très précieux et présent dans les dépôts Debian/Ubuntu. Pour mon propre usage , j'ai mixé les infos trouvées dans la doc Ubuntu et sur le Wiki Debian.fr pour arriver à ce que je veux sur mon serveur Debian :






Installation d'awstats


Ce n'est pas très compliqué :
#apt-get install awstats

Préconfiguration des VirtualHosts Apache


Il faut que chaque VirtualHost produise ses propres logs. Pour cela il faut configurer les Vhosts comme suit:
VirtualHost *:80>

        ServerName sorrodje.alter-it.org
        
        ErrorLog /var/log/apache2/sorrodje.alter-it.org.log
        CustomLog /var/log/apache2/sorrodje.alter-it.org.log combined

        ...



Avec les lignes ErrorLog et Custom Log.

Paramétrage de awstats


Il se fait via la création de fichiers de configuration de /etc/awstats/awstats.conf spécifiques à chaque Virtuahost. Exemple :
#cp /etc/awstats/awstats.conf /etc/awstats/awstats.nom_de_domaine.conf

ici ça donne donc ça :
#cp /etc/awstats/awstats.conf /etc/awstats/awstats.sorrodje.alter_it.org.conf

Modifier le fichier ensuite :
#nano /etc/awstats/awstats.sorrodje.alter-it.org.conf

Pour obtenir ça en ce qui concerne les lignes actives (non commentées) et hors configuration optionnelle.
LogFile="/var/log/apache2/sorrodje.alter-it.org.log"
LogType=W
LogFormat=1
LogSeparator=" "
SiteDomain="sorrodje.alter-it.org"
HostAliases="sorrodje.alter-it.org http://sorrodje.alter-it.org"
DNSLookup=1
DirData="/var/lib/awstats"
DirCgi="/cgi-bin"
DirIcons="/awstats-icon"
AllowToUpdateStatsFromBrowser=0
AllowFullYearView=3

A adapter bien sur selon besoins et/ou desideratas.le fichier est très bien documenté.
On vérifie que ça fonctionne en exécutant une première fois awstats:
# /usr/lib/cgi-bin/awstats.pl -config=sorrodje.alter-it.org -update 

Automatiser la génération de stats via CRON.


J'ai retenu la solution de faire un script rassemblant les générations de stats de tous les Vhosts et d'automatiser le passage de ce script via cron dans la mesure où ça me semble plus simple pour ajouter des vhosts au fur et à mesure de leur création


Création du script en question :
# nano /root/awstats.sh

Pour créer et enregister ce qui suit :
perl /usr/lib/cgi-bin/awstats.pl -config=sorrodje.alter-it.org -update > /dev/null

Intégration dans Cron via modification du fichier /etc/cron.d/awstats :
# nano /etc/cron.d/awstats
#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh

# Generate static reports:
#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh

0,10,20,30,40,50 * * * * root /bin/sh /root/awstats.sh
Fichier à rendre executable:
# chmod +x /root/awstats.sh
Redémarrer cron pour faire prendre en compte l'automatisation de cette nouvelle tâche.

Configuration Logrotate


Les logs d'Apache sont régulièrement archivés par logorotate . IL faut donc s'assurer que les stats sont construites avant archivage des données en question. Pour cela il faut incorporer l'exécution de notre script dans les tâches à effectuer avant archivage dans le fichier /etc/logrotate.d/apache2:
#nano /etc/logrotate.d/apache2
Pour obtenir ceci:
...
/var/log/apache2/*.log {
        weekly
        missingok
        rotate 52
        compress
        delaycompress
        notifempty
        create 640 root adm
        sharedscripts
        prerotate
                /bin/sh /root/awstats.sh
        endscript
        postrotate
                /etc/init.d/apache2 reload > /dev/null
        endscript
}


Configuration Apache


Il faut enfin configurer Apache2 pour avoir accès aux stats awstats dans une fenêtre de navigateur Web.
Je suis passé par un VirtualHost et j'en ai profité pour exiger une authentification pour avoir le droit d'accéder à la visualisation de ces stats.

Création et prise en compte du Virtualhost :
# nano /etc/apache2/sites-available/awstats

Créer et enregistrer le fichier suivant:
 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/

<Directory /usr/lib/cgi-bin/>
  UseCanonicalName off
  AuthName "Statistiques administration"
  AuthType Basic
  Require valid-user
  AuthUserFile /etc/apache2/users
  Options +ExecCGI
  AllowOverride None
  Order allow,deny
  Allow from all
</Directory>

Activer le Vhost:

#a2ensite awstats

Recharger la configuration d'Apache:

#service apache2 reload


Créer enfin l'utilisateur et le mot de passe que l'on souhaite utiliser :
 #cd /etc/apache2
# htpasswd -c users username

puis donner deux fois le password qui convient.
Reste à appeler les stats via un navigateur web en donnant vos codes d'accès : http://votre_nom_de_domaine/stats/awstats.pl

Pour plusieurs Virtualhosts :


Il suffit pour chaque Vhost de créer un fichier de conf awstats spécifique puis d'ajouter une ligne dans le script awstats.sh correspondant au nouveau Vhost. Dans la configuration présente c'est le même utilisateur/mot de passe qui donne un accès global aux stats awstats

Sources:

Mots clés : awstats, apache2, Debian

Écrire un commentaire

Quelle est la dernière lettre du mot kajbk ? : 

Archives

Contrat Creative Commons
Ce(tte) oeuvre est mise à disposition selon les termes de la Licence Creative Commons Paternité - Partage à l'Identique 2.0 France
.