Parlons-en

Recherche et développement · 2018

JamesLog

Collecter, standardiser et analyser les logs d'appareils différents dans une seule base de données : du client sur le terrain à la console d'analyse.

Titre officiel, en italien : « Studio di fattibilità volto all'individuazione di una soluzione software idonea a raccogliere, codificare univocamente, standardizzare e analizzare log provenienti da dispositivi differenti ». Nom interne du produit : eLogger 4.0.

Objectif

Une seule base de données générique, bonne pour n'importe quel type de log, à la place de formats épars et incompatibles. Quiconque exploite des équipements de marques différentes le sait : chacun écrit ses registres à sa façon, et quand il faut comprendre ce qui s'est passé, il n'y a pas un endroit où regarder.

L'architecture, sur trois niveaux

Sur le terrain, un client construit sur Raspberry Pi 3 : il reçoit les logs en UDP sur le port 514, les affiche en temps réel sur une interface tactile — liste des appareils, détail des paquets, console pour qui sait où mettre les mains — et les convertit en un paquet standardisé.

Dans le cloud, les fonctions de réception : authentification, temporisation et collecte vérifient la validité de chaque paquet avant de l'écrire dans la base. Le canal est chiffré, les paquets portent leur propre chiffrement, et chaque client est habilité à l'envoi par un échange de clés.

Sur la table de l'analyste, l'application de lecture : filtres par nœud, entreprise, gravité et catégorie, compteur de logs par seconde, requêtes à la main et gestion des comptes des clients.

Ce qui en est sorti

Un prototype qui tournait à plein régime sur de vrais appareils : le client qui collecte et expédie en direct, et le serveur avec près de deux mille logs indexés et filtrables. Avec manuel d'utilisation, procédures de restauration et gestion des codes d'état — c'est-à-dire les choses qui servent le jour où quelque chose ne va pas.

Depuis le laboratoire

Les images proviennent de la documentation originale du projet.

Les trois niveaux du système : le client sur le terrain, les fonctions cloud qui reçoivent et vérifient, la base de données centrale.
Les trois niveaux du système : le client sur le terrain, les fonctions cloud qui reçoivent et vérifient, la base de données centrale.
L'écran d'accueil du client sur l'appareil, sur le terrain.
L'écran d'accueil du client sur l'appareil, sur le terrain.
Les logs collectés et expédiés, affichés en temps réel sur le client.
Les logs collectés et expédiés, affichés en temps réel sur le client.
La console du client, pour qui doit regarder ce qui se passe vraiment.
La console du client, pour qui doit regarder ce qui se passe vraiment.
La page de configuration du client : réseau, clés et paramètres d'envoi.
La page de configuration du client : réseau, clés et paramètres d'envoi.
L'application d'analyse : logs indexés, filtres par nœud, gravité et catégorie.
L'application d'analyse : logs indexés, filtres par nœud, gravité et catégorie.