Free-SA analyseur de logs Squid

Si vous avez besoin d’analyser des logs Squid, plusieurs moyens s’offrent à vous : l’antique SARG (Squid Analysis Report Generator), lightSquid, squid-analyser ou free-SA. Celui-ci est écrit en C et est à compiler. Il présente une commande simple d’utilisation, mais surtout une rapidité d’exécution par rapport à SARG.

Il présente toutefois un défaut, c’est un outil brut. On lui donne le fichier de log de Squid, un scope de dates et il génère un rapport de statistiques en html. Dans mon cas, j’ai besoin de traiter plusieurs fichiers, parfois compressés en gzip, parfois plusieurs fichiers à la fois. Free-SA ne le gère pas à la base, mais il y a moyen de l’implémenter via un script. En plus de cela j’ai une centralisation des logs de plusieurs proxy Squid (gérés par Syslog-ng). Je dois donc gérer tout cela de manière efficace.

Free-sa

Free-sa doit être compilé, pour cela, allez récupérer les sources de free-sa. Si quelqu’un à pris la peine de faire un paquet Deb d’installation, j’ajouterai volontiers son lien.

Installation

Paquets nécessaires à la compilation :

Il n’y a pas de configuration pour Debian, mais on se base sur celle d’Ubuntu.

La configuration pour Debian a été publiée sur leur site : http://sourceforge.net/p/free-sa/patches/8/attachment/debian-i586-gcc4.mk, elle est à mettre dans le dossier “configs/”.

Ensuite il faut éditer le fichier car on est dans une archi amd64 :

Remplacer :

Éditer global.mk pour utiliser ce fichier de conf :

Et on compile…

Attention sur Debian Wheezy 7.3 64 bits on utilise gcc-4.7 dans mon cas.

  • Fichiers de conf dans : /etc/free-sa
  • Ajout de man : /usr/man
  • Ajout de share : /usr/share/
  • Ajout de cgi-bin dans : /var/www/free-sa
  • Et doc dans : /usr/share/doc/free-sa-1.6.2
  • Binaire : /usr/bin/free-sa

Utilisation

Voici un exemple d’arguments :

Performances

Voici les performances d’un test effectué avec un log journalier de Squid de 215Mo (~1millions de lignes) :

  • Le fichier a été traité en 15s
  • 184Mo de fichiers web créés.

 

Script de génération automatique d’analyse

Un script a été créé pour générer les rapports des proxy distant automatiquement. Pour cela il faut d’abord configurer Syslog-ng pour récupérer tous les logs sur votre serveur dédié à l’analyse des logs. Ce script s’occupe de tout :

  • Création des répertoires nécessaires pour stocker les analyses web s’ils n’existent pas
  • Copie d’une configuration free-sa « template » pour un nouveau serveur si elle n’existe pas
  • Création d’un fichier FIFO associé à un serveur s’il n’existe pas
  • L’ajout d’un proxy dans la page d’index se fait automatiquement car cette page liste tous les dossiers présents (avec gestion d’exclusion)
  • Alimenter le fichier FIFO avec les différents fichiers de logs, et cela selon les dates des fichiers afin de limiter la durée du « parsing » du fichier FIFO par free-sa.
  • Lancer free-sa avec le fichier de configuration associé.

 

Exemple d’exécution :

Le script prend en paramètre le même format de temps que Free-sa. Il a été conçu pour être utilisé dans des crontab.

Crontab

Pour rajouter un nouveau serveur, ayant ses logs exportés sur le serveur centralisé, il suffit de rajouter une ligne dans les tâches cron et tout sera automatiquement créé. Voici un exemple :

 

Page PHP d’index

Voici la page PHP d’index que j’utilise pour lister les sous-répertoires free-SA.

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

En continuant à utiliser le site, vous acceptez l’utilisation des cookies. Plus d’informations

Les paramètres des cookies sur ce site sont définis sur « accepter les cookies » pour vous offrir la meilleure expérience de navigation possible. Si vous continuez à utiliser ce site sans changer vos paramètres de cookies ou si vous cliquez sur "Accepter" ci-dessous, vous consentez à cela.

Fermer