Cos'è Zabbix
Zabbix è stato creato da Alexei Vladishev ed è attualmente sviluppato e supportato attivamente da Zabbix SIA.
Zabbix è una soluzione di monitoraggio distribuito open source di livello enterprise.
Zabbix è un software che monitora numerosi parametri di una rete, nonché lo stato e l'integrità di server, macchine virtuali, applicazioni, servizi, database, siti web, cloud e altro ancora. Zabbix utilizza un meccanismo di notifica flessibile che consente agli utenti di configurare avvisi basati sulle email per praticamente qualsiasi evento. Ciò permette di reagire rapidamente ai problemi dei server. Zabbix offre eccellenti funzionalità di reporting e visualizzazione dei dati basate sui dati memorizzati. Questo rende Zabbix ideale per la pianificazione della capacità.
Zabbix supporta sia il polling sia il trapping. Tutti i report e le statistiche di Zabbix, così come i parametri di configurazione, sono accessibili tramite un frontend basato sul web. Un frontend basato sul web garantisce che lo stato della rete e l'integrità dei server possano essere valutati da qualsiasi posizione. Se configurato correttamente, Zabbix può svolgere un ruolo importante nel monitoraggio dell'infrastruttura IT. Ciò vale sia per le piccole organizzazioni con pochi server sia per le grandi aziende con una moltitudine di server.
Zabbix è disponibile gratuitamente. Zabbix è scritto e distribuito con licenza AGPL-3.0. Ciò significa che il suo codice sorgente è distribuito liberamente e disponibile al pubblico.
Il supporto commerciale è disponibile ed è fornito da Zabbix Company e dai suoi partner in tutto il mondo.
Scopri di più sulle funzionalità di Zabbix.
Utenti di Zabbix
Molte organizzazioni di diverse dimensioni in tutto il mondo si affidano a Zabbix come piattaforma principale di monitoraggio.
Architettura
Zabbix è composto da diversi componenti software principali. Le loro responsabilità sono descritte di seguito.
Server
Zabbix server è il componente centrale a cui gli agent segnalano informazioni e statistiche sulla disponibilità e sull'integrità. Il server è il repository centrale in cui vengono archiviati tutti i dati di configurazione, statistici e operativi.
Archiviazione del database
Tutte le informazioni di configurazione, così come i dati raccolti da Zabbix, vengono memorizzati in un database.
Interfaccia web
Per un facile accesso a Zabbix da qualsiasi luogo e da qualsiasi piattaforma, viene fornita l'interfaccia basata sul web. L'interfaccia fa parte di Zabbix server e di solito (ma non necessariamente) viene eseguita sulla stessa macchina fisica su cui è in esecuzione il server.
Proxy
Zabbix proxy può raccogliere dati sulle prestazioni e sulla disponibilità per conto di Zabbix server. Un proxy è una parte opzionale della distribuzione di Zabbix; tuttavia, può essere molto utile per distribuire il carico di un singolo Zabbix server.
Agent
Gli agent di Zabbix vengono distribuiti sui target di monitoraggio per controllare attivamente le risorse e le applicazioni locali e inviare i dati raccolti a Zabbix server. A partire da Zabbix 4.4, sono disponibili due tipi di agent: Zabbix agent (leggero, supportato su molte piattaforme, scritto in C) e Zabbix agent 2 (estremamente flessibile, facilmente estendibile con plugin, scritto in Go).
Flusso dei dati
Inoltre è importante fare un passo indietro e osservare il flusso complessivo dei dati all'interno di Zabbix. Per creare un item che raccolga dati, è necessario prima creare un host. Passando all'altro estremo dello spettro di Zabbix, è necessario prima avere un item per creare un trigger. È necessario avere un trigger per creare un'azione. Quindi, se si desidera ricevere un avviso che il carico della CPU è troppo elevato su Server X, è necessario prima creare una voce host per Server X, seguita da un item per monitorarne la CPU, quindi un trigger che si attivi se la CPU è troppo alta, seguito da un'azione che invii un'email. Anche se possono sembrare molti passaggi, con l'uso dei template in realtà non lo sono. Tuttavia, grazie a questo design, è possibile creare una configurazione molto flessibile.
Funzionalità
Zabbix è una soluzione di monitoraggio di rete altamente integrata, che offre una molteplicità di funzionalità in un unico pacchetto.
- controlli di disponibilità e prestazioni
- supporto per SNMP (sia trapping che polling), IPMI, JMX, monitoraggio VMware
- controlli personalizzati
- raccolta dei dati desiderati a intervalli personalizzati
- eseguita da server/proxy e dagli agent
Definizioni flessibili delle soglie
- è possibile definire soglie di problema molto flessibili, chiamate trigger, che fanno riferimento ai valori del database backend
Segnalazione altamente configurabile
- l'invio delle notifiche può essere personalizzato in base al programma di escalation, al destinatario e al tipo di media
- le notifiche possono essere rese significative e utili tramite variabili macro
- le azioni automatiche includono comandi remoti
- gli item monitorati vengono immediatamente rappresentati in grafico tramite la funzionalità di grafici integrata
Funzionalità di monitoraggio web
- Zabbix può seguire un percorso di clic simulati del mouse su un sito web e verificare funzionalità e tempo di risposta
Ampie opzioni di visualizzazione
- possibilità di creare grafici personalizzati che possono combinare più item in un'unica vista
- mappe di rete
- presentazioni in stile dashboard
- report
- vista di alto livello (business) delle risorse monitorate
Archiviazione dei dati storici
- dati archiviati in un database
- cronologia configurabile
- procedura di housekeeping integrata
- aggiunta dei dispositivi monitorati come host
- gli host vengono presi in carico per il monitoraggio una volta presenti nel database
- applicazione di template ai dispositivi monitorati
- raggruppamento dei controlli nei template
- i template possono ereditare altri template
- rilevamento automatico dei dispositivi di rete
- autoregistrazione dell'agent
- rilevamento di file system, interfacce di rete e OID SNMP
- un frontend basato sul web in PHP
- accessibile da qualsiasi luogo
- è possibile navigare con pochi clic
- registro di audit
- l'API di Zabbix fornisce un'interfaccia programmabile a Zabbix per manipolazioni di massa, integrazione con software di terze parti e altri scopi.
- autenticazione sicura degli utenti
- determinati utenti possono essere limitati a determinate viste
agent completo e facilmente estensibile
- distribuito sui target di monitoraggio
- può essere distribuito sia su Linux che su Windows
- scritti in C, per prestazioni elevate e ridotto consumo di memoria
- facilmente portabili
- il monitoraggio remoto è reso semplice grazie all'uso di un proxy Zabbix
Glossario
In questa sezione è possibile apprendere il significato di alcuni termini comunemente utilizzati in Zabbix.
- qualsiasi dispositivo fisico o virtuale, applicazione, servizio o altra raccolta logicamente correlata di parametri monitorati.
- un raggruppamento logico di host. Gli host group vengono utilizzati per assegnare i diritti di accesso agli host a diversi gruppi di utenti.
- uno specifico dato che si desidera ricevere da un host, una metrica di dati.
- una trasformazione del valore della metrica ricevuta prima del salvataggio nel database.
- un'espressione logica che definisce una soglia di problema e viene utilizzata per "valutare" i dati ricevuti negli item.
Quando i dati ricevuti superano la soglia, i trigger passano dallo stato Ok allo stato Problem. Quando i dati ricevuti sono inferiori alla soglia, i trigger rimangono o tornano allo stato Ok.
- un insieme di entità (item, trigger, grafici, regole di low-level discovery, scenari web) pronto per essere applicato a uno o più host.
Lo scopo dei template è velocizzare la distribuzione delle attività di monitoraggio su un host e semplificare l'applicazione di modifiche di massa alle attività di monitoraggio. I template sono collegati direttamente ai singoli host.
- un raggruppamento logico di template. I template group vengono utilizzati per assegnare i diritti di accesso ai template a diversi gruppi di utenti.
- una singola occorrenza di qualcosa che richiede attenzione, come il cambiamento di stato di un trigger o l'esecuzione della discovery o dell'autoregistrazione di un agent.
- un contrassegno predefinito per l'evento. Può essere utilizzato nella correlazione degli eventi, nella definizione granulare delle autorizzazioni e così via.
- un metodo per correlare i problemi alla loro risoluzione in modo flessibile e preciso.
Ad esempio, è possibile definire che un problema segnalato da un trigger possa essere risolto da un altro trigger, che può persino utilizzare un metodo di raccolta dati diverso.
- un trigger che si trova nello stato "Problem".
- opzioni di gestione dei problemi fornite da Zabbix, come l'aggiunta di un commento, la conferma, la modifica della gravità o la chiusura manuale.
- un mezzo predefinito per reagire a un evento.
Un'action è costituita da operazioni (ad esempio, l'invio di una notifica) e condizioni (quando l'operazione viene eseguita).
- uno scenario personalizzato per l'esecuzione delle operazioni all'interno di un'action; una sequenza di invio di notifiche o esecuzione di comandi remoti.
- un segnaposto variabile che viene risolto in un valore specifico in base al contesto.
- un mezzo per distribuire le notifiche; un canale di distribuzione.
- un messaggio relativo a un evento inviato a un utente tramite il canale media scelto.
- un comando predefinito che viene eseguito automaticamente su un host monitorato al verificarsi di una determinata condizione.
- una o più richieste HTTP per verificare la disponibilità di un sito web.
- l'interfaccia web fornita con Zabbix.
- una sezione personalizzabile dell'interfaccia web che visualizza riepiloghi e rappresentazioni visive di informazioni importanti in unità visive chiamate widget.
- un'unità visiva che visualizza informazioni di un determinato tipo e origine (un riepilogo, una mappa, un grafico, l'orologio e così via), utilizzata nella dashboard.
- Zabbix API consente di utilizzare il protocollo JSON RPC per creare, aggiornare e recuperare oggetti Zabbix (come host, item, grafici e altri) o eseguire qualsiasi altra attività personalizzata.
- un processo centrale del software Zabbix che esegue il monitoraggio, interagisce con proxy e agent Zabbix, calcola i trigger, invia notifiche e funge da repository centrale dei dati.
- un processo che può raccogliere dati per conto di Zabbix server, riducendo il carico di elaborazione del server.
- un processo distribuito sui target di monitoraggio per monitorare attivamente risorse e applicazioni locali.
- una nuova generazione di Zabbix agent per il monitoraggio attivo di risorse e applicazioni locali, che consente l'utilizzo di plugin personalizzati per il monitoraggio.
Poiché Zabbix agent 2 condivide gran parte delle funzionalità con Zabbix agent, nella documentazione il termine "Zabbix agent" indica entrambi: Zabbix agent e Zabbix agent 2, quando il comportamento funzionale è lo stesso. Zabbix agent 2 viene indicato specificamente solo quando la sua funzionalità è diversa.
- il supporto per le comunicazioni crittografate tra i componenti Zabbix (server, proxy, agent, le utilità zabbix_sender e zabbix_get) tramite il protocollo Transport Layer Security (TLS).
- un processo automatizzato mediante il quale un Zabbix agent viene registrato autonomamente come host e avvia il monitoraggio.
- la discovery automatizzata dei dispositivi di rete.
- la discovery automatizzata di entità di basso livello su un determinato dispositivo (ad esempio, file system, interfacce di rete e così via).
- un insieme di definizioni per la discovery automatizzata di entità di basso livello su un dispositivo.
- una metrica con determinati parametri utilizzati come variabili, pronta per la low-level discovery. Dopo la low-level discovery, le variabili vengono sostituite automaticamente con i parametri effettivamente rilevati e la metrica inizia automaticamente a raccogliere dati.
- un trigger con determinati parametri utilizzati come variabili, pronto per la low-level discovery. Dopo la low-level discovery, le variabili vengono sostituite automaticamente con i parametri effettivamente rilevati e il trigger inizia automaticamente a valutare i dati.
Anche i prototipi di alcune altre entità Zabbix vengono utilizzati nella low-level discovery: prototipi di grafici, prototipi di host e prototipi di host group.