Webalizer

Webalizer est un logiciel permettant d'analyser l'utilisation des serveurs web en générant, à partir de leurs journaux d'accès (log), des comptes rendus sous forme de pages web. Diffusé sous licence GPL, c'est aujourd'hui un des outils d'administration de serveur web les plus utilisés (2005), en particulier sur les architectures LAMP.
Webalizer peut être installé depuis les paquets. L'article suivant présente une installation depuis les sources.

Le tutoriel ci dessous vous explique comment installer webalizer sur une machine dotée du proxy squid

Depuis Webmin

Webalizer nécessite un dossier, à indiquer dans Webmin, dans lequel il enregistrera les rapports générés. Créez donc un dossier webalizer dans le dossier personnel :

mkdir ~/webalizer

Puis installez le depuis la console webmin

Depuis les sources

Il est fortement conseillé d'installer la dernière version de Webalizer, disponible sur le site des créateurs. Attention ce n'est pas la même version que celle proposée sur webmin.

pour cela téléchargeons d'abord les sources:

wget ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.21-02-src.tgz

ensuite décompressons l'archive:

tar -zxvf webalizer-2.21-02-src.tgz

Vous obtenez alors le répertoire webalizer-2.21-02 On y accède:

cd webalizer-2.21-02

A ce stade, il est nécessaire d'installer des logiciels tiers afin de correctement compiler l'application;

Si les sources que je cite plus bas ne suffisent pas à correctement compiler webalizer, pensez à regarder le message d'erreur obtenu afin de savoir quoi installer, par exemple checking for main in -lz… no configure: error: z library not found.. please install libz vous indique que la librairie libz doit être installée avant de compiler.
sudo apt-get install zlib1g-dev
sudo apt-get install libpng12-dev
sudo apt-get install libgd2-noxpm-dev

Une fois ceci fait, on compile

./configure --with-language=french
make
sudo make install

L'opération terminée, vous trouverez un exemple de configuration dans /usr/local/etc/webalizer.conf.sample

Copions le afin d'avoir l'original sous la main en cas de problème

cd /usr/local/etc/

sudo cp webalizer.conf.sample webalizer.conf

Puis éditons le afin de le modifier

sudo nano webalizer.conf

Voici les lignes à décommenter/modifier

LogFile        /var/log/squid/access.log
OutputDir      /var/www/webalizer ## apache doit être installé! ##
HistoryName     webalizer.hist
Incremental     yes
IncrementalName webalizer.current
ReportTitle    Statistiques Webalizer ##mettez ce que vous souhaitez voir apparaitre sur votre rapport##
HostName        NomDuProxy
PageType        htm*
PageType        cgi
HTAccess        yes ##si vous souhaitez gérer un accès par mot de passe aux statistiques de Webalizer.##
LinkReferrer    yes ## lien html directement accessible depuis la page web##
TopSites        20
TopKSites       20
TopURLs         20
TopKURLs        20
TopReferrers    20
TopAgents       20
TopCountries    20
TopEntry        20
TopExit         10
TopSearch       20
TopUsers        20
ideSite        *votredomaine.com
HideSite        votredomaine.com
HideSite        localhost
HideReferrer    votredomaine.com
HideReferrer    Direct Request ## les 5 lignes ci dessus afin de ne pas prendre en compte les accès locaux sur Squid ##
HideURL         *.gif
HideURL         *.GIF
HideURL         *.jpg
HideURL         *.JPG
HideURL         *.png
HideURL         *.PNG
HideURL         *.ra
IgnoreSite      localhost
IgnoreURL       /taskbar*
SearchEngine.yahoo.com.p=
SearchEngine.altavista.com.q=
SearchEngine.google.com.q=
SearchEngine.google.fr.q=
SearchEngine.google.be.q=
SearchEngine.google.ca.q=
SearchEngine.google.co.ma.q=
SearchEngine.google.co.uk.q=
SearchEngine.eureka.com.q=
SearchEngine.google.ch.q=
SearchEngine.lycos.com.query=
SearchEngine.hotbot.com.MT=
SearchEngine.search.live.com.q=
SearchEngine.search.msn.com.q=
SearchEngine.infoseek.com.qt=
SearchEngine.webcrawler.searchText=
SearchEngine.excite..search=
SearchEngine.netscape.com.search=
SearchEngine.mamma.com.query=
SearchEngine.alltheweb.com.query=
SearchEngine.northernlight.com.qr=
De nombreuses options sont disponibles pour personnaliser le résultat, n'hésitez pas à regarde le fichier de conf principal

Nous avons enfin notre fichier de configuration prêt, avec dans mon exemple les résultats qui s'enregistreront dans /var/www/webalizer/

Nous pouvons lancer la commande:

sudo webalizer
Webalizer V2.21-02 (Linux 2.6.24-19-server i686) French
Using logfile /var/log/squid/access.log (clf)
Creating output in /var/www/webalizer
Hostname for reports is 'MonProxy'
Reading history file... webalizer.hist
Reading previous run data... webalizer.current
Saving current run data... [03/18/2009 13:51:06]
Generating report for Mars 2009
Saving history information...
Generating summary report
7293 records (3378 ignored) in 1 seconds, 7293/sec

Vous n'obtiendrez pas forcément le même résultat que l'exemple ci dessus, car la première fois webalizer indique qu'il n'a pas trouvé de fichiers plus anciens, ce qui est logique…

Vérifions que le rapport à bien été généré

cd /var/www/webalyser
ls -l

Qui me donne:

  1. rw-r–r– 1 root root 2186 2009-03-17 15:48 ctry_usage_200903.png
  2. rw-r–r– 1 root root 2823 2009-03-18 13:52 daily_usage_200903.png
  3. rw-r–r– 1 root root 2076 2009-03-18 13:52 hourly_usage_200903.png
  4. rw-r–r– 1 root root 3762 2009-03-18 13:52 index.html
  5. rw-r–r– 1 root root 108635 2009-03-18 13:52 usage_200903.html
  6. rw-r–r– 1 root root 2201 2009-03-18 13:52 usage.png
  7. rw-r–r– 1 root root 579914 2009-03-18 13:52 webalizer.current
  8. rw-r–r– 1 root root 2880 2009-03-18 13:52 webalizer.hist

Accédons y depuis un navigateur web

http://ipdemonproxy/webalizer/index.htm

Vous obtiendrez normalement cette magnifique page:

Libre à vous ensuite de faire vos recherches selon le mois sélectionné.

Générer un script pour lancer webalizer tous les jours

Afin d'automatiser la tâche, il est nécessaire de rajouter un script.

cd /etc/cron.daily/

Puis créez un script:

sudo nano 0logrotate-webalizer

Entrez ensuite les paramètres suivants;

#!/bin/sh
sudo webalizer
/usr/sbin/logrotate /etc/logrotate.conf

Le script se lancera donc tous les jours, et exécutera webalizer.

Auteur : geronimoO.