free-sa analyse logs squid

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.

 

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">