Parliamone

Ricerca e sviluppo · 2018

JamesLog

Raccogliere, standardizzare e analizzare i log di dispositivi diversi in un unico database: dal client in campo alla console di analisi.

Titolo ufficiale: «Studio di fattibilità volto all’individuazione di una soluzione software idonea a raccogliere, codificare univocamente, standardizzare e analizzare log provenienti da dispositivi differenti». Nome interno del prodotto: eLogger 4.0.

Obiettivo

Un solo database generico, buono per qualunque tipo di log, al posto di formati sparsi e incompatibili. Chi ha in casa apparati di marche diverse lo sa: ognuno scrive i propri registri a modo suo, e quando serve capire che cosa è successo non c’è un posto dove guardare.

L’architettura, su tre livelli

In campo c’è un client costruito su Raspberry Pi 3: riceve i log via UDP sulla porta 514, li mostra in tempo reale su un’interfaccia touch — elenco dei dispositivi, dettaglio dei pacchetti, console per chi sa dove mettere le mani — e li converte in un pacchetto standardizzato.

In cloud stanno le funzioni che ricevono: autenticazione, temporizzazione e raccolta verificano la validità di ogni pacchetto prima di scriverlo sul database. Il canale è cifrato, i pacchetti hanno una cifratura propria, e ogni client viene abilitato all’invio con uno scambio di chiavi.

Sul tavolo di chi analizza c’è l’applicazione di lettura: filtri per nodo, azienda, gravità e categoria, contatore dei log al secondo, interrogazioni a mano e gestione delle utenze dei client.

Che cosa ne è uscito

Un prototipo che lavorava a regime su dispositivi veri: il client che raccoglie e spedisce dal vivo, e il server con quasi duemila log indicizzati e filtrabili. Con manuale d’uso, procedure di ripristino e gestione dei codici di stato — cioè le cose che servono il giorno in cui qualcosa non va.

Dal laboratorio

Le immagini vengono dalla documentazione originale del progetto.

I tre livelli del sistema: il client in campo, le funzioni in cloud che ricevono e verificano, il database centrale.
I tre livelli del sistema: il client in campo, le funzioni in cloud che ricevono e verificano, il database centrale.
La schermata iniziale del client sul dispositivo in campo.
La schermata iniziale del client sul dispositivo in campo.
I log raccolti e spediti, mostrati in tempo reale sul client.
I log raccolti e spediti, mostrati in tempo reale sul client.
La console del client, per chi deve guardare che cosa sta succedendo davvero.
La console del client, per chi deve guardare che cosa sta succedendo davvero.
La pagina di configurazione del client: rete, chiavi e parametri di invio.
La pagina di configurazione del client: rete, chiavi e parametri di invio.
L'applicazione di analisi: log indicizzati, filtri per nodo, gravità e categoria.
L'applicazione di analisi: log indicizzati, filtri per nodo, gravità e categoria.