Webalizer

Classé dans : Linux, Logiciels | 0

Webalizer est un logiciel qui permet d’analyser les fichiers log d’Apache et de générer des rapports graphiques en HTML.

Ces rapport présentent de nombreux indicateurs sur l’activité du site. Ils indique également les navigateurs utilisés, les ages d’arrivés (entrée) et les pages de sortie.

Webalizer utilise un fichier de configuration qui permet de spécifier tous les paramètres souhaités.

A noter que Webalizer sait également traiter les logs de ProFtpd, Wu-ftpd, Squid et tous les logs au format W3C standard. Les fichiers logs compressés sont traités en natif (pas besoin de les décompresser).

Autre points important, Webalizer n’utilise pas de cookie ou autre ‘traceur’ comme Google Analytics par exemple. C’est donc un système plus respectueux de la vie privée. Aucune information personnelle n’est traité, stocké… Seuls les logs Apache sont utilisés.

Quelques infos sur les termes utilisés : https://webalizer.net/webalizer_help.html

Pages => nombres de pages vues
Hits => nombres de requêtes (pages, images, css, audio, vidéo…)
Sessions => Nombre de visites (plusieurs pages) depuis une même adresse IP, sans activité une session est considérée comme terminée au bout de 30m. Valeur modifiable dans la configuration avec : VisitTimeout

Installation

La plupart des distributions Linux intègrent Webalizer, par exemple sur Debian il suffit de taper : apt install webalizer.

vous devriez pouvoir installer Webalizer facilement grâce à votre gestionnaire de paquet.

Fichier de configuration (commenté)

## fichiers de logs a traiter
LogFile /var/log/apache2/monsite-access.log

## dossier pour générer les rapports HTML
OutputDir /varw/www/stats/monsite

## URL de votre site
HostName  URL_MONSITE
 
UseHTTPS yes 
Quiet yes
GMTTime no 
CountryGraph yes 
CountryFlags no 
DailyGraph yes 
DailyStats yes 
HourlyGraph no 
HourlyStats no 
## page principal du site, ici c'est un wordpress donc c'est index.php
PagePrefix index.php 
GraphLegend yes 
GraphLines 3 
## nombre de mois a traiter au max
IndexMonths 6 
YearHeaders yes 
YearTotals yes
GraphMonths 12

## timeout pour traiter les visites 30mn (900s)
VisitTimeout 900

MangleAgents 5 
StripCGI yes 

## traite le logs en mode incremental (ajout)
Incremental yes 

# cache DNS, accélère le traitement des logs
DNSCache dns.cache 
DNSChildren 5 
CacheIPs no 
CacheTTL 7 

## Valeurs pour limiter les tableaux à un nombre de ligne
TopAgents 10 
AllAgents yes 
TopReferrers 20 
AllReferrers yes 
TopSites 20
TopKSites 20
AllSites yes 
TopURLs 30 
TopKURLs 20
AllURLs yes 
Topcountries 20
TopEntry 30 
TopExit 30
TopSearch 20
AllSearchStr yes 
TopUsers 10 
AllUsers yes

## ignore ces urls (ne sont pas comptabilisées dans les stats)
IgnoreURL /wp-admin*
IgnoreURL /robots.txt
IgnoreURL /wp-include*
IgnoreURL /feed

## masque ces stats mais sont prises en compte pour les calculs de %
HideURL  *.gif
HideURL  *.jpeg
HideURL  *.jpg
HideURL  *.png
HideURL  *.GIF
HideURL  *.JPEG
HideURL  *.JPG
HideURL  *.PNG

## ignore les accés depuis cett adresse
IgnoreSite x.x.x.x 

A vous d’adapter le fichier selon vos besoins.

Configuration Apache

Il est nécessaire que les logs Apache soit configurés en mode Combined pour que Webalizer dispose de toutes les informations nécessaire.

Il suffit d’éditer le fichier de config (virtualhost) de votre site et de vérifier si la ligne de logs pour les accès à bien l’option combined.

CustomLog /var/log/apache2/monsite-access.log combined

Logrotate

Par défaut les logs Apache sont archivés automatiquement via le process Logrotate. En général le fichier de log actif est monsite-access.log, le log n-1 est monsite-access.log.1, le n-2 est monsite-access.log.2

Suivant la configuration de logrotate l’archivage peut conserver 3, 4 voir plus de fichiers logs.

Webalizer doit être exécuté via une tâche planifiée (cron). L’astuce pour ne pas perdre des données est de ne pas analyser fichiers actif (monsite-access.log) mais le n-1 : monsite-access.log.1.

Ce fichier est statique et n’est plus modifié par Apache.

Planification

Webalizer se lance avec la commande : webalizer -c fichier.conf

Pour planifier sont exécution afin que les rapports soient générés automatiquement toutes les nuits par exemple il suffit d’ajouter une ligne dans votre crontab :

50 * * * * /usr/bin/webalizer -c /abosulute_path/monsite.conf 

A noter que si la tâche est planifiée sur un compte autre que root, il faut s’assurer que ce compte a le droit (R) lecture sur les fichiers de logs (/var/log/apache2), et le droit d’écriture (W) dans le dossier pour générer les rapports.