Tout d'abord je signale qu'il existe plusieurs façons de mettre en place Awstats, je n'en décrirais qu'une seule ( celle - ci fonctionne chez moi ) mais d'autres son possible (exemple avec pti-seb)

Ces explications sont largement inspirées de dotvoid.com et les scripts présentés sont disponible direct en cliquant ici.

Installation

L'installation est très simple :

yum install awstats

Le fichier /etc/http/conf.d/awstats.conf est crée pour permet l'accès aux stats depuis l'interface web.
Les fichiers de configuration de chaque domaine se trouverons dans /etc/awstats
Le script d'execution sera lui sur /usr/share/awstats/wwwroot/cgi-bin/.

Configuration

1. Configuration d'un accès restreint

Ouvrez le fichier /etc/http/conf.d/awstats.conf avec votre éditeur de texte préféré.
Remplacez

<Directory "/usr/share/awstats/wwwroot">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>

par

<Directory "/usr/share/awstats/wwwroot">
Options None
AllowOverride None
Order allow,deny
Allow from all
AuthType Basic
AuthName stats
AuthUserFile /etc/awstats/awstats.pwd
require valid-user
</Directory>

Les login/pass pour accéder aux stats seront donc stockés dans le fichier /etc/awstats/awstats.pwd

2. Configuration des logs d'Apache

Nous allons configurer apache pour qu'il établisse des fichiers de logs exploitable par Awstats.
Dans le fichier /etc/httpd/conf/httpd.conf ajoutez ces lignes :

LogFormat "%v %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" cplus
CustomLog /var/log/httpd/access_awstats_log cplus

Enregistrez votre fichier.

3. Configuration du modèle d'Awstats

Commencez par enregistrer une copie de sauvegarde de votre modèle actuel.

cp /etc/awstats/awstats.model.conf /etc/awstats/awstats.model.conf.save

Editez maintenant le fichier /etc/awstats/awstats.model.conf en remplacant les lignes par celles ci dessous :

LogFile="/var/log/httpd/access_awstats_log"
LogFormat = "%virtualname %host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot"
SiteDomain="$DOMAIN"
HostAliases="$ALIASES"
DirData="/home/$USERNAME/awstats"
AllowAccessFromWebToAuthenticatedUsersOnly=1
AllowAccessFromWebToFollowingAuthenticatedUsers="$USERNAME"

Enregistrez votre fichier.

4. Configuration du vhost

Ajoutez à votre vhost cette ligne:

CustomLog logs/access_awstats_log cplus

Ce qui permettra de "logguer", en plus de votre fichier classique, dans un fichier commun qui peut être analysé par Awstats.

Votre vhost doit ressembler à peut près à cela ( vous pouvez bien sûr personnaliser )

<VirtualHost *:80>
ServerName votre.domaine.fr
ServerAlias votre.domaine.com
DocumentRoot /home/user/www/
ErrorLog /home/user/logs/error.log
CustomLog /home/user/logs/access.log combined
CustomLog logs/access_awstats_log cplus
ScriptAlias /cgi-bin/ /home/user/cgi-bin/
<Directory /home/user/www/>
AllowOverride All
Options -Indexes +ExecCGI
Order Deny,Allow
Allow from all
</directory>
</VirtualHost>

Automatisation

1. Création du fichier de configuration Awstats

Pour créer automatiquement votre fichier de configuration Awstats suffit d'executer ce script et de suivre les instructions

#!/bin/bash
#debut du script de generation des conf awstats
#script original : http://www.dotvoid.com/view.php?id=29
echo "Enter the username:"
read WUSERNAME

ACCESS_FILE="/etc/awstats/awstats.pwd"
STAT_DIR="/home/$WUSERNAME/awstats"

echo "Enter the password:"
read PASSWORD

echo "Enter the main domain:"
read DOMAIN

echo "Enter aliases separated by space:"
read ALIASES

# Create the statistics directory
if -d $STAT_DIR; then
echo "Statistics dir already exist"
else
mkdir $STAT_DIR
fi

# Create the virtual host awstats.conf
cat /etc/awstats/awstats.model.conf | \
sed -e "s/\\\$DOMAIN/$DOMAIN/g" | \
sed -e "s/\\\$USERNAME/$WUSERNAME/g" | \
sed -e "s/\\\$ALIASES/$ALIASES/g" > \
"/etc/awstats/awstats.$DOMAIN.conf"

# Add user/password to password file
if -e $ACCESS_FILE; then
/usr/bin/htpasswd -bm $ACCESS_FILE $WUSERNAME $PASSWORD
else
/usr/bin/htpasswd -bm -c $ACCESS_FILE $WUSERNAME $PASSWORD
fi
#fin du script

2. Génération Automatique des Stats

Téléchargez ce script

Vous pouvez ensuite ajouter ce script à la rotation des logs d'Apache dans le fichier /etc/logrotate.d/httpd comme par exemple :

prerotate /votre/dossier/generation-awstats.sh

Cela générera vos statistiques toutes les heures avant la rotations des logs d'Apache

Les scripts sont inspirés de dotvoid.com modifiés pour fonctionner sous Fedora Core 5.

Je suis à l'écoute de vos commentaires et suggestions

A+


Télécharger directement les scripts awstats ci dessus : cliquez ici
Autres outils de statistiques:webalizer