Fedora Core 5 et Awstats
Qui n'a jamais révé d'avoir de superbes statistiques de fréquentation de son site web ?
Evidement plusieurs solutions existe allant de Google Analytics à Weborama en passant par Xiti.
Mais quand on veut du gratuit sans passer par un tiers et sans installer de code sur son site, il nous reste le fabuleux Awstats
Nous allons voir comment le mettre en place dans un environnement mutualisé avec plusieurs vhost et en automatisant au maximum la génération des statistiques et la création des fichiers de configuration.
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
Bonjour. Je suis le mainteneur d'Awstats pour Fedora, donc je connais pas trop mal l'appli. Je voudrais signaler qu'Awstats n'a pas une historique de sécurité des plus reluisantes, donc je déconseille TRES FORTEMENT de laisser un accès public aux stats.
Deux solutions sont viables selon moi :
- un accès au CGI protégé par htaccess
- utiliser la génération statiques des pages.
En effet Awstats peut générer du HTML statique, et il y a même un script pour aider à ça : /usr/share/awstats/tools/awstats_buildstaticpages.pl
Avec le HTML statique, évidemment, pas de problème de sécurité.
Salut Aurélien,
C'est vrai j'aurais du le préciser, mais dans mon tuto tous les accès à awstats sont protégé par un .htaccess dans le vhost.
Par contre c'est vrai qu'un script de génération de page html automatique par vhost serait des plus interessant.
Merci en tout cas pour ton package
J'avais écrit un article sur awstats à une époque :
http://www.tux-planet.fr/blog/?2006...
tuto totaltement incomplet. Quand on ne s'y connait pas trop, on a aucune idée de ce que l'on est en train de faire...
"votre vhost doit ressembler a cela " euh ?
toutes tes lignes elles sortent d'ou ?
on les retroueve ou ?
Cette documentation n'est pas destinée à des débutants, une connaissance et une maitrise des base des linux et d'un serveur http sont indispensable pour une bonne compréhension.
Je ne peux que te conseiller de te documenter sur la mise en place de Vhost, leur utilité et leur syntaxe pour pouvoir mettre en place les statistiques Awstats tel que je l'explique ici.
Pour répondre à Clarion :
Ce n'est pas un tuto sur la conf d'apache mais sur Awstats ... Si tu veux un tuto apache et vhosts:
http://gentoo-wiki.com/HOWTO_Apache...
Effectivement, la génération statique est bien plus interessante... surtout que de toute façon on est obligé de lancer un parsing du fichier de log apache régulièrement ...
j'ai un exposé sur awstats et vous ma sauvé la vie merci