Cosa vuol dire monitorare un sistema? La capacità di avere sotto mano diversi valori del sistema interessato, ci consente di anticipare e risolvere problemi, di applicare patch e migliorare il codice stesso.
È importante essere a conoscenza di tutte le informazioni, cruciali ovviamente negli ambienti di produzione, dove un periodo di downtime non è contemplato.
Monitorare un sistema significa quindi raccogliere, analizzare, organizzare e comunicare le informazioni.
Raccogliere
Ogni device mette a disposizioni tantissime informazioni diverse da loro, informazioni date dal sistema operativo stesso, altre date da sensori o applicazioni custom. Ognuno di questi dati è importante per capire l’attuale stato della stessa device.
In fase di raccolta la granularità dei dati è rilevante, in modo da avere valori molto specifici piuttosto che un’informazione generica.
Analizzare
Chi gestisce il sistema di monitoring, deve capire quali delle informazioni raccolte sono cruciali, quali informazioni possono aiutare a capire il sorgere di un problema o come affrontarlo.
Organizzare
Tipicamente tutte le informazioni vengono raccolte da un applicativo, un server o un cluster centrale. Queste infrastrutture possono essere relativamente semplici, quando si tratta di una mole di informazioni relativamente bassa a cluster con logiche complesse per archiviazione e gestione di flussi dati ben maggiori.
Alcuni esempi possono andare dal singolo server Nagios a un cluster ELK (Elastic Logstash Kibana) molto più complesso.
Comunicare
È importante poter comunicare tutte queste informazioni alle persone interessate, così che queste persone riescano ad agire in tempo. La vera forza dell’intero processo è proprio questa: la capacità di sviluppare soluzioni a problemi emergenti, potendo agire prima che il problema diventi critico.
La nostra esperienza
Un esempio concreto del vantaggio di avere un sistema di monitoring è senza dubbio rappresentato dal progetto che abbiamo realizzato per Brianzacque.
Brianzacque è l’azienda pubblica che gestisce industrialmente il ciclo idrico integrato nella Provincia di Monza e della Brianza.
L’obiettivo del progetto realizzato era di centralizzare la gestione della rete di case dell’acqua per:
- migliorare l’efficienza operativa
- per fornire agli utenti informazioni in tempo reale.
Per rendere possibile ciò abbiamo installato una componente IoT su ogni casa dell’acqua presente sul territorio e a questo punto abbiamo migliorato l’intero sistema IoT con un sistema dettagliato di monitoring, gestito con Nagios.
Grazie al sistema di monitoring e alla connessione stabilita con ogni device, siamo in grado di:
- registrare l’utilizzo di ogni risorsa
- la quantità di carico dell’IoT
- lo stato attuale dei servizi
- i dati di vari sensori utili per il suo funzionamento e gestione.
Analizzando ed organizzando questi dati, riusciremo a intervenire nello specifico la dove le device lo richiedono, migliorando il nostro prodotto di giorno in giorno.