L’analyse des logs Squid avec Calamaris
Sommaire
I. Présentation
Calamaris est un analyseur de logs, sa fonction est de lire les fichiers de logs de Squid et de les interpréter pour une lecture plus rapide et plus claire. Calamaris renseigne d’avantage sur la nature des échanges entre le réseau local et le net que sur l’identification des utilisateurs et leurs navigations individuelles à l'inverse de SARG dans ce tutoriel : Mise en place de SARG.
L’utilité d’avoir de telles analyses est de se renseigner sur ce qui passe sur le réseau vers le net. Le type d’échange effectué comme le type de requête, le type de contenu, les extensions visitées ou leur nombre peut servir à mieux gérer et comprendre le réseau.
II. Fonctionnement
Calamaris affiche les informations des logs sur l'ensemble des requêtes, à l'inverse de SARG qui expose les logs IP par IP.
Son fonctionnement est assez simple. Il lit les données contenues dans les logs squid (/var/log/squid3/access.log), coupe et recoupe les lignes une par une afin d'en tirer des informations et de les trier, et ainsi en présenter un contenu condensé et clair pour une consultation simple.
III. Installation
Il faut commencer par installer calamaris et un serveur web apache2 qui permettra d’accéder à son interface graphique :
apt-get update # Pensez à toujours mettre votre liste de paquets à jour apt-get install calamaris
Calamaris comporte deux modes de consultation, soit en ligne de commande (où les informations sont difficilement exploitables en grand nombre) et par interface graphique (mail, page web ..). Son exécution et ces options dépendes soit du fichier de configuration, soit des paramètres lancés avec la ligne de commande qui exécute calamaris.
Le fichier de configuration de calamaris se trouve dans /etc/calamaris et son fichier d'exécution se trouve dans /usr/bin/.
IV. Utilisation
A. Lancer une analyse basique
Vous devez donc exécuter calamaris en lui précisant l'emplacement du fichier de log de que voulez analyser :
cat /var/log/squid3/access.log | calamaris
Voici une petit partie du résultat que vous obtiendrez :
Cette image ne contient qu'une toute petit partie de ce qui est faisable avec Calamaris. C'est un extrait du sommaire qui présente le nombre de lignes/requêtes traitées, la quantité de bande passante utilisée par ces lignes, l'efficacité du proxy pour ces lignes ... Une quantité d'autres informations sont exploitables avec Calamaris.
B. Le format de visionnage des informations
L'exploitation des informations est plus rapide et plus efficace sous une interface graphique. En ligne de commande, il est possible de sauvegarder les informations de l'analyse de logs dans une page web avec cette commande :
cat /var/log/squid3/access.log | calamaris --output-format html > /var/www/calamaris.html
Les informations seront alors rangées dans des tableaux et seront ainsi plus lisibles. Vous pouvez aussi afficher les informations sous formes de tableaux et de graphiques grâce à ces lignes (nécessite un serveur web apache2 opérationnel) :
mkdir /var/www/calamaris touch /var/www/calamaris/index.html cat /var/log/squid3/access.log | calamaris --output-format html --output-path /var/www/calamaris
Pour avoir le résultat avec des graphiques :
cat /var/log/squid3/access.log | calamaris --output-format html,graph --output-path /var/www/calamaris
Pour avoir le résultat par mail :
cat /var/log/squid3/access.log | calamaris --output-format mail --output-path /var/www/calamaris
C. Filtrer les IP de l'analyse
Il est parfois possible que les administrateurs veuillent exclure certaines IP de l'analyse (par exemple si ils veulent évaluer la quantité de bande passante utilisée par les utilisateurs et que leurs serveurs en sont de gros consommateurs).
Cette option nécessite le module perl NetAddr::IP. Pour l'installer :
apt-get install perl-CPAN cpan install NetAddr::IP
Il est alors possible de filtrer les IP pour les exclure ou les inclure grâce à cette commande :
cat /var/log/squid3/access.log | calamaris --output-format html --output-path /var/www/calamaris --ipfilter-include 192.168.0.0/24:192.168.1.0/24
Ici, l'analyse se porte sur les réseaux 192.168.0.0 et 192.168.1.0 (c'est pour l'exemple), nous devons donc les séparer par des ":".
Dans l'analyse, vous verrez alors que l'analyse s'est portée sur une partie de réseau (ici dans le cadre d'un include) :
D. Les différents type de rapports
Voici la liste exhaustive des rapports que propose calamaris. Par défaut, tous sont affichés.
Sur une grande analyse, cela peut faire beaucoup (trop) d'informations et il est possible de ne pas afficher tel ou tel chapitre de l'analyse pour la rendre plus claire :
cat /var/log/squid3/access.log | calamaris --output-format html --output-path /var/www/calamaris -S 1,2,10,11,12,13,16,17,18,20
L'argument -S suivi des numéros de chapitres séparés par une virgule suffit à n'afficher que les chapitres voulus dans l'analyse.
V. Aller plus loin
Avec crontab et des scripts bash, il est possible d'automatiser l'exécution des scripts qui s’excuseront alors tous les jours, semaines ou mois avec des analyses personnalisées (qui n'auront que les informations voulus, à la forme voulue, etc ...).
La commande "dpkg-reconfigure calamaris" permet d'automatiser cette tâche (les scripts se feront automatiquement).
Petite coquille dans la partie « V. Aller plus loin » : Il fallait écrire « s’exécuteront » à la place de « s’excuseront »