Mémento GNU/Linux
Configurer awstats pour plusieurs hôtes virtuels
Objectifs
  - Utiliser le programme de statistiques web awstats pour faire 3 rapports différents.
 
  
    - Utilisation d'un site web public depuis internet (WAN) : http://myserver.org/.
 
    - Utilisation du même site web depuis le réseau local (LAN) : http://myserver.reseau.local/..
 
    - Utilisation d'un site web public sécurisé (WAN) : https://myserver.org/..
 
  
  - Protéger les statistiques de consultations extérieures au réseau local.
 
Pré-requis
  - Les indications ci-dessous sont à réaliser sous le compte root.
 
  - La version d'apache utilisée est la 2.0. La configuration
    d'apache n'est pas l'objet de ce document.
 
Bug version 7.0
  Installation
  
    - Sur une distribution Mageia l'installation est très facile.
 
    
[root@machine_locale ~]# urpmi awstats
    http://mirrors.mageia.org/api/mageia.1.x86_64.list: media/core/release/awstats-7.0-1.mga1.noarch.rpm
installation de awstats-7.0-1.mga1.noarch.rpm depuis /var/cache/urpmi/rpms
Préparation ...                  #########################################################################
      1/1: awstats               #########################################################################
Shutting down httpd: [  OK  ]
Vérification de l'intégrité de la configuration d'apache :  [  OK  ]
Starting httpd: [  OK  ]
[root@machine_locale ~]#
    Le fichier de configuration par défaut d'awstats est /etc/awstats/awstats.conf. Il faudra
      en créer un nouveau pour chaque site supplémentaire.
    Les variables a adapter seront LogFile, SiteDomain, HostAliases, DirData,
      SkipHosts et OnlyHosts.
  
 
  Statistiques sur l'usage du serveur public depuis internet
  
    - Fichier de configuration : /etc/awstats/awstats.conf.
 
    
LogFile="/var/log/httpd/access_log
SiteDomain="myserver.org"
HostAliases="localhost 127.0.0.1"
DirData="/var/lib/awstats"
SkipHosts="127.0.0.1 REGEX[^192\.168\.]"
OnlyHosts=""
    LogFile contient le nom du fichier de log standard d'apache.
    SiteDomain contient le nom du site configuré dans apache et tel qu'il est vu depuis l'internet
      (WAN).
    DirData indique le répertoire où seront sauvegardées les statistiques mensuelles.
    SkipHosts demande à awstats d'exclure les requêtes venant du réseau local.
    OnlyHosts est vide.
  
 
  Statistiques sur l'usage du serveur public depuis le réseau local
  
    - Fichier de configuration : /etc/awstats/awstats.local.conf.
 
    
LogFile="/var/log/httpd/access_log
SiteDomain="myserver.reseau.local"
HostAliases="localhost 127.0.0.1"
DirData="/var/lib/awstats/local"
SkipHosts=""
OnlyHosts="127.0.0.1 REGEX[^192\.168\.]"
    LogFile contient le nom du même fichier de log standard d'apache.
    SiteDomain contient le nom du site tel qu'il est vu depuis l'intranet (LAN).
    DirData indique le répertoire où seront sauvegardées les statistiques mensuelles.
      Ce n'est pas le même que pour les statistiques précédentes. Ce répertoire doit être créer à la main avec
      des droits d'accès adéquats.
    SkipHosts est vide.
    OnlyHosts demande à awstats de ne prendre en compte que les requêtes venant du réseau local.
  
 
  Statistiques sur l'usage du serveur public sécurisé depuis internet
  
    - Fichier de configuration : /etc/awstats/awstats.ssl.conf.
 
    
LogFile="/var/log/httpd/ssl_request_log
SiteDomain="myserver.org:443"
HostAliases="localhost:443 127.0.0.1:443"
DirData="/var/lib/awstats/ssl"
SkipHosts="127.0.0.1 REGEX[^192\.168\.]"
OnlyHosts=""
    LogFile contient le nom du fichier de log ssl tel que configurer dans /etc/httpd/conf/vhosts.d/.
    SiteDomain contient le nom du site configuré dans apache et tel qu'il est vu depuis l'internet
      (WAN).
    DirData indique le répertoire où seront sauvegardées les statistiques mensuelles. Créer un répertoire spécifique.
    SkipHosts demande à awstats d'exclure les requêtes venant du réseau local.
    OnlyHosts est vide.
  
  Important
  
 
  Programmer la mise à jour quotidienne
  
    - Ajouter une tâche CRON nommée awstats dans /etc/cron.daily/ qui contient le code suivant :
 
    
#!/bin/sh
/usr/share/awstats/www/awstats.pl -config=/etc/awstats/awstats.conf -update > /dev/null
/usr/share/awstats/www/awstats.pl -config=/etc/awstats/awstats.local.conf -update > /dev/null
/usr/share/awstats/www/awstats.pl -config=/etc/awstats/awstats.ssl.conf -update > /dev/null
    Rendre le script exécutable :
    [root@machine_locale ~]# chmod a+x /etc/cron.daily/awstats
[root@machine_locale ~]# 
    Le script Perl doit être lancé pour chacun des hôtes définis avec son fichier de configuration
      en paramètre.
    Pour des mises à jour plus fréquentes, utiliser le répertoire : /etc/cron.hourly/
    Lancer ce script une première fois pour générer les statistiques :
    [root@machine_locale ~]# /etc/cron.daily/awstats
[root@machine_locale ~]# 
  
 
  Configurer un hôte virtuel pour accèder aux statistiques
  
    - Créer ou configurer ainsi le fichier : /etc/httpd/conf/webapps.d/awstats.conf
 
    
# Awstats configuration
Alias /awstats /usr/share/awstats/www
    Order allow,deny
    Allow from 127.0.0.1
    Allow from 192.168.0.0/24
    Options ExecCGI
    AddHandler cgi-script .pl
    DirectoryIndex awstats.pl
SetEnv PERL5LIB /usr/share/awstats/lib:/usr/share/awstats/plugins
    De cette façon les statistiques ne sont accessible que depuis le réseau local.
  
 
  Accès aux différentes statistiques
  
    - Pour consulter les statistiques du site principal utiliser l'adresse
      http://myserver.reseau.local/awstats/.
 
    - Pour consulter les statistiques des autres sites il faut passer en paramètre le nom du fichier de configuration.
    Exemple : http://myserver.reseau.local/awstats/?config=/etc/awast/awstats.local.conf 
    - Ce n'est pas très élégant de mettre le chemin d'un fichier de configuration dans une Url.
      Pour éviter une telle horreur, il suffit de créer 2 liens symboliques vers ces fichiers depuis le
      répertoire d'exécution d'awstats (/usr/share/awstats/www/ dans une Mageia/Mandriva).
 
    
[root@machine_locale ~]# cd /usr/share/awstats/www/
[root@machine_locale ~]# ln -s /etc/awstats/awstats.local.conf local.conf
[root@machine_locale ~]# ln -s /etc/awstats/awstats.ssl.conf ssl.conf
[root@machine_locale ~]# 
    L'accès aux deux autres sites pourra maintenant se faire ainsi :
    http://myserver.reseau.local/awstats/?config=local.conf
    http://myserver.reseau.local/awstats/?config=ssl.conf