Il monitoraggio e la manutenzione della rete aziendale è uno dei compiti più importanti dell’amministratore di sistema. Tenere d’occhio i device e i terminali connessi è infatti essenziale non solo per assicurare che le performance restino invariate, ma anche per assicurare un buon grado di sicurezza.

Oggi esistono decine di tool per il monitoraggio progettati per analizzare e tenere sotto controllo il traffico di rete ed i tempi di risposta. In questo articolo vi illustreremo i 5 tool open source di network monitoring più gettonati dalla community. Questi strumenti aiutano a monitorare i singoli nodi e le applicazioni in cerca di segni di scarso rendimento. Di base un monitoring tool offre:

tracciamento automatico dei device connessi alla rete;

View live e cronologia delle performance divisa per device e applicazioni;

configurazione delle notifiche;

generazione di grafici e report di analisi dell’attività sulla rete.

Cacti

Partiamo da Cacti, si tratta di una soluzione grafica che funge da integrazione a RRDTool e viene utilizzata per raccogliere dati sulle prestazioni nelle reti LAN. Cacti viene distribuito con il supporto al SNMP (Simple Network Management Protocol) ed è disponibile per Windows e Linux. È ovviamente capace di creare grafici sul traffico della rete cosi da mostrarci in tempo reale la condizione dei pacchetti in transito e dei vari servizi operativi.

Cacti funziona utilizzando i dati generati da script creati dall’utente che eseguono il ping degli host su una rete. I valori restituiti dagli script sono memorizzati in un database MySQL e tali dati vengono utilizzati per generare i grafici.

Può sembrare un funzionamento complesso, ma Cacti presenta dei template per velocizzare il processo di creazione degli script. È anche possibile generare un grafico o un data source template che possa essere utilizzato per attività di monitoraggio future.

Nagios Core

Passiamo a Nagios Core, questo progetto è tra i più noti in Rete e fornisce un’esperienza di monitoraggio che combina l’estensibilità dei programmi open source con un’interfaccia utente top-of-the-line. Con Nagios Core è possibile rilevare automaticamente i dispositivi, monitorare i sistemi connessi e generare sofisticati grafici delle prestazioni.

Il supporto per la personalizzazione è uno dei motivi principali per cui Nagios Core è diventato così popolare. Ad esempio la PHP web interface del progetto, Nagios V-Shell, è stata sviluppata tramite AngularJS, mentre le tabelle sono state implementate tramite un’API RESTful progettata con CodeIgniter.

Se si necessita di maggiore versatilità è possibile utilizzare Nagios Exchange che offre una gamma di componenti aggiuntivi i quali incorporano funzionalità extra per il monitoraggio.

Icinga 2

È il turno di Icinga 2, un tool basato su Nagios Core che dispone di un’API RESTful flessibile con cui inserire le proprie configurazioni e visualizzare i dati delle prestazioni in tempo reale tramite una comoda dashboard. I widget contenuti in essa sono completamente personalizzabili, quindi è possibile scegliere esattamente quali informazioni si desidera monitorare.

La visualizzazione dei dati è un’area in cui Icinga 2 si comporta particolarmente bene. Ha il supporto nativo per Graphite e InfluxDB, questo permette di trasformare i dati sulle prestazioni in grafici molto completi in modo da offrire un’analisi delle performance più approfondita.

Icinga2 consente inoltre di monitorare sia i dati delle performance in tempo reale che quelli presenti nella cronologia. Offre funzionalità di gestione e impostazione di avvisi tramite e-mail o notifiche push.

Zabbix

Spostiamoci adesso su Zabbix, questo tool permette di eseguire il monitoraggio di rete, server, infrastruttura Cloud, applicazioni e servizi. Si tratta quindi di un programma di monitoring molto completo e funzionale.

È possibile tenere traccia di varie informazioni come ad esempio l’utilizzo della di banda, lo stato della rete oltre che delle modifiche apportate alla configurazione. I dati sulle prestazioni in Zabbix sono collegati e interconnessi tramite SNMP e l’Intelligent Platform Management Interface (IPMI). E’ inoltre presente il supporto IPv6.

Prometheus

Chiudiamo l’articolo con Prometheus, un tool è stato appositamente realizzato per il monitoring dei dati su serie temporali. I dati vengono memorizzati su dischi locali in modo che siano facilmente accessibili anche in caso di emergenza.

L’Alertmanager di Prometheus consente di generare e mostrare le notifiche ogni volta che si verifica un evento impostato dall’utente. Alertmanager può inviare notifiche tramite e-mail, PagerDuty o OpsGenie e se necessario si possono anche disattivare tutti i tipi di notifiche o di avvisi.

I visual element di Prometheus sono molto versatili e consentono di passare facilmente dal browser ad un template language ed è anche possibile integrarsi con Grafana. Prometheus supporta varie fonti di dati di terze parti come ad esempio Docker, StatsD e JMX, in modo da personalizzare il proprio pannello di controllo.