C'è una categoria di strumenti IT che non ti fanno mai sentire completamente a tuo agio. Non sono cattivi, anzi funzionano, scalano, ti salvano la vita alle 3 di notte. Ma non ti lasciano mai dormire davvero tranquillo, perché sai che sotto quella GUI datata si nasconde una complessità che aspetta solo il momento sbagliato per emergere.
Zabbix è esattamente così. E dopo anni di utilizzo in contesti MSP, con decine di client monitorati e almeno un paio di migrazioni che non dimenticherò facilmente, posso dirlo con cognizione di causa: è ancora il mio strumento principale. Non per nostalgia, ma perché niente di ciò che ho provato gli si avvicina quando si parla di controllo granulare su infrastruttura on-premise.
Ma partiamo dall'inizio.
La filosofia: tutto in casa, tutto sotto controllo
Zabbix nasce con un'idea precisa, una piattaforma unica per raccogliere dati da qualsiasi fonte. ICMP banale, SNMP da uno switch Cisco dimenticato in un armadio dal 2014, metriche custom via agente, trap, HTTP agent, script esterni. Inventario, eventi, notifiche, tutto nello stesso database relazionale.
Questo approccio "monolite consapevole" ha un difetto evidente: è complesso da gestire. Ma ha un vantaggio che gli strumenti più moderni e frammentati faticano a replicare la correlazione. Quando puoi incrociare un evento di rete con una metrica di sistema e una soglia applicativa nello stesso motore logico, inizi a vedere i pattern prima che diventino problemi. O almeno, prima che diventino telefonate alle 2 di notte.
Cosa funziona davvero bene
Il Low-Level Discovery è magia nera (nel senso buono)
Se c'è una funzione che ha cambiato il mio modo di lavorare con Zabbix, è il LLD. Low-Level Discovery, la capacità di generare item, trigger e grafici dinamicamente in base a ciò che viene trovato sull'host.
Esempio pratico: un server con dieci dischi. Con LLD non configuri dieci item a mano. Definisci una regola, un prototipo, e Zabbix scopre automaticamente ogni disco, crea il monitoraggio, lo aggiorna quando un disco sparisce o ne arriva uno nuovo. Stesso discorso per le interfacce di rete, i servizi Windows, i container Docker, le istanze di database.
In un contesto MSP dove ogni cliente ha un'infrastruttura diversa e in continua evoluzione, questo non è un nice-to-have. È sopravvivenza.
Detto questo il LLD ha una curva di apprendimento che definirei "carattere forte". La prima volta che scrivi un JSONPath sbagliato e ti ritrovi con 400 item duplicati che puntano a {#FSNAME} letterale invece del nome del filesystem reale, capisci che stai giocando con fuoco.
Pre-processing: raffina i dati prima che sporchino il DB
Ogni item in Zabbix può essere trasformato prima di essere salvato. RegEx, JSONPath, calcoli aritmetici, script JavaScript inline. Questo significa che puoi raccogliere un payload JSON grezzo dall'API di un applicativo e estrarre esattamente il valore che ti serve, senza scrivere un agent esterno dedicato.
In produzione, questo riduce enormemente il carico sul database salvi solo ciò che serve, nel formato che serve.
Zabbix Proxy: monitoraggio distribuito senza drammi
In contesti multi-sede o multi-tenant, il Proxy è un'arma silenziosa. Ogni sede ha il suo proxy locale che raccoglie, bufferizza e invia dati compressi e cifrati al server centrale. Se la VPN cade per venti minuti, i dati non si perdono, arrivano appena la connessione torna.
Ho configurato questa architettura su diversi clienti e funziona esattamente come promesso. Senza asterischi.
Dove Zabbix mostra l'età e non la porta benissimo
L'interfaccia: funzionale come un ufficio anni '90
Diciamolo chiaramente: la UI di Zabbix è migliorata nelle ultime versioni, ma resta uno strumento che dà priorità alla funzione sulla forma. Navigare tra configurazione e monitoraggio richiede ancora un salto mentale che i nuovi utenti trovano disorientante.
La distinzione tra "Data Collection", "Alerts", "Monitoring" non è immediatamente intuitiva per chi arriva da strumenti più moderni. E alcune schermate come quella degli Action, hanno un'ergonomia che definire "spartana" è un eufemismo.
Non è un dealbreaker, ma è un costo nascosto: ogni nuovo collega che devi formare su Zabbix richiede un investimento di tempo che con altri strumenti sarebbe inferiore.
Il database: il tuo migliore amico e il tuo peggior nemico
Zabbix su PostgreSQL (o MySQL, se sei coraggioso) è solido. Finché non lo è.
Il problema si chiama History e Trends, la tabella dove vengono scritti tutti i valori raccolti. In un'infrastruttura di medie dimensioni, con centinaia di host e migliaia di item, questa tabella può crescere a velocità che mettono in crisi anche storage dimensionati con ottimismo. Ho visto installazioni arrivare a database da 300-400GB in pochi mesi, con l'housekeeping che faticava a stare dietro alla scrittura.
La soluzione esiste, TimescaleDB come estensione PostgreSQL è un game changer per le performance, ma è un'ulteriore complessità da gestire. Non è configurazione zero.
La visualizzazione nativa: onestamente, usate Grafana
I nuovi widget di Zabbix 7.x sono un passo avanti rispetto al passato. Apprezzato. Ma se il tuo cliente ti chiede una dashboard con un impatto visivo professionale, stai usando Grafana. Punto.
L'integrazione è documentata, funziona bene, ma aggiunge un componente in più allo stack. In un deploy containerizzato non è un problema, è un altro container nel compose. Ma va considerato come parte dell'architettura fin dall'inizio, non come un'aggiunta dell'ultimo momento.
La curva degli Alert: dall'alert fatigue all'alert cecità
Il sistema di Trigger e Action di Zabbix è potentissimo. È anche il modo più rapido per creare un ambiente in cui nessuno legge più le notifiche perché arrivano in continuazione.
Ho visto infrastrutture dove ogni sera partivano decine di alert per servizi che si riavviavano normalmente, per spazio disco che oscillava attorno a una soglia mal calibrata, per check di connettività che fallivano per un secondo ogni tanto. Dopo una settimana, gli operatori iniziavano a silenziare. Dopo un mese, ignoravano tutto.
La calibrazione dei trigger non è un'attività one-shot. È manutenzione continua, ed è un costo reale che va comunicato a chi gestisce il budget. Il LLD stesso può diventare un problema: se non filtri bene le discovery rule, finisci per monitorare anche il servizio Google Update su ogni workstation Windows, e ricevere alert quando si ferma. L'ho vissuto. Non è divertente.
Zabbix 7.x: cosa è cambiato e perché vale l'aggiornamento
La versione 7 porta con sé miglioramenti concreti che chi viene da versioni precedenti noterà subito. Il Business Service Monitoring è stato riscritto e finalmente è utilizzabile senza un manuale di 40 pagine. I widget delle dashboard sono più flessibili. Il supporto nativo per OTLP (OpenTelemetry) inizia a posizionare Zabbix in modo più credibile nel panorama dell'observability moderna.
Ho migrato di recente una installazione esistente a Zabbix 7.4 su Docker, Ubuntu 24.04, PostgreSQL, Nginx come reverse proxy e il processo è stato più pulito di quanto mi aspettassi. Ho anche integrato un sistema di notifiche via Microsoft Teams tramite un webhook container dedicato, che gestisce i trigger con un formato strutturato e azionabile invece del classico muro di testo.
Nel prossimo articolo mostrerò esattamente come è strutturato questo deploy: la composizione dei container, le variabili d'ambiente, il setup degli script di notifica e qualche trucco per rendere il tutto riproducibile su qualsiasi nuovo cliente in pochi minuti.
Se vuoi capire Docker prima di quel prossimo articolo, leggi Docker in produzione per sysadmin: Compose, restart policy e sicurezza base per chi parte dal terminale.
Conclusione: uno strumento per chi vuole capire, non solo vedere
Zabbix non è per tutti. Non è la soluzione che ti fa sembrare moderno nelle slide di un meeting, non ha un'onboarding experience particolarmente piacevole, e se pensi che "configurare il monitoraggio" significhi cliccare su un pulsante e aspettare che succeda qualcosa, troverai Zabbix ostile.
Ma se sei il tipo di persona che vuole sapere esattamente da dove viene un dato, come viene trasformato, quando viene salvato e perché quel trigger è scattato allora Zabbix ti dà un livello di controllo che pochi altri strumenti offrono, open source e senza versioni enterprise con feature gate.
È uno strumento da artigiano. Richiede cura, attenzione e una certa dose di pazienza. In cambio, ti dà un'infrastruttura di monitoring che fa esattamente quello che hai deciso tu che facesse.
E questo, alla fine, è l'unico modo in cui mi piace lavorare.