Documentation technique : Debian
Documentation basée sur la distribution Debian

> > > Installation et configuration de base d’Awstats

Installation et configuration de base d’Awstats

Installation

L’installation de base car, même s’il n’est pas dans sa dernière version, Awstats est disponible dans les dépôts de base de Debian. On lance donc la commande :

  1. sudo apt-get install awstats

Une fois installé il est nécessaire de configurer différents éléments pour que le script de mise à jour puisse accéder aux informations à comptabiliser.

Configuration de logrotate pour récupérer les données des logs d’Apache

Le script appelé en cron par awstats, dans le fichier /etc/cron.d/awstats est utilisé avec l’utilisateur de base d’Apache à savoir www-data. Il est donc nécessaire que cet utilisateur puisse avoir accès aux différents fichiers de logs.

Pour cela on édite le fichier qui gère la rotation des logs d’Apache :

  1. sudo nano /etc/logrotate.d/apache2

On remplace la ligne commençant par create par la suivante :

  1. create 644 root adm

Cette ligne indique que les logs générés sont créés avec l’utilisateur root et le groupe adm avec les droits 644. Normalement vous n’avez eu à modifier dans cette ligne que le dernier chiffre qui devait être 0.

On va en profiter également pour ajouter une commande exécutée juste avant la rotation des logs d’apache, afin d’éviter de perdre des visites dans les comptes.

Pour ce faire, dans le même fichier, juste avant la ligne débutant par postrotate, ajoutez celles-ci :

  1. prerotate
  2. if [ -x /usr/share/awstats/tools/update.sh ]; then
  3. /usr/share/awstats/tools/update.sh > /dev/null
  4. fi
  5. endscript

Télécharger

La commande /usr/share/awstats/tools/update.sh correspond au script bash lancé pour mettre à jour les données collectées.

Après avoir sauvegarder, on donne les droits 644 à chaque fichier access.log créés par Apache ainsi que 755 au répertoire /var/log/apache2. Les fichiers par défaut sont dans le répertoire /var/log/apache2/.

On lance donc la commande suivante :

  1. chmod 644 /var/log/apache2/access.log*
  2. chmod 755 /var/log/apache2/

Télécharger

Vous devez le faire également sur les fichiers dont vous auriez pu modifier l’emplacement dans les différents virtualhosts.

Modification de la configuration d’Apache relative à Awstats

Dans un premier temps, on va régler le format par défaut des fichiers de logs analysés.

On crée le ensuite le répertoire qui contiendra les fichiers nécessaires à créer pour la visualisation :

  1. sudo mkdir /var/www/awstats

On va ensuite créer un vitualhost spécifique "awstats" à la consultation des logs.

On édite donc le fichier suivant :

  1. sudo nano /etc/apache2/sites-available/awstats

Dans lequel on met ceci (modifiez en fonction d’un nom de domaine pointant sur votre serveur, dans notre cas stats.domaine.example) :

  1. <VirtualHost *:80>
  2. ServerName stats.domaine.example
  3.  
  4. ServerAdmin postmaster@domaine.example
  5.  
  6. ScriptAliasMatch ^/awstats\.pl$ /usr/lib/cgi-bin/awstats.pl
  7. DocumentRoot /var/www/awstats
  8.  
  9. <Directory "/usr/lib/cgi-bin">
  10. AllowOverride None
  11. Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
  12. Order allow,deny
  13. Allow from all
  14.  
  15. AuthUserFile /var/www/awstats/.htpasswd
  16. AuthName "Restricted Access"
  17. AuthType Basic
  18. Require valid-user
  19. </Directory>
  20. Alias /awstats-icon/ /usr/share/awstats/icon/
  21. <Directory /usr/share/awstats/icon>
  22. Options None
  23. AllowOverride None
  24. Order allow,deny
  25. Allow from all
  26. </Directory>
  27. </VirtualHost>

Télécharger

On active ensuite le site avec la commande :

  1. sudo a2ensite awstats

On crée le htpass pour l’authentification, où username est à remplacer par votre nom d’utilisateur :

  1. sudo htpasswd -c /var/www/awstats/.htpasswd username

Si vous souhaitez ajouter un autre utilisateur, utilisez la même commande en enlevant l’option -c qui sert à créer le fichier et bien sûr username qui est déjà créé.

On donne les bons droits au fichier htpasswd créé :

  1. chown -Rvf www-data:www-data /var/www/awstats/.htpasswd

On peut ensuite redémarrer le serveur Apache pour prendre en compte les modifications :

  1. sudo /etc/init.d/apache2 restart

Configuration de Awstats lui-même

Lors de la mise à jours des informations, le script de collecte parcourt l’ensemble des fichiers du répertoire /etc/awstats finissant par .conf et les passe en paramètre du script.

Un fichier de configuration par virtualhost Apache

Pour avoir les statistiques de chaque sous domaine, la meilleure solution est que chaque virtualhost utilise son propre fichier de log access.log via la directive CustomLog dans leur configuration. Leur format doit être combined.

Ensuite, pour chaque virtualhost, on va créer un fichier de configuration pour awstats.

Prenons l’exemple du domaine domaine.example, on souhaite par exemple récupérer les statistiques du virtualhost qui affiche www.domaine.example.

La définition de ses logs doit ressembler à cela dans son virtualhost par exemple :

  1. CustomLog /var/log/apache/domaine.log combined

On crée un nouveau fichier de configuration awstats en copiant celui de référence :

  1. sudo cp /etc/awstats/awstats.conf /etc/awstats/www.domaine.example.conf

Puis on édite cette nouvelle configuration :

  1. sudo nano /etc/awstats/www.domaine.example.conf

On y met au moins ces lignes :

  1. LogFile="/var/log/apache2/domaine.log"
  2. LogFormat = 1
  3. LogType=W
  4. DNSLookup=1
  5. SiteDomain="domaine.example"
  6. HostAliases="127.0.0.1 http://www.domaine.example domaine.example"
  7. DirIcons="/awstats-icon"
  8. AllowFullYearView=3

Télécharger

Les statistiques sont alors visibles à l’adresse http://stats.domaine.example/awstats.pl?config=www.domaine.example, vous devrez vous identifier grâce au htpasswd créé plus tôt. Le paramètre d’URL www.domaine.example correspond au nom de fichier de configuration d’awstats auquel on enlève awstats. et .conf.

Lors de la première connexion, si la tâche CRON n’a toujours pas eu lieu, vous pouvez lancer manuellement l’analyse des logs par la commande :

  1. sudo -u www-data /usr/bin/perl /usr/lib/cgi-bin/awstats.pl -update -config=www.domaine.example

Articles complémentaires

  • Auteur :
  • Publié le :
  • Mis à jour : 30/01/18

6 commentaires


Qui êtes-vous ?
Ajoutez votre commentaire ici
  • Ce formulaire accepte les raccourcis SPIP [->url] {{gras}} {italique} <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.