Awstats est un outil qui permet d'interroger les traces des serveurs Apache (mais pas qu'eux), pour éditer des statistiques.
Par défaut, le logiciel ne travaille qu'avec un site. Comme nous avons récupéré les logs de l'ensemble des serveurs, il faut mettre en place une configuration spécifique pour que les statistiques soient consultables.
Le plus simple, c'est d'installer le paquetage fourni dans la distribution. Il est également possible de télécharger la dernière version depuis http://awstats.sourceforge.net. Décompressez alors l'archive dans le dossier /usr/local/awstats, puis lancez le programme awstats_configure.pl, qui va permettre de préparer les premiers fichiers de configuration.
Le plus facile : dans /etc/apache2/sites-available, créez un nouveau fichier, awstats, et éditez-le :
<Directory /var/lib/awstats>
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
# This provides worldwide access to everything below the directory
# Security concerns: none known
<Directory /usr/share/awstats/icon>
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
# This provides worldwide access to everything below the directory
# Security concerns: none known
<Directory /usr/share/java/awstats>
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
# This provides worldwide access to everything in the directory
# Security concerns: none known
Alias /icon/ /usr/share/awstats/icon/
# This provides worldwide access to everything in the directory
# Security concerns: none known
Alias /awstatsclasses/ /usr/share/java/awstats/
# This (hopefully) enables _all_ CGI scripts in the default directory
# Security concerns: Are you sure _all_ CGI scripts are safe?
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
ScriptAlias /stats /usr/lib/cgi-bin/awstats.pl
<Directory /usr/lib/cgi-bin/>
DirectoryIndex awstats.pl
UseCanonicalName off
# AuthName "Statistiques awstats"
# AuthType Basic
# Require valid-user
# AuthUserFile /che/min/.passwdstats
Options +ExecCGI
</directory>
ScriptAlias /awstats/ /usr/lib/cgi-bin/
Selon votre configuration, vérifiez les chemins d'accès (/usr/lib/cgi-bin, /usr/share/awstats/icon, etc.).
Si vous souhaitez mettre en place un contrôle d'accès, faites-le dans les balises <Directory /usr/lib/cgi-bin/>
Activez le site :
a2ensite awstats
service apache2 reload
Le principe, c'est de créer une base de données par site concerné. Pour cela, on va rajouter un fichier de configuration dans le dossier /etc/awstats.
Si votre site s'appelle intranet, le fichier devra être nommé impérativement awstats.intranet.conf, sinon vous n'arriverez pas soit à créer la base de données, soit à la consulter.
Voici un exemple de configuration :
LogFile="/bin/sed 's/ / /g' </var/log/apache2_access.log |"
LogFormat="%other %other %other %other %other %virtualname %host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot"
# Racine du site
SiteDomain="intranet"
#HostAliases="localhost 127.0.0.1 REGEX[societe\.com*$]"
HostAliases="intranet.societe.com:443"
DirData="/var/lib/awstats/intranet"
# pas de recherche DNS
DNSLookup=0
# Autorise la consultation de l'annee entiere
AllowFullYearView=3
Quelques explications :
Créez un fichier texte, qui comprend, sur chaque ligne, le nom du site à analyser :
listeSitesAwstats.txt
site1
site2
intranet
À chaque site correspond un fichier du type awstats.site.conf.
Créez un script de mise à jour :
majAwstats.sh
#!/bin/bash
# Mise a jour des bases de donnees awstats
FICHIER=/root/listeSitesAwstats.txt
COMMANDE="/usr/lib/cgi-bin/awstats.pl -update -config="
LOG="/var/log/awstats.log"
SUJET=`hostname`" Erreur lors de la generation des statistiques AWSTATS"
DEST="maboite@societe.com"
for SITE in `cat $FICHIER|grep "^[^#]"`
do
$COMMANDE$SITE >/dev/null 2>>$LOG
done
if [ -s $LOG ] ; then
mail -s "$SUJET" $DEST < $LOG
fi
Ce script va générer un courriel en cas d'erreur.
Programmez-le quotidiennement :
crontab -e
# m h dom mon dow command
15 19 * * * /root/majAwstats.sh
Dans un navigateur, lancez l'adresse web suivante :
http://serveurlog/stats/awstats.pl?config=intranet
où config contient le nom du site correspondant.
3. Configurations spécifiques des serveurs distants Mettre en place un serveur central de logs avec RSYSLOG 5. Enregistrer les logs Windows dans rsyslog