Cos'è Zabbix
Zabbix è stato creato da Alexei Vladishev e attualmente è sviluppato e supportato attivamente da Zabbix SIA.
Zabbix è una soluzione di monitoraggio distribuito open source di classe enterprise.
Zabbix è un software che monitora numerosi parametri di una rete e lo stato di salute e l'integrità di server, macchine virtuali, applicazioni, servizi, database, siti web, il cloud e altro ancora. Zabbix utilizza un meccanismo di notifica flessibile che consente agli utenti di configurare avvisi via email per praticamente qualsiasi evento. Ciò consente una rapida reazione ai problemi del 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 la salute dei server possano essere valutati da qualsiasi luogo. Se configurato correttamente, Zabbix può svolgere un ruolo importante nel monitoraggio dell'infrastruttura IT. Questo vale allo stesso modo per le piccole organizzazioni con pochi server e per le grandi aziende con una moltitudine di server.
Zabbix è gratuito. Zabbix è scritto e distribuito sotto la licenza AGPL-3.0. Ciò significa che il suo codice sorgente è distribuito liberamente ed è disponibile al pubblico in generale.
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, facendo riferimento ai valori del database backend
Segnalazione altamente configurabile
- l'invio delle notifiche può essere personalizzato in base al piano di escalation, al destinatario e al tipo di media
- le notifiche possono essere rese significative e utili usando variabili macro
- le azioni automatiche includono comandi remoti
- gli item monitorati vengono immediatamente rappresentati in grafico usando 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
- aggiungi i dispositivi monitorati come host
- gli host vengono presi in carico per il monitoraggio una volta presenti nel database
- applica 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
- puoi 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
- alcuni 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
- monitoraggio remoto reso semplice usando un Zabbix proxy
Glossario
In questa sezione puoi apprendere il significato di alcuni termini comunemente usati in Zabbix.
- qualsiasi dispositivo fisico o virtuale, applicazione, servizio o qualsiasi altra raccolta logicamente correlata di parametri monitorati.
- un raggruppamento logico di host. Gli host group vengono usati quando si assegnano diritti di accesso agli host per diversi gruppi di utenti.
- un particolare dato che desideri 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 usata per "valutare" i dati ricevuti negli item.
Quando i dati ricevuti sono superiori alla soglia, i trigger passano da Ok a uno stato Problem. Quando i dati ricevuti sono inferiori alla soglia, i trigger rimangono/tornano a uno stato Ok.
- un insieme di entità (item, trigger, grafici, regole di discovery a basso livello, scenari web) pronte per essere applicate a uno o più host.
Il compito dei template è velocizzare la distribuzione delle attività di monitoraggio su un host; inoltre, rendere più semplice applicare modifiche di massa alle attività di monitoraggio. I template sono collegati direttamente ai singoli host.
- un raggruppamento logico di template. I template group vengono usati quando si assegnano diritti di accesso ai template per diversi gruppi di utenti.
- una singola occorrenza di qualcosa che merita attenzione, come un trigger che cambia stato o una discovery/autoregistrazione dell'agent che ha luogo.
- un marcatore predefinito per l'evento. Può essere usato nella correlazione degli eventi, nella granularità dei permessi, ecc.
- un metodo per correlare in modo flessibile e preciso i problemi con la loro risoluzione.
Ad esempio, puoi definire che un problema segnalato da un trigger possa essere risolto da un altro trigger, che può anche usare un metodo diverso di raccolta dati.
- un trigger che si trova nello stato "Problem".
- opzioni di gestione dei problemi fornite da Zabbix, come aggiungere un commento, riconoscere, modificare la gravità o chiudere manualmente.
- un mezzo predefinito per reagire a un evento.
Un'azione consiste in 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'azione; una sequenza di invio di notifiche/esecuzione di comandi remoti.
- un segnaposto variabile che si risolve in un valore specifico a seconda del contesto.
- un mezzo di consegna delle notifiche; canale di consegna.
- 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 certa condizione.
- una o più richieste HTTP per verificare la disponibilità di un sito web.
- l'interfaccia web fornita con Zabbix.
- sezione personalizzabile dell'interfaccia web che mostra riepiloghi e visualizzazioni di informazioni importanti in unità visive chiamate widget.
- unità visiva che mostra informazioni di un certo tipo e provenienza (un riepilogo, una mappa, un grafico, l'orologio, ecc.), usata nel dashboard.
- Zabbix API consente di usare il protocollo JSON RPC per creare, aggiornare e recuperare oggetti Zabbix (come host, item, grafici e altri) oppure eseguire altre attività personalizzate.
- un processo centrale del software Zabbix che esegue il monitoraggio, interagisce con i Zabbix proxy e gli agent, calcola i trigger, invia notifiche; un archivio centrale dei dati.
- un processo che può raccogliere dati per conto di Zabbix server, assumendosi parte del carico di elaborazione del server.
- un processo distribuito sui target di monitoraggio per monitorare attivamente le risorse e le applicazioni locali.
- una nuova generazione di Zabbix agent per monitorare attivamente le risorse e le applicazioni locali, consentendo l'uso di plugin personalizzati per il monitoraggio.
Poiché Zabbix agent 2 condivide gran parte delle funzionalità con Zabbix agent, il termine "Zabbix agent" nella documentazione indica entrambi - Zabbix agent e Zabbix agent 2, se il comportamento funzionale è lo stesso. Zabbix agent 2 viene nominato in modo specifico solo quando la sua funzionalità differisce.
- supporto delle comunicazioni cifrate tra i componenti Zabbix (server, proxy, agent, zabbix_sender e zabbix_get utilities) tramite il protocollo Transport Layer Security (TLS).
- processo automatizzato mediante il quale un Zabbix agent viene registrato come host e inizia il monitoraggio.
- scoperta automatizzata dei dispositivi di rete.
- scoperta automatizzata di entità di basso livello su un determinato dispositivo (ad esempio file system, interfacce di rete, ecc.).
- insieme di definizioni per la scoperta automatizzata di entità di basso livello su un dispositivo.
- una metrica con determinati parametri come variabili, pronta per la low-level discovery. Dopo la low-level discovery, le variabili vengono sostituite automaticamente con i parametri reali scoperti e la metrica inizia automaticamente a raccogliere dati.
- un trigger con determinati parametri come variabili, pronto per la low-level discovery. Dopo la low-level discovery, le variabili vengono sostituite automaticamente con i parametri reali scoperti e il trigger inizia automaticamente a valutare i dati.
I prototype di alcune altre entità Zabbix sono anch'essi utilizzati nella low-level discovery - graph prototype, host prototype, host group prototype.