Requisiti
Hardware
Memoria
Zabbix richiede sia memoria fisica che memoria su disco. La quantità di memoria su disco necessaria dipende ovviamente dal numero di host e di parametri che vengono monitorati. Se si prevede di conservare una lunga cronologia dei parametri monitorati, è opportuno considerare almeno un paio di gigabyte per avere spazio sufficiente a memorizzare la cronologia nel database. Ogni processo daemon di Zabbix richiede diverse connessioni a un server di database. La quantità di memoria allocata per la connessione dipende dalla configurazione del motore di database.
Maggiore è la memoria fisica disponibile, più velocemente funzionerà il database (e quindi Zabbix).
CPU
Zabbix e in particolare il database di Zabbix possono richiedere risorse CPU significative a seconda del numero di parametri monitorati e del motore di database scelto.
Altro hardware
Per utilizzare il supporto alle notifiche SMS in Zabbix sono necessari una porta di comunicazione seriale e un modem GSM seriale. Funzionerà anche un convertitore da USB a seriale.
Esempi di configurazione hardware
La tabella fornisce esempi di configurazione hardware, assumendo una piattaforma Linux/BSD/Unix.
Questi sono esempi di dimensionamento e configurazione hardware da cui iniziare. Ogni installazione di Zabbix è unica. Assicurarsi di eseguire benchmark delle prestazioni del sistema Zabbix in un ambiente di staging o di sviluppo, in modo da comprendere pienamente i requisiti prima di distribuire l'installazione di Zabbix nell'ambiente di produzione.
| Dimensione dell'installazione | Metriche monitorate1 | Core CPU/vCPU | Memoria (GiB) |
Database | Amazon EC22 |
|---|---|---|---|---|---|
| Piccola | 1 000 | 2 | 8 | MySQL Server, Percona Server, MariaDB Server, PostgreSQL |
m6i.large/m6g.large |
| Media | 10 000 | 4 | 16 | MySQL Server, Percona Server, MariaDB Server, PostgreSQL |
m6i.xlarge/m6g.xlarge |
| Grande | 100 000 | 16 | 64 | MySQL Server, Percona Server, MariaDB Server, PostgreSQL |
m6i.4xlarge/m6g.4xlarge |
| Molto grande | 1 000 000 | 32 | 96 | MySQL Server, Percona Server, MariaDB Server, PostgreSQL |
m6i.8xlarge/m6g.8xlarge |
1 1 metrica = 1 item + 1 trigger + 1 grafico
2 Esempio con istanze Amazon EC2 per uso generico, che utilizzano architettura ARM64 o x86_64; durante la valutazione e i test dell'installazione di Zabbix, prima dell'installazione nell'ambiente di produzione, deve essere selezionato un tipo di istanza appropriato, ad esempio ottimizzato per calcolo/memoria/storage.
La configurazione effettiva dipende in larga misura dal numero di item attivi e dagli intervalli di aggiornamento (per i dettagli, vedere la sezione dimensione del database di questa pagina). Per installazioni di grandi dimensioni, è altamente consigliato eseguire il database su un server separato.
Piattaforme supportate
A causa dei requisiti di sicurezza e della natura mission-critical del server di monitoraggio, UNIX è l'unico sistema operativo in grado di garantire costantemente le prestazioni, la tolleranza ai guasti e la resilienza necessarie. Zabbix funziona sulle versioni leader di mercato.
I componenti di Zabbix sono disponibili e testati per le seguenti piattaforme:
| Piattaforma | Server | Agent | Agent 2 | Commenti |
|---|---|---|---|---|
| Linux | x | x | x | |
| Windows | - | x | x | Zabbix agent è supportato su tutte le versioni desktop e server a partire da Windows XP (64-bit)/Server 2003. Zabbix agent 2 è supportato su tutte le versioni desktop e server a partire da Windows 10 (32-bit)/Server 2016, poiché è compilato solo con una versione Go supportata per prevenire vulnerabilità critiche di sicurezza. Da Go 1.21, le versioni minime richieste di Windows sono state innalzate, rendendo Windows 10/Server 2016 la versione minima per Zabbix agent 2. |
| macOS | x | x | - | |
| IBM AIX | x | x | - | Zabbix agent non funziona sulle piattaforme AIX con versioni inferiori a 6.1 TL07 / 7.1 TL01. |
| FreeBSD | x | x | - | |
| OpenBSD | x | x | - | |
| Solaris | x | x | - | |
| NetBSD | x | x | - | |
| HP-UX | x | x | - |
Zabbix server/agent può funzionare anche su altri sistemi operativi di tipo Unix.
Zabbix disabilita i core dump se compilato con crittografia e non si avvia se il sistema non consente la disabilitazione dei core dump.
Software richiesto
Zabbix è basato su moderni server web, principali motori di database e sul linguaggio di scripting PHP.
Software esterno di terze parti
Se indicato come obbligatorio, il software/la libreria richiesta è strettamente necessaria. Quelli opzionali sono necessari per supportare alcune funzioni specifiche.
| Software | Stato obbligatorietà | Versioni supportate | Commenti |
|---|---|---|---|
| MySQL/Percona | Uno tra | 8.4.0-9.5.X | Richiesto se MySQL (o Percona) viene utilizzato come database backend di Zabbix. È richiesto il motore InnoDB. Raccomandiamo di utilizzare la libreria C API (libmysqlclient) per compilare server/proxy. |
| MariaDB | 10.11.00-12.0.X | È richiesto il motore InnoDB. La versione raccomandata è 11.4. Raccomandiamo di utilizzare la libreria MariaDB Connector/C per compilare server/proxy. Vedi anche: Possibili deadlock con MariaDB e Accesso agli elementi dell'interfaccia utente con MariaDB 10.5.1–10.5.9. |
|
| PostgreSQL | 15.0-18.X | Richiesto se PostgreSQL viene utilizzato come database backend di Zabbix. A seconda delle dimensioni dell'installazione, potrebbe essere necessario aumentare la proprietà di configurazione work_mem di PostgreSQL (4MB è il valore predefinito), in modo che la quantità di memoria utilizzata dal database per una particolare operazione sia sufficiente e l'esecuzione delle query non richieda troppo tempo. |
|
| TimescaleDB per PostgreSQL | 2.20.X-2.25.X | Richiesto se TimescaleDB viene utilizzato come estensione del database PostgreSQL. Assicurarsi di installare TimescaleDB Community Edition, che supporta la compressione. Si noti che PostgreSQL 15 è supportato a partire da TimescaleDB 2.10. Per dettagli sulla compatibilità delle versioni di PostgreSQL e TimescaleDB, è possibile fare riferimento anche alla documentazione di TimescaleDB. |
|
| SQLite | Opzionale | 3.3.5-3.34.X | SQLite è supportato solo con i proxy Zabbix. Richiesto se SQLite viene utilizzato come database del proxy Zabbix. |
| Elasticsearch | 7.X | Elasticsearch è supportato solo con i server Zabbix, esclusivamente per l'archiviazione dei dati storici. Il supporto di Elasticsearch è attualmente sperimentale. Vedi anche il software richiesto per server/proxy. | |
| smartmontools | 7.1 o successiva | Richiesto per Zabbix agent 2. | |
| who | Richiesto per il plugin del conteggio utenti. | ||
| dpkg | Richiesto per il plugin system.sw.packages. | ||
| pkgtool | Richiesto per il plugin system.sw.packages. | ||
| rpm | Richiesto per il plugin system.sw.packages. | ||
| pacman | Richiesto per il plugin system.sw.packages. | ||
| q applets | qlist e qsize, come parte di q applets, sono richiesti per il plugin system.sw.packages su Gentoo Linux. |
Sebbene Zabbix possa funzionare con database disponibili nei sistemi operativi, per ottenere la migliore esperienza consigliamo di utilizzare database installati dai repository ufficiali degli sviluppatori del database.
Frontend
La larghezza minima dello schermo supportata per il frontend di Zabbix è 1200px.
Se indicato come obbligatorio, il software/la libreria richiesta è strettamente necessaria. Quelli opzionali sono necessari per supportare alcune funzioni specifiche.
| Software | Stato obbligatorietà | Versioni supportate | Commenti |
|---|---|---|---|
| PHP | Sì | 8.2.0 - 8.4.X | |
| Apache | Uno tra | 2.4 o successiva | |
| Nginx | 1.20 o successiva | ||
| MySQL | Uno tra | Vedi Software esterno di terze parti dell'ambiente circostante | |
| PostgreSQL | |||
| Estensioni PHP | |||
| mysqli | Sì | Richiesta se MySQL è utilizzato come database backend di Zabbix. | |
| pgsql | Richiesta se PostgreSQL è utilizzato come database backend di Zabbix. | ||
| bcmath | php-bcmath (--enable-bcmath) | ||
| mbstring | php-mbstring (--enable-mbstring) | ||
| sockets | php-net-socket (--enable-sockets); richiesta per il supporto degli script utente. | ||
| gd | 2.0.28 o successiva | php-gd (se fornita come pacchetto separato dal distributore); l'estensione PHP GD deve supportare immagini PNG (--with-png-dir), immagini JPEG (--with-jpeg-dir) e FreeType 2 (--with-freetype-dir). La versione 2.3.0 o successiva può essere richiesta per evitare possibili sovrapposizioni di testo nei grafici per alcune lingue del frontend. | |
| libxml | 2.6.15 o successiva | php-xml (se fornita come pacchetto separato dal distributore) | |
| xmlwriter | php-xmlwriter (se fornita come pacchetto separato dal distributore) | ||
| xmlreader | php-xmlreader (se fornita come pacchetto separato dal distributore) | ||
| ctype | php-ctype (--enable-ctype) | ||
| session | php-session (se fornita come pacchetto separato dal distributore) | ||
| ldap | No | php-ldap; richiesta per l'autenticazione LDAP. | |
| openssl | php-openssl; richiesta per l'autenticazione SAML. | ||
| gettext | php-gettext (--with-gettext); richiesta per le traduzioni. | ||
| cURL | 7.19.4 o successiva | php-curl; richiesta per Duo Universal Prompt MFA e per l'autenticazione SMTP. | |
Librerie frontend di terze parti fornite con Zabbix:
| Libreria | Stato obbligatorietà | Versione fornita | Commenti |
|---|---|---|---|
| jQuery JavaScript Library | Sì | 3.6.0 | Libreria JavaScript che semplifica il processo di sviluppo cross-browser. |
| jQuery UI | 1.12.1 | Un insieme di interazioni dell'interfaccia utente, effetti, widget e temi costruiti su jQuery. | |
| SAML PHP Toolkit | 4.3.1 | Un toolkit PHP che aggiunge il supporto per l'autenticazione SAML 2.0 per consentire l'accesso a Zabbix. | |
| Symfony Yaml Component | 5.1.0 | Aggiunge il supporto per esportare e importare elementi di configurazione di Zabbix nel formato YAML. |
Zabbix può funzionare anche con versioni precedenti di Apache, MySQL e PostgreSQL.
Per font diversi da DejaVu predefinito, potrebbe essere richiesta la funzione PHP imagerotate. Se manca, questi font potrebbero essere visualizzati in modo errato quando viene mostrato un grafico. Questa funzione è disponibile solo se PHP è compilato con GD integrato, cosa che non avviene in Debian e in altre distribuzioni.
Librerie di terze parti utilizzate per scrivere ed eseguire il debug del codice del frontend di Zabbix:
| Libreria | Stato obbligatorietà | Versione minima | Descrizione |
|---|---|---|---|
| Composer | No | 2.4.1 | Un gestore di pacchetti a livello applicativo per PHP che fornisce un formato standard per la gestione delle dipendenze del software PHP e delle librerie richieste. |
| PHPUnit | 8.5.29 | Un framework di unit testing PHP per testare il frontend di Zabbix. | |
| SASS | 3.4.22 | Un linguaggio di scripting preprocessor che viene interpretato e compilato in Cascading Style Sheets (CSS). |
Browser web lato client
I cookie e JavaScript devono essere abilitati.
Sono supportate le versioni stabili più recenti di Google Chrome, Mozilla Firefox, Microsoft Edge, Apple Safari e Opera.
È implementata la policy same-origin per gli IFrame, il che significa che Zabbix non può essere inserito in frame su un dominio diverso.
Tuttavia, le pagine inserite in un frame di Zabbix avranno accesso al frontend di Zabbix (tramite JavaScript) se la pagina inserita nel frame e il frontend di Zabbix si trovano sullo stesso dominio.
Una pagina come http://secure-zabbix.com/cms/page.html, se inserita nelle dashboard su http://secure-zabbix.com/zabbix/, avrà pieno accesso JS a Zabbix.
Server/proxy
Se indicato come obbligatorio, il software/la libreria richiesta è strettamente necessaria. Quelli opzionali sono necessari per supportare alcune funzioni specifiche.
| Requirement | Mandatory status | Description |
|---|---|---|
| libpcre2 | Sì | La libreria PCRE2 è richiesta per il supporto di Perl Compatible Regular Expression (PCRE). È supportata PCRE2 v10.x. |
| libevent | Richiesta per la comunicazione tra processi. Versione 2.0.10 o successiva. | |
| libevent-pthreads | Richiesta per la comunicazione tra processi. | |
| libpthread | Richiesta per il supporto di mutex e lock in lettura-scrittura (può far parte di libc). | |
| libresolv | Richiesta per la risoluzione DNS (può far parte di libc). | |
| libiconv | Richiesta per la codifica/convertizione del formato del testo (può far parte di libc). Obbligatoria per Zabbix server su Linux. | |
| libz | Richiesta per il supporto della compressione. | |
| libm | Libreria matematica. Richiesta solo da Zabbix server. | |
| libmysqlclient | Una delle | Richiesta se viene utilizzato MySQL. |
| libmariadb | Richiesta se viene utilizzato MariaDB. | |
| libpq5 | Richiesta se viene utilizzato PostgreSQL; la versione di libpq5 deve corrispondere o essere superiore alla versione del database PostgreSQL utilizzato. | |
| libsqlite3 | Richiesta se viene utilizzato SQLite. Richiesta solo per Zabbix proxy. | |
| libOpenIPMI | No | Richiesta per il supporto IPMI. Richiesta solo da Zabbix server. |
| libssh2 or libssh | Richiesta per i controlli SSH. Versione 1.8.0 o successiva (libssh2); 0.9.0 o successiva (libssh). | |
| libcurl | Richiesta per le seguenti funzionalità: - item di monitoraggio web, monitoraggio VMware e HTTP agent (per tutti: versione 7.19.1 o successiva); - item web.page.* di Zabbix agent (versione 7.19.1 o successiva; vedere anche i requisiti di agent); - autenticazione SMTP (Basic: versione 7.20.0 o successiva; OAuth: versione 7.33 o successiva; vedere anche i requisiti di frontend); - Elasticsearch (versione 7.28.0 o successiva). Per tutte le funzionalità è consigliata la versione 7.28.0 o successiva. Per utilizzare le funzionalità cURL aggiornate per gli item web.page.*, riavviare Zabbix server/proxy.Per l'autenticazione SMTP, utilizzare il pacchetto libcurl-full in fase di esecuzione. |
|
| libxml2 | Richiesta per il monitoraggio VMware e il preprocessing XML XPath. | |
| net-snmp | Richiesta per il supporto SNMP. Versione 5.3.0 o successiva. Il supporto dei protocolli di crittografia avanzata (AES192/AES192C, AES256/AES256C) è disponibile a partire dalla libreria net-snmp 5.8; sui sistemi basati su RHEL 8+ si consiglia di utilizzare net-snmp 5.8.15 o successiva. |
|
| libunixodbc | Richiesta per il monitoraggio del database. | |
| libgnutls or libopenssl | Richiesta quando si utilizza la crittografia. Versioni minime: libgnutls - 3.1.18, libopenssl - 1.0.1 |
|
| libldap | Richiesta per il supporto LDAP. | |
| fping | Richiesto per gli item ICMP ping. | |
| c-ares | Richiesto per la risoluzione DNS asincrona se Zabbix è configurato con l'opzione --with-ares. In caso contrario, verrà utilizzato libevent.Versione minima: 1.16.0. La cache delle query DNS (cache delle query abilitata per impostazione predefinita) richiede c-ares 1.26.0 o successiva. |
Agent
| Requisito | Stato obbligatorio | Descrizione |
|---|---|---|
| libpcre2 | Sì | La libreria PCRE2 è richiesta per il supporto di Perl Compatible Regular Expression (PCRE). PCRE2 v10.x è supportata. Richiesta per il monitoraggio dei log. Richiesta anche su Windows. |
| libpthread | Richiesta per il supporto di mutex e blocchi lettura-scrittura (può essere parte di libc). Non richiesta su Windows. | |
| libresolv | Richiesta per la risoluzione DNS (può essere parte di libc). Non richiesta su Windows. | |
| libiconv | Richiesta per la codifica del testo/la conversione del formato in UTF-8 negli item log, contenuto file, file regex e regmatch (può essere parte di libc). Non richiesta su Windows. | |
| libgnutls or libopenssl | No | Richiesta se si utilizza la crittografia. Versioni minime: libgnutls - 3.1.18, libopenssl - 1.0.1 Su Microsoft Windows è richiesto OpenSSL 1.1.1 o successivo. |
| libldap | Richiesta se viene utilizzato LDAP. Non supportata su Windows. | |
| libcurl | Richiesta per il supporto esteso degli item web.page.* di Zabbix agent. Senza libcurl, è disponibile la funzionalità di base (ad esempio, web.page.get[http://example.com]). Con libcurl, l'agent supporta funzionalità aggiuntive, come URL HTTP con credenziali (ad esempio, http://user:[email protected]) e URL HTTPS. È richiesta la versione 7.19.1 o successiva (si raccomanda la 7.28.0 o successiva). Per utilizzare le funzionalità cURL aggiornate, riavviare Zabbix agent. |
|
| libmodbus | Richiesta solo se viene utilizzato il monitoraggio Modbus. Versione 3.0 o successiva. |
Agent 2
| Requisito | Obbligatorietà | Descrizione |
|---|---|---|
| Go | Sì | Richiesto per compilare Zabbix agent 2 e i relativi plugin dal codice sorgente. È supportato Go 1.24.10 o successivo. Vedere go.dev per le istruzioni di installazione. Le librerie Go utilizzate da Zabbix agent 2 e dai relativi plugin sono elencate nel repository Git di Zabbix (le librerie contrassegnate come indirect nel repository sono dipendenze di altre librerie richieste):- Zabbix agent 2 - Supporto plugin - PostgreSQL - MongoDB - MSSQL - Ember+ - NVIDIA GPU - Plugin di esempio |
| libpcre2 | Sì | La libreria PCRE2 è richiesta per il supporto di Perl Compatible Regular Expression (PCRE). È supportato PCRE2 v10.x. Richiesta per il monitoraggio dei log. Richiesta anche su Windows. |
| libopenssl | No | Richiesto quando si utilizza la crittografia. OpenSSL 1.0.1 o successivo è richiesto sulle piattaforme UNIX. La libreria OpenSSL deve avere il supporto PSK abilitato. LibreSSL non è supportato. Sui sistemi Microsoft Windows è richiesto OpenSSL 1.1.1 o successivo. |
Servizio web
L'ultima versione stabile di Google Chrome è supportata per la generazione di report pianificati tramite il servizio web di Zabbix.
La versione di Go richiesta per compilare il servizio web corrisponde a quella utilizzata per Zabbix agent 2.
Java gateway
Se hai ottenuto Zabbix dal repository dei sorgenti o da un archivio, le dipendenze necessarie sono già incluse nell'albero dei sorgenti.
Se hai ottenuto Zabbix dal pacchetto della tua distribuzione, le dipendenze necessarie sono già fornite dal sistema di pacchettizzazione.
In entrambi i casi sopra indicati, il software è pronto per essere utilizzato e non sono necessari download aggiuntivi.
Se tuttavia desideri fornire le tue versioni di queste dipendenze (ad esempio, se stai preparando un pacchetto per una distribuzione Linux), di seguito è riportato l'elenco delle versioni delle librerie con cui Java gateway è noto per funzionare. Zabbix potrebbe funzionare anche con altre versioni di queste librerie.
La tabella seguente elenca i file JAR attualmente inclusi con Java gateway nel codice originale:
| Library | Mandatory status | Bundled version | Comments |
|---|---|---|---|
| android-json | Sì | 4.3r1 | JSON (JavaScript Object Notation) è un formato leggero per lo scambio di dati. Questa è l'implementazione Android compatibile con org.json estratta dall'SDK Android. |
| logback-classic | 1.5.16 | ||
| logback-core | 1.5.16 | ||
| slf4j-api | 2.0.16 |
Java gateway può essere compilato utilizzando Oracle Java oppure OpenJDK open source (versione 1.6 o successiva). I pacchetti forniti da Zabbix sono compilati utilizzando OpenJDK. La tabella seguente elenca i pacchetti OpenJDK utilizzati per compilare i pacchetti Zabbix per distribuzione:
| Distribution | OpenJDK package |
|---|---|
| AlmaLinux 9 | java-11-openjdk-devel (amd64: 11.0.19.0.7-4; arm64: 11.0.20.0.8-3) |
| AlmaLinux 8 | java-1.8.0-openjdk-devel (amd64: 1.8.0.332.b09-2; arm64: 1.8.0.382.b05-2) |
| Amazon Linux 2023 | java-22-amazon-corretto-devel (amd64, arm64: 22.0.2+9-1) |
| CentOS Stream 9 | java-11-openjdk-devel (amd64, arm64: 11.0.18.0.10-3) |
| CentOS Stream 8 | java-1.8.0-openjdk-devel (amd64, arm64: 1.8.0.362.b08-3) |
| CentOS 7 | java-1.8.0-openjdk-devel (amd64: 1.8.0.282.b08-1) |
| Debian 12 | default-jdk-headless (amd64, arm64: 2:1.17-74) |
| Debian 11 | default-jdk-headless (amd64: 2:1.11-72) |
| OpenSUSE Leap 15 | java-17-openjdk-devel (amd64: 17.0.5.0-150400.3.9.3; arm64: 17.0.8.0-150400.3.27.1) |
| Oracle Linux 9 | java-11-openjdk-devel (amd64: 11.0.19.0.7-4.0.1; arm64: 11.0.20.0.8-2.0.1) |
| Oracle Linux 8 | java-1.8.0-openjdk-devel (amd64: 1.8.0.372.b07-4.0.1); java-11-openjdk-devel (arm64: 11.0.20.0.8-3.0.1) |
| Oracle Linux 7 | java-1.8.0-openjdk-devel (amd64: 1.8.0.282.b08-1) |
| Raspberry Pi OS 12 | default-jdk-headless (arm64, armhf: 2:1.17-74) |
| Raspberry Pi OS 11 | default-jdk-headless (arm64: 2:1.11-72; armhf: 2:1.11-72+b4) |
| RHEL 9 | java-11-openjdk-devel (amd64: 11.0.19.0.7-4; arm64: 11.0.20.0.8-3) |
| RHEL 8 | java-1.8.0-openjdk-devel (amd64: 1.8.0.372.b07-4; arm64: 1.8.0.382.b05-2) |
| RHEL 7 | java-1.8.0-openjdk-devel (amd64: 1.8.0.282.b08-1) |
| Rocky Linux 9 | java-11-openjdk-devel (amd64: 11.0.19.0.7-4; arm64: 11.0.20.0.8-3) |
| Rocky Linux 8 | java-1.8.0-openjdk-devel (amd64: 1.8.0.372.b07-4; arm64: 1.8.0.382.b05-2) |
| SLES 15 | java-17-openjdk-devel (amd64: 17.0.5.0-150400.3.9.3; arm64: 17.0.8.0-150400.3.27.1) |
| Ubuntu 24.04 | default-jdk-headless (amd64, arm64: 2:1.21-75+exp1) |
| Ubuntu 22.04 | default-jdk-headless (amd64, arm64: 2:1.11-72build2) |
| Ubuntu 20.04 | default-jdk-headless (amd64, arm64: 2:1.11-72) |
Numeri di porta predefiniti
Il seguente elenco delle porte aperte per componente è applicabile alla configurazione predefinita:
| Componente Zabbix | Numero di porta | Protocollo | Tipo di connessione |
|---|---|---|---|
| Zabbix agent | 10050 | TCP | su richiesta |
| Zabbix agent 2 | 10050 | TCP | su richiesta |
| Zabbix server | 10051 | TCP | su richiesta |
| Zabbix proxy | 10051 | TCP | su richiesta |
| Zabbix Java gateway | 10052 | TCP | su richiesta |
| Zabbix web service | 10053 | TCP | su richiesta |
| Zabbix frontend | 80 | HTTP | su richiesta |
| 443 | HTTPS | su richiesta | |
| Zabbix trapper | 10051 | TCP | su richiesta |
I numeri di porta devono essere aperti nel firewall per abilitare le comunicazioni di Zabbix. Le connessioni TCP in uscita di solito non richiedono impostazioni esplicite del firewall.
Dimensione del database
I dati di configurazione di Zabbix richiedono una quantità fissa di spazio su disco e non crescono molto.
La dimensione del database di Zabbix dipende principalmente da queste variabili, che definiscono la quantità di dati storici memorizzati:
- Numero di valori elaborati al secondo
Questo è il numero medio di nuovi valori che Zabbix server riceve ogni secondo. Ad esempio, se abbiamo 3000 item da monitorare con un intervallo di aggiornamento di 60 secondi, il numero di valori al secondo viene calcolato come 3000/60 = 50.
Ciò significa che ogni secondo vengono aggiunti 50 nuovi valori al database di Zabbix.
- Impostazioni di housekeeper per lo storico
Zabbix conserva i valori per un periodo di tempo fisso, normalmente diverse settimane o mesi. Ogni nuovo valore richiede una certa quantità di spazio su disco per i dati e l'indice.
Quindi, se volessimo conservare 30 giorni di storico e ricevessimo 50 valori al secondo, il numero totale di valori sarebbe circa (30*24*3600)* 50 = 129.600.000, ovvero circa 130M di valori.
A seconda del motore di database utilizzato e del tipo di valori ricevuti (float, interi, stringhe, file di log, ecc.), lo spazio su disco necessario per conservare un singolo valore può variare da 40 byte a centinaia di byte. Normalmente è di circa 90 byte per valore per gli item numerici2. Nel nostro caso, ciò significa che 130M di valori richiederanno 130M * 90 byte = 10.9GB di spazio su disco.
La dimensione dei valori degli item di testo/log è impossibile da prevedere con precisione, ma si possono stimare circa 500 byte per valore.
- Impostazione di housekeeper per i trend
Zabbix conserva un insieme di valori max/min/avg/count su 1 ora per ciascun item nella tabella trends. Questi dati vengono utilizzati per i trend e per i grafici di lungo periodo. Il periodo di un'ora non può essere personalizzato.
Il database di Zabbix, a seconda del tipo di database, richiede circa 90 byte per ciascun totale. Supponiamo di voler conservare i dati di trend per 5 anni. I valori per 3000 item richiederanno 3000*24*365* 90 = 2.2GB all'anno, ovvero 11GB per 5 anni.
- Impostazioni di housekeeper per gli eventi
Ogni evento di Zabbix richiede circa 250 byte di spazio su disco1. È difficile stimare il numero di eventi generati quotidianamente da Zabbix. Nello scenario peggiore, possiamo assumere che Zabbix generi un evento al secondo.
Per ogni evento ripristinato, viene creato un record event_recovery. Normalmente la maggior parte degli eventi verrà ripristinata, quindi possiamo assumere un record event_recovery per evento. Ciò significa ulteriori 80 byte per evento.
Facoltativamente, gli eventi possono avere tag; ogni record di tag richiede circa 100 byte di spazio su disco1. Il numero di tag per evento (#tags) dipende dalla configurazione. Quindi ciascun evento richiederà ulteriori #tags * 100 byte di spazio su disco.
Ciò significa che se vogliamo conservare 3 anni di eventi, saranno necessari 3*365*24*3600* (250+80+#tags*100) = \~30GB+#tags*100B di spazio su disco2.
1 Di più in presenza di nomi evento, tag e valori non ASCII.
2 Le stime delle dimensioni si basano su MySQL e potrebbero essere diverse per altri database.
La tabella contiene formule che possono essere utilizzate per calcolare lo spazio su disco richiesto per il sistema Zabbix:
| Parameter | Formula for required disk space (in bytes) |
|---|---|
| Configurazione di Zabbix | Dimensione fissa. Normalmente 10MB o meno. |
| Storico | days*(items/refresh rate)*24*3600*bytes items : numero di item days : numero di giorni per cui conservare lo storico refresh rate : intervallo medio di aggiornamento degli item bytes : numero di byte necessari per conservare un singolo valore, dipende dal motore di database, normalmente \~90 byte. |
| Trend | days*(items/3600)*24*3600*bytes items : numero di item days : numero di giorni per cui conservare lo storico bytes : numero di byte necessari per conservare un singolo trend, dipende dal motore di database, normalmente \~90 byte. |
| Eventi | days*events*24*3600*bytes events : numero di eventi al secondo. Un (1) evento al secondo nello scenario peggiore. days : numero di giorni per cui conservare lo storico bytes : numero di byte necessari per conservare un singolo evento, dipende dal motore di database, normalmente \~330 + numero medio di tag per evento * 100 byte. |
Quindi, lo spazio totale su disco richiesto può essere calcolato come:
Configurazione + Storico + Trend + Eventi
Lo spazio su disco NON verrà utilizzato immediatamente dopo l'installazione di Zabbix. La dimensione del database crescerà e poi smetterà di crescere a un certo punto, che dipende dalle impostazioni di housekeeper.
Sincronizzazione dell'ora
È molto importante avere un'ora di sistema precisa sul server su cui è in esecuzione Zabbix. ntpd è il demone più diffuso che sincronizza l'ora del host con quella di altre macchine. Si raccomanda vivamente di mantenere sincronizzata l'ora di sistema su tutti i sistemi su cui sono in esecuzione i componenti di Zabbix.
Requisiti di rete
Il seguente elenco delle porte aperte per componente è applicabile alla configurazione predefinita.
| Componenti | Porta |
|---|---|
| Frontend | http sulla 80, https sulla 443 |
| Server | 10051 (per l'uso con proxy/agent attivi) |
| Proxy attivo | 10051 |
| Proxy passivo | 10051 |
| Agent2 | 10050 |
| Trapper | |
| Java gateway | 10052 |
| WebService | 10053 |
I numeri di porta devono essere aperti nel firewall per abilitare le comunicazioni esterne con Zabbix. Le connessioni TCP in uscita di solito non richiedono impostazioni esplicite del firewall.