Monitora i tuoi dispositivi in modo professionale con Zabbix!

Che si tratti di un server di produzione, una rete aziendale, un impianto fotovoltaico o una macchina industriale, una delle esigenze più richieste che ogni sistema complesso usato in ambito professionale dovrebbe soddisfare è quella del monitoraggio dei suoi parametri prestazionali: quali sono i tempi di risposta e la service availability di un server? Qual è lo stato di una rete? Che rendimento ha il tuo impianto di energia alternativa? Quanto è stressato un attuatore elettromeccanico su un macchinario di produzione? Tutte queste informazioni, fondamentali per conoscere lo stato di un sistema complesso, si possono ottenere (più o meno facilmente) facendo uso di un sistema di monitoraggio; una volta raccolte, queste informazioni possono essere utilizzate in una moltitudine di modi: può essere imposto il riavvio di un servizio o dell'intero server quando si rileva qualche anomalia; può essere inviata una email all'admin se la rete non risponde; può essere inviato un report di produzione di energia su base settimanale; può accendersi una spia quando un relè supera una certa soglia di attuazione. In questo articolo daremo un'occhiata più da vicino ad uno dei sistemi di monitoraggio più utilizzati (e, ovviamente, open source): Zabbix.

ZABBIX OVERVIEW

Zabbix è il sistema di monitoraggio open source (licenza GPL 2) della lituana Zabbix SIA, capace di monitorare contemporaneamente migliaia di dispositivi connessi in rete. Com'è possibile leggere dal sito ufficiale, le caratteristiche principali di Zabbix sono:

  • la possibilità di accedere ai sorgenti del sistema di monitoraggio, essendo esso stesso open source e potendosi basare su piattaforme open source (Linux, Apache, MySql/PostgreSQL, Php);
  • la semplicità di configurazione;
  • l'elevata efficienza delle componenti software;
  • un sistema di visualizzazione delle informazioni ricco e completo;
  • un set di procedure di ottimizzazione dell'organizzazione dei dati raccolti.

Altri due punti di forza, a mio avviso fondamentali e che rendono davvero completo Zabbix, sono la possibilità di estensione delle componenti software (tornerò tra qualche riga su questo argomento) e la possibilità di effettuare un monitoraggio distribuito, grazie all'architettura software dell'intero sistema. Attualmente è disponibile la versione 3 beta2, e si attende a breve il rilascio della versione ufficiale; le versioni stabili più utilizzate sono la 2.2 (LTS) e la 2.4 (alla quale questo articolo fa riferimento).

ARCHITETTURA DEL SISTEMA DI MONITORAGGIO

Le componenti principali di Zabbix sono le seguenti:

  • Zabbix Agent: agente software che si occupa di raccogliere tutti i dati del dispositivo da monitorare (target); questo modulo va installato sul target e, una volta configurato e lanciato, aprirà una porta TCP (10050 di default) utilizzata dallo Zabbix Server per lo scambio delle misure sulle grandezze monitorate. Questa modalità di monitoraggio si chiama passiva (in quanto l'agent si mette in attesa di connessioni da parte del server, il quale è parte attiva della comunicazione), e si contrappone alla modalità “active” (in cui è l'agent che, periodicamente, invia le informazioni al server opportunamente configurato). Lo Zabbix Agent può essere installato su una moltitudine di sistemi operativi (tra cui Linux, Windows, MacOS, FreeBSD, OpenBSD e Solaris). In un sistema di monitoraggio Zabbix, l'uso dell'agent per collezionare dati è solitamente la via classica e maggiormente indicata ma, come vedremo più avanti, è possibile utilizzare anche altre interfacce di comunicazione.
  • Zabbix Server: modulo software installato solitamente (ma non necessariamente) su una macchina differente rispetto al target, e che si preoccupa di interrogare tutti i dispositivi configurati per il monitoraggio. Lo Zabbix Server può essere installato esclusivamente su un sistema Linux. Essendo possibile monitorare migliaia di dispositivi per volta, è solitamente necessario che l'hardware su cui viene eseguito lo Zabbix Server abbia capacità di elaborazione adeguata. Una volta raccolti i dati dai target, lo Zabbix Server si preoccupa di memorizzarli in un database opportunamente configurato, in modo da renderli accessibili ad una qualunque entità che si occupi della loro elaborazione/organizzazione/visualizzazione, così da essere resi fruibili da parte degli utenti preposti al monitoraggio.
  • Zabbix Proxy: modulo software opzionale, il cui compito è quello di collezionare dati dagli agent configurati ed inviarli allo Zabbix Server; solitamente il proxy si utilizza per due motivi:
    1 - organizzare meglio a livello logico il monitoraggio, facendo diminuire il carico computazionale del server; immaginiamo il caso in cui ci siano migliaia di dispositivi da monitorare e fosse possibile raggruppare logicamente tali dispositivi: il server interrogherebbe solo i proxies, diminuendo drasticamente il numero di connessioni necessarie (Figura 1).

    Scenario semplice con Zabbix Proxy

    Figura 1 - Scenario semplice con Zabbix Proxy

    2 - rendere semplice la configurazione di rete in caso di monitoraggio di dispositivi protetti da firewall (Figura 2). In tal caso, grazie al proxy si rende semplice la comunicazione tra server e dispositivi monitorati.
    Nota: l'utilizzo di proxies si rende solitamente necessario per scenari complicati e in ambito professionale, per cui in questo articolo è presente solo questo doveroso accenno.

    Scenario con Zabbix Proxy e Firewall

    Figura 2 - Scenario con Zabbix Proxy e Firewall

  • Zabbix Frontend: GUI di configurazione e monitoraggio dell'intero sistema; è il modulo software con cui gli utenti si interfacciano verso il sistema di monitoraggio, dal quale è possibile rendersi conto dello stato del sistema. Al contrario degli altri componenti (scritti in linguaggio C), il frontend è scritto in Php. Piccola indiscrezione: gli sviluppatori Zabbix, dalla versione 3 in poi, focalizzeranno gli sforzi nel miglioramento delle altre componenti, lasciando molto spazio alla personalizzazione del frontend da parte degli utilizzatori finali.

L'accesso al sistema è basato su gruppi di utenti, i quali hanno dei privilegi prestabiliti (monitoraggio o configurazione del sistema, con granularità a livello di singolo dispositivo). In questo modo è possibile configurare un gruppo di amministratori, i quali hanno pieno controllo sul sistema, e una serie di utenti con privilegi ristretti, che possono solo monitorare una serie di dispositivi prestabiliti.

LE RISORSE PRINCIPALI DI ZABBIX

Fin qui abbiamo illustrato quelle che sono le componenti principali di Zabbix a livello architetturale; vediamo adesso quali sono le risorse che abbiamo a disposizione per realizzare la nostra rete di monitoraggio. Senza dubbio bisogna cominciare con il parlare degli Hosts. Un Host nel mondo Zabbix rappresenta un qualsiasi dispositivo da monitorare (server di rete, router, macchina virtuale vmware, programma Java). Un Host ha i seguenti attributi:

  • nome host e nome “visibile” (utilizzato negli screen del frontend per individuarlo);
  • gruppo (o gruppi) di appartenenza: dare una classificazione degli Host in gruppi è conveniente per l'organizzazione logica e funzionale del sistema di monitoraggio;
  • lista di agenti da interrogare: come già detto, è possibile utilizzare non solo lo Zabbix Agent, ma anche altre interfacce (fino alla versione 2.4 sono disponibili MIB SNMP, JMX per i processi Java e standard IPMI). Per ogni tipo di interfaccia è possibile specificare anche più di un indirizzo IP (o nome DNS)
  • descrizione testuale dell'Host;
  • informazione sul tipo di monitoraggio (tramite proxy o standard);
  • flag di abilitazione del monitoraggio.

Ogni Host, inoltre, ha un Inventory (lista di informazioni caratteristiche, come sistema operativo, MAC address, serial number, dettagli hardware ecc), che può essere popolato manualmente oppure automaticamente, utilizzando [...]

ATTENZIONE: quello che hai appena letto è solo un estratto, l'Articolo Tecnico completo è composto da ben 3684 parole ed è riservato agli abbonati PLATINUM. Con l'Abbonamento avrai anche accesso a tutti gli altri Articoli Tecnici PREMIUM e PLATINUM e potrai fare il download (PDF) di tutti gli EOS-Book, Firmware e degli speciali MONOTEMATICI. ABBONATI ORA con PAYPAL è semplice e sicuro.

Abbonati alle riviste di elettronica

7 Commenti

  1. Maurizio Di Paolo Emilio Maurizio 14 luglio 2016
    • Davide Di Gesualdo Davide Di Gesualdo 15 luglio 2016
  2. mikelin 14 luglio 2016
    • Davide Di Gesualdo Davide Di Gesualdo 15 luglio 2016
  3. mikelin100 15 luglio 2016
  4. Antonello Lombardinilo 19 agosto 2016
  5. davideuboldi 21 agosto 2016

Scrivi un commento

ESPertino è la nuova scheda per IoT compatibile ARDUINO.
Scopri come averla GRATIS!