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.tld) :

  1. <VirtualHost *:80>
  2. ServerName stats.domaine.tld
  3.  
  4. ServerAdmin postmaster@domaine.tld
  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.tld, on souhaite par exemple récupérer les statistiques du virtualhost qui affiche www.domaine.tld.

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.tld.conf

Puis on édite cette nouvelle configuration :

  1. sudo nano /etc/awstats/www.domaine.tld.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.tld"
  6. HostAliases="127.0.0.1 http://www.domaine.tld domaine.tld"
  7. DirIcons="/awstats-icon"
  8. AllowFullYearView=3

Télécharger

Les statistiques sont alors visibles à l’adresse http://stats.domaine.tld/awstats.pl?config=www.domaine.tld, vous devrez vous identifier grâce au htpasswd créé plus tôt. Le paramètre d’URL www.domaine.tld 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.tld

Articles complémentaires

  • Auteur :
  • Publié le :
  • Mis à jour : 18/06/14

4 commentaires


  • Le 2 février 2014 à 18:41, par marcimat En réponse à : Installation et configuration de base d’Awstats

    Outre les quelques modifications de configuration pour apache 2.4 (fichiers de configuration aux extensions .conf , directives Require etc) il est possible que le module pour gérer les CGI ne soit pas actif, et dans ce cas là, le script Perl de awstats s’affiche au lieu de s’exécuter.

    Une solution possible :

    1. a2enmod cgid
    2. service apache2 restart

    Télécharger

    Répondre à ce message

  • Le 9 août 2015 à 13:00, par edosko45 En réponse à : Installation et configuration de base d’Awstats

    Bonjour,

    A quel moment on place un fichier dans le répertoire /var/www/awstats/ outre .htpasswd ?

    Le problème dans la configuration de awstats est la même avec chaque produit qui utilise Apache, il faut faire de façon à ne pas modifier le fonctionnement de Apache et il y a toujours un cas dans lequel le fonctionnement des sites web est impactée...

    Bonne doc, merci !

    Répondre à ce message

    • Le 10 août 2015 à 10:12, par Quentin Drouet En réponse à : Installation et configuration de base d’Awstats

      Il n’y a rien d’autre à mettre dans le répertoire en question, il ne sert que pour le htpasswd pour le stocker à un endroit mémorisable facilement.

      Ce fichier peut être mis n’importe où, il suffit donc de changer son chemin dans la configuration du virtualhost.

      La modification de la conf apache est pour avoir un virtualhost pour la consultation des stats seulement.

      Répondre à ce message

  • Le 9 mai à 14:30, par hauru En réponse à : Installation et configuration de base d’Awstats

    Bonjour,

    J’ai un problème avec la conf d’apache :

    apache2 : Syntax error on line 219 of /etc/apache2/apache2.conf : Syntax error on line 1 of /etc/apache2/sites-enabled/appli-awstats.conf

    Quelqu’un aurait une solution ?

    Répondre à ce message

Qui êtes-vous ?
  • [Se connecter]
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.