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