This is a translation of the original English documentation page. Help us make it better.

2 Vereisten

Hardware

Geheugen

Zabbix vereist zowel fysiek als schijfgeheugen. De benodigde hoeveelheid schijfgeheugen hangt natuurlijk af van het aantal gehoste systemen en parameters dat wordt gemonitord. Als je van plan bent om een lange geschiedenis van gemonitorde parameters te bewaren, moet je denken aan minstens een paar gigabytes om voldoende ruimte te hebben om de geschiedenis in de database op te slaan. Elk Zabbix-daemonproces vereist verschillende verbindingen met een databaseserver. De hoeveelheid geheugen die wordt toegewezen voor de verbinding is afhankelijk van de configuratie van de database-engine.

Hoe meer fysiek geheugen je hebt, hoe sneller de database (en dus Zabbix) werkt.

CPU

Zabbix en vooral de Zabbix-database kunnen aanzienlijke CPU-bronnen vereisen, afhankelijk van het aantal gemonitorde parameters en de gekozen database-engine.

Andere hardware

Een seriële communicatiepoort en een seriële GSM-modem zijn vereist voor het gebruik van SMS-meldingsondersteuning in Zabbix. Een USB-naar-seriële converter werkt ook.

Voorbeelden van hardwareconfiguratie

De onderstaande tabel geeft voorbeelden van hardwareconfiguratie weer, uitgaande van een Linux/BSD/Unix platform.

Dit zijn voorbeelden van grootte en hardwareconfiguratie om mee te beginnen. Elke Zabbix-installatie is uniek. Zorg ervoor dat je de prestaties van je Zabbix-systeem benchmarkt in een staging- of ontwikkelingsomgeving, zodat je je vereisten volledig begrijpt voordat je de Zabbix-installatie implementeert in de productieomgeving.

Installatiegrootte Bewaakte metingen1 CPU/vCPU-kernen Geheugen
(GiB)
Database Amazon EC22
Klein 1 000 2 8 MySQL Server,
Percona Server,
MariaDB Server,
PostgreSQL
m6i.large/m6g.large
Middelgroot 10 000 4 16 MySQL Server,
Percona Server,
MariaDB Server,
PostgreSQL
m6i.xlarge/m6g.xlarge
Groot 100 000 16 64 MySQL Server,
Percona Server,
MariaDB Server,
PostgreSQL,
Oracle
m6i.4xlarge/m6g.4xlarge
Zeer groot 1 000 000 32 96 MySQL Server,
Percona Server,
MariaDB Server,
PostgreSQL,
Oracle
m6i.8xlarge/m6g.8xlarge

1 1 meting = 1 item + 1 trigger + 1 grafiek
2 Voorbeeld met Amazon general purpose EC2-instanties, gebruikmakend van ARM64- of x86_64-architectuur, een geschikt instantietype zoals Compute/Memory/Storage geoptimaliseerd moet worden geselecteerd tijdens de evaluatie en testen van de Zabbix-installatie voordat deze in de productieomgeving wordt geïnstalleerd.

De daadwerkelijke configuratie hangt sterk af van het aantal actieve items en verversingssnelheden (zie het gedeelte databasegrootte op deze pagina voor details). Het wordt sterk aanbevolen om de database op een aparte server te draaien voor grote installaties.

Ondersteunde platforms

Vanwege de beveiligingseisen en de missiekritieke aard van de monitoringserver is UNIX het enige besturingssysteem dat consistent de benodigde prestaties, fouttolerantie en veerkracht kan bieden. Zabbix werkt op toonaangevende versies.

Zabbix-componenten zijn beschikbaar en getest voor de volgende platforms:

Platform Server Agent Agent2
Linux x x x
IBM AIX x x -
FreeBSD x x -
NetBSD x x -
OpenBSD x x -
HP-UX x x -
Mac OS X x x -
Solaris x x -
Windows - x x

Zabbix server/agent kan ook werken op andere Unix-achtige besturingssystemen. Zabbix-agent wordt ondersteund op alle Windows-desktop- en serverversies sinds XP.

Zabbix schakelt kern-dumps uit als het is gecompileerd met versleuteling en start niet als het systeem het uitschakelen van kern-dumps niet toestaat.

Vereiste software

Zabbix is gebaseerd op moderne webservers, toonaangevende database-engines en de PHP-scripttaal.

Externe software van derde

Indien aangegeven als verplicht, is de benodigde software/bibliotheek absoluut noodzakelijk. Optionele software is nodig ter ondersteuning van specifieke functies.

Software Verplichte status Ondersteunde versies Opmerkingen
MySQL/Percona Eén van 8.0.30-8.1.X Vereist als MySQL (of Percona) wordt gebruikt als backend-database voor Zabbix. InnoDB-engine is vereist.

MySQL 8.1 wordt ondersteund vanaf Zabbix 6.0.21.

We raden aan om de C API (libmysqlclient) bibliotheek te gebruiken voor het bouwen van de server/proxy.

Voor MySQL-versies 8.0.0-8.0.28, zie ook: Mogelijke deadlocks.
MariaDB 10.5.00-11.0.X InnoDB-engine is vereist.

De aanbevolen versie is 10.5.

We raden aan om de MariaDB Connector/C bibliotheek te gebruiken voor het bouwen van de server/proxy.

Ondersteuning toegevoegd voor MariaDB-versies:
- 10.7.X vanaf Zabbix 6.0.6;
- 10.8.X vanaf Zabbix 6.0.7;
- 10.9.X en 10.10.X vanaf Zabbix 6.0.13;
- 10.11.X vanaf Zabbix 6.0.15;
- 11.0.X vanaf Zabbix 6.0.21.

Zie ook: Mogelijke deadlocks.
Oracle 19c - 21c Vereist als Oracle wordt gebruikt als backend-database voor Zabbix.
PostgreSQL 13.0-15.X Vereist als PostgreSQL wordt gebruikt als backend-database voor Zabbix.
Afhankelijk van de installatieomvang is het mogelijk dat u de configuratie-eigenschap work_mem van PostgreSQL moet vergroten (standaardwaarde is 4 MB), zodat de hoeveelheid geheugen die door de database wordt gebruikt voor een bepaalde bewerking voldoende is en query-uitvoering niet te veel tijd in beslag neemt.

Ondersteuning toegevoegd voor PostgreSQL-versies:
- 15.X vanaf Zabbix 6.0.10.
TimescaleDB voor PostgreSQL 2.0.1-2.11 Vereist als TimescaleDB wordt gebruikt als een PostgreSQL database-extensie. Zorg ervoor dat u de TimescaleDB Community Edition installeert, die compressie ondersteunt.

Merk op dat PostgreSQL 15 wordt ondersteund vanaf TimescaleDB 2.10.
U kunt ook de officiële documentatie raadplegen voor details over compatibiliteit tussen PostgreSQL en TimescaleDB-versies.

Ondersteuning toegevoegd voor TimescaleDB-versies:
- 2.6 vanaf Zabbix 6.0.7;
- 2.7 vanaf Zabbix 6.0.8;
- 2.8 vanaf Zabbix 6.0.10;
- 2.9 vanaf Zabbix 6.0.13;
- 2.10 vanaf Zabbix 6.0.15;
- 2.11 vanaf Zabbix 6.0.19.
SQLite Optioneel 3.3.5-3.34.X SQLite wordt alleen ondersteund bij Zabbix proxies. Vereist als SQLite wordt gebruikt als Zabbix proxy-database.
smartmontools 7.1 of hoger Vereist voor Zabbix agent 2.
who Vereist voor de gebruikersaantallen plugin.
dpkg Vereist voor de system.sw.packages plugin.
pkgtool Vereist voor de system.sw.packages plugin.
rpm Vereist voor de system.sw.packages plugin.
pacman Vereist voor de system.sw.packages plugin.

Hoewel Zabbix kan werken met databases die beschikbaar zijn in het besturingssysteem, raden we aan voor de beste ervaring databases te gebruiken die zijn geïnstalleerd vanuit de officiële repositories van de databaseontwikkelaar.

Here is the information presented in Dutch:

Frontend

De minimum ondersteunde scherm breedte voor de Zabbix frontend is 1200px.

Indien als verplicht aangegeven, is de vereiste software/bibliotheek strikt noodzakelijk. Optionele items zijn nodig om bepaalde specifieke functies te ondersteunen.

Software Verplichte status Versie Opmerkingen
Apache Eén van 2.4 of later
Nginx 1.20 of later
PHP Ja 7.2.5 of later, 8.0-8.2 Aanbevolen om PHP 7.4 of later te gebruiken.

Ondersteuning toegevoegd voor PHP-versies:
- 8.0 en 8.1 sinds Zabbix 6.0.6;
- 8.2 sinds Zabbix 6.0.14.
PHP-extensies:
gd Ja 2.0.28 of later PHP GD-extensie moet PNG-afbeeldingen ondersteunen (--with-png-dir), JPEG (--with-jpeg-dir) afbeeldingen en FreeType 2 (--with-freetype-dir).
Versie 2.3.0 of later kan nodig zijn om mogelijke tekst overlapping in grafieken voor sommige frontend-talen te vermijden.
bcmath php-bcmath (--enable-bcmath)
ctype php-ctype (--enable-ctype)
libXML 2.6.15 of later php-xml, indien apart aangeboden door de distributeur.
xmlreader php-xmlreader, indien apart aangeboden door de distributeur.
xmlwriter php-xmlwriter, indien apart aangeboden door de distributeur.
session php-session, indien apart aangeboden door de distributeur.
sockets php-net-socket (--enable-sockets). Vereist voor ondersteuning van gebruikersscripts.
mbstring php-mbstring (--enable-mbstring)
gettext php-gettext (--with-gettext). Vereist voor vertalingen.
ldap Nee php-ldap. Alleen vereist als LDAP-authenticatie in de frontend wordt gebruikt.
openssl php-openssl. Alleen vereist als SAML-authenticatie in de frontend wordt gebruikt.
mysqli Vereist als MySQL wordt gebruikt als Zabbix backend database.
oci8 Vereist als Oracle wordt gebruikt als Zabbix backend database.
pgsql Vereist als PostgreSQL wordt gebruikt als Zabbix backend database.

Externe frontend bibliotheken die met Zabbix worden geleverd:

Bibliotheek Verplichte status Minimale versie Opmerkingen
jQuery JavaScript Library Ja 3.6.0 JavaScript-bibliotheek die het proces van cross-browser ontwikkeling vereenvoudigt.
jQuery UI 1.12.1 Een set van gebruikersinterface-interacties, effecten, widgets en thema's gebouwd bovenop jQuery.
OneLogin's SAML PHP Toolkit 3.4.1 Een PHP toolkit die SAML 2.0 authenticatie ondersteuning toevoegt om in te kunnen loggen op Zabbix.
Symfony Yaml Component 5.1.0 Voegt ondersteuning toe om Zabbix configuratie-elementen te exporteren en importeren in het YAML-formaat.

Zabbix kan ook werken met eerdere versies van Apache, MySQL, Oracle en PostgreSQL.

Voor andere lettertypen dan het standaard DejaVu-lettertype kan de PHP functie imagerotate vereist zijn. Als dit ontbreekt, kunnen deze lettertypen mogelijk incorrect worden weergegeven wanneer een grafiek wordt getoond. Deze functie is alleen beschikbaar als PHP is gecompileerd met de gebundelde GD, wat niet het geval is in Debian en andere distributies.

Externe bibliotheken die worden gebruikt voor het schrijven en debuggen van Zabbix frontend-code:

Bibliotheek Verplichte status Minimale versie Beschrijving
Composer Nee 2.4.1 Een op toepassingsniveau pakketmanager voor PHP die een standaard formaat biedt voor het beheren van afhankelijkheden van PHP-software en vereiste bibliotheken.
PHPUnit 8.5.29 Een PHP-unit testframework voor het testen van de Zabbix frontend.
SASS 3.4.22 Een preprocessor scripttaal die wordt geïnterpreteerd en gecompileerd naar Cascading Style Sheets (CSS).
Webbrowser aan de kant van de gebruiker

Cookies en JavaScript moeten zijn ingeschakeld.

De nieuwste stabiele versies van Google Chrome, Mozilla Firefox, Microsoft Edge, Apple Safari en Opera worden ondersteund.

Hetzelfde-oorsprongbeleid voor IFrames is geïmplementeerd, wat betekent dat Zabbix niet in frames op een ander domein kan worden geplaatst.

Niettemin hebben pagina's die in een Zabbix-frame worden geplaatst, toegang tot de Zabbix-frontend (via JavaScript) als de pagina die in het frame wordt geplaatst en de Zabbix-frontend zich op hetzelfde domein bevinden. Een pagina zoals http://secure-zabbix.com/cms/pagina.html, indien geplaatst in dashboards op http://secure-zabbix.com/zabbix/, krijgt volledige JS-toegang tot Zabbix.

Server/proxy

Indien aangeduid als verplicht, is de vereiste software/bibliotheek absoluut noodzakelijk. Optionele zijn nodig om bepaalde specifieke functies te ondersteunen.

Vereiste Mandatory status Omschrijving
libpcre/libpcre2 Eén van PCRE/PCRE2-bibliotheek is vereist voor ondersteuning van Perl Compatible Regular Expression (PCRE).
De naamgeving kan verschillen afhankelijk van de GNU/Linux-distributie, bijvoorbeeld 'libpcre3' of 'libpcre1'. PCRE v8.x en PCRE2 v10.x (vanaf Zabbix 6.0.0) worden ondersteund.
libevent Ja Vereist voor interprocescommunicatie. Versie 1.4 of hoger.
libpthread Vereist voor ondersteuning van mutex en read-write locks (kan deel uitmaken van libc).
libresolv Vereist voor DNS-resolutie (kan deel uitmaken van libc).
libiconv Vereist voor conversie van tekstcodering/-indeling (kan deel uitmaken van libc). Verplicht voor Zabbix-server op Linux.
libz Vereist voor compressieondersteuning.
libm Wiskundige bibliotheek. Alleen vereist door de Zabbix-server.
libmysqlclient Eén van Vereist indien MySQL wordt gebruikt.
libmariadb Vereist indien MariaDB wordt gebruikt.
libclntsh Vereist indien Oracle wordt gebruikt; versie van libclntsh moet overeenkomen met of hoger zijn dan de versie van de gebruikte Oracle-database.
libpq5 Vereist indien PostgreSQL wordt gebruikt; versie van libpq5 moet overeenkomen met of hoger zijn dan de versie van de gebruikte PostgreSQL-database.
libsqlite3 Vereist indien Sqlite wordt gebruikt. Alleen vereist door Zabbix-proxy.
libOpenIPMI Nee Vereist voor IPMI-ondersteuning. Alleen vereist door de Zabbix-server.
libssh2 of libssh Vereist voor SSH-controles. Versie 1.0 of hoger (libssh2); 0.6.0 of hoger (libssh).
libssh wordt ondersteund vanaf Zabbix 4.4.6.
libcurl Vereist voor webmonitoring, VMware-monitoring, SMTP-authenticatie, web.page.* Zabbix-agent items, HTTP-agent-items en Elasticsearch (indien gebruikt). Versie 7.28.0 of hoger wordt aanbevolen.
Vereisten voor libcurl-versies:
- SMTP-authenticatie: versie 7.20.0 of hoger
- Elasticsearch: versie 7.28.0 of hoger
libxml2 Vereist voor VMware-monitoring en XML XPath-voorverwerking.
net-snmp Vereist voor SNMP-ondersteuning. Versie 5.3.0 of hoger.
Ondersteuning van sterke versleutelingsprotocollen (AES192/AES192C, AES256/AES256C) is beschikbaar vanaf net-snmp-bibliotheek 5.8; op RHEL 8+-gebaseerde systemen wordt aanbevolen om net-snmp 5.8.15 of later te gebruiken.
libunixodbc Vereist voor database-monitoring.
libgnutls of libopenssl Vereist bij gebruik van versleuteling.
Minimale versies: libgnutls - 3.1.18, libopenssl - 1.0.1
libldap Vereist voor LDAP-ondersteuning.
fping Vereist voor ICMP ping-items.
Agent
Requirement Mandatory status Description
libpcre/libpcre2 Eén van PCRE/PCRE2-bibliotheek is vereist voor ondersteuning van Perl Compatible Regular Expression (PCRE).
De naamgeving kan verschillen afhankelijk van de GNU/Linux-distributie, bijvoorbeeld 'libpcre3' of 'libpcre1'. PCRE v8.x en PCRE2 v10.x (vanaf Zabbix 6.0.0) worden ondersteund.
Vereist voor logmonitoring. Ook vereist op Windows.
libpthread Ja Vereist voor ondersteuning van mutex en read-write locks (kan deel uitmaken van libc). Niet vereist op Windows.
libresolv Vereist voor DNS-resolutie (kan deel uitmaken van libc). Niet vereist op Windows.
libiconv Vereist voor conversie van tekstcodering/-indeling naar UTF-8 bij log-items, bestandsinhoud, bestandsregex en regmatch-items (kan deel uitmaken van libc). Niet vereist op Windows.
libgnutls of libopenssl Nee Vereist bij gebruik van versleuteling.
Minimale versies: libgnutls - 3.1.18, libopenssl - 1.0.1
Op Microsoft Windows is OpenSSL 1.1.1 of later vereist.
libldap Vereist bij gebruik van LDAP. Niet ondersteund op Windows.
libcurl Vereist voor web.page.* Zabbix agent items. Niet ondersteund op Windows.
Versie 7.28.0 of hoger wordt aanbevolen.
libmodbus Alleen vereist bij gebruik van Modbus-monitoring.
Versie 3.0 of hoger.

Vanaf versie 5.0.3 zal de Zabbix-agent niet werken op AIX-platforms met versies lager dan 6.1 TL07 / AIX 7.1 TL01.

Agent 2
Vereiste Verplichte status Beschrijving
libpcre/libpcre2 Een van De PCRE/PCRE2-bibliotheek is vereist voor Perl Compatible Regular Expression (PCRE) ondersteuning.
De naamgeving kan verschillen afhankelijk van de GNU/Linux distributie, bijvoorbeeld 'libpcre3' of 'libpcre1'. PCRE v8.x en PCRE2 v10.x (vanaf Zabbix 6.0.0) worden ondersteund.
Vereist voor logmonitoring. Ook vereist op Windows.
libopenssl Nee Vereist bij gebruik van versleuteling.
OpenSSL 1.0.1 of later is vereist op UNIX-platforms.
De OpenSSL-bibliotheek moet PSK-ondersteuning ingeschakeld hebben. LibreSSL wordt niet ondersteund.
Op Microsoft Windows-systemen is OpenSSL 1.1.1 of later vereist.

Go-bibliotheken

Vereiste Verplichte status Minimum versie Beschrijving
git.zabbix.com/ap/plugin-support Ja 1.X.X Zabbix eigen ondersteuningsbibliotheek. Voornamelijk voor plugins.
github.com/BurntSushi/locker 0.0.0 Genoemde lees/schrijfvergrendelingen, toegangssynchronisatie.
github.com/chromedp/cdproto 0.0.0 Gegenereerde commando's, typen en gebeurtenissen voor de Chrome DevTools Protocol-domeinen.
github.com/chromedp/chromedp 0.6.0 Ondersteuning voor Chrome DevTools Protocol (rapportgeneratie).
github.com/dustin/gomemcached 0.0.0 Een toolkit voor het binair memcached-protocol voor Go.
github.com/eclipse/paho.mqtt.golang 1.2.0 Een bibliotheek om MQTT-verbindingen te beheren.
github.com/fsnotify/fsnotify 1.4.9 Cross-platform bestandssysteemnotificaties voor Go.
github.com/go-ldap/ldap 3.0.3 Basisfunctionaliteit voor LDAP v3 voor de Go-programmeertaal.
github.com/go-ole/go-ole 1.2.4 Win32 ole-implementatie voor Go.
github.com/godbus/dbus 4.1.0 Natte Go-bindings voor D-Bus.
github.com/go-sql-driver/mysql 1.5.0 MySQL-stuurprogramma.
github.com/godror/godror 0.20.1 Oracle DB-stuurprogramma.
github.com/mattn/go-sqlite3 2.0.3 Sqlite3-stuurprogramma.
github.com/mediocregopher/radix/v3 3.5.0 Redis-client.
github.com/memcachier/mc/v3 3.0.1 Binaire Memcached-client.
github.com/miekg/dns 1.1.43 DNS-bibliotheek.
github.com/omeid/go-yarn 0.0.1 In te sluiten bestandssysteem gekoppelde sleutel-tekenreeksopslag.
github.com/goburrow/modbus 0.1.0 Fouttolerante implementatie van Modbus.
golang.org/x/sys 0.0.0 Go-pakketten voor lage-niveau interacties met het besturingssysteem.
Ook gebruikt in ondersteuningsbibliotheek voor plugins. Gebruikt in MongoDB en PostgreSQL-plugins.
github.com/Microsoft/go-winio Op Windows.
Ja, indirect1
0.6.0 Implementatie van Windows genoemd pijp.
Ook gebruikt in ondersteuningsbibliotheek voor plugins. Gebruikt in MongoDB en PostgreSQL-plugins.
github.com/goburrow/serial Ja, indirect1 0.1.0 Seriële bibliotheek voor Modbus.
golang.org/x/xerrors 0.0.0 Functies om fouten te manipuleren.
gopkg.in/asn1-ber.v1 1.0.0 Coderings-/decoderingsbibliotheek voor ASN1 BER.
github.com/go-stack/stack Nee, indirect1 1.8.0
github.com/golang/snappy 0.0.1
github.com/klauspost/compress 1.13.6
github.com/xdg-go/pbkdf2 1.0.0
github.com/xdg-go/scram 1.0.2
github.com/xdg-go/stringprep 1.0.2
github.com/youmark/pkcs8 0.0.0

1 "Indirect" betekent dat het wordt gebruikt in een van de bibliotheken die de agent gebruikt. Het is vereist omdat Zabbix de bibliotheek gebruikt die het pakket gebruikt.

Zie ook afhankelijkheden voor laadbare plugins:

Java-gateway

Indien u Zabbix heeft verkregen uit de bronrepository of een archief, dan zijn de benodigde afhankelijkheden al inbegrepen in de bronboom.

Indien u Zabbix heeft verkregen via het pakket van uw distributie, dan zijn de benodigde afhankelijkheden al voorzien door het verpakkingssysteem.

In beide hierboven genoemde gevallen is de software klaar voor gebruik en zijn er geen extra downloads nodig.

Als u echter uw eigen versies van deze afhankelijkheden wilt verstrekken (bijvoorbeeld als u een pakket voor een Linux-distributie voorbereidt), dan volgt hier de lijst met bibliotheekversies waarvan bekend is dat de Java-gateway hiermee werkt. Zabbix kan ook werken met andere versies van deze bibliotheken.

De volgende tabel bevat JAR-bestanden die momenteel gebundeld zijn met de Java-gateway in de oorspronkelijke code:

Bibliotheek Verplichte status Opmerkingen
android-json Ja Versie 4.3r1 of hoger.
JSON (JavaScript Object Notation) is een lichtgewicht gegevensuitwisselingsformaat. Dit is de Android-implementatie die compatibel is met org.json en is geëxtraheerd uit de Android SDK.
logback-classic Versie 1.2.9 of hoger.
logback-core Versie 1.2.9 of hoger.
slf4j-api Versie 1.7.32 of hoger.

De Java-gateway kan worden gebouwd met zowel Oracle Java als de open-source OpenJDK (versie 1.6 of nieuwer). De pakketten die door Zabbix worden geleverd, zijn gecompileerd met behulp van OpenJDK. De onderstaande tabel geeft informatie over de OpenJDK versies die worden gebruikt voor het bouwen van Zabbix-pakketten per distributie:

Distributie OpenJDK-versie
RHEL 8 1.8.0
RHEL 7 1.8.0
SLES 15 11.0.4
SLES 12 1.8.0
Debian 10 11.0.8
Ubuntu 20.04 11.0.8
Ubuntu 18.04 11.0.8

Standaard poortnummers

De volgende lijst met open poorten per component is van toepassing op de standaardconfiguratie:

Zabbix-component Poortnummer Protocol Soort verbinding
Zabbix-agent 10050 TCP op aanvraag
Zabbix-agent 2 10050 TCP op aanvraag
Zabbix-server 10051 TCP op aanvraag
Zabbix-proxy 10051 TCP op aanvraag
Zabbix Java-gateway 10052 TCP op aanvraag
Zabbix webdienst 10053 TCP op aanvraag
Zabbix frontend 80 HTTP op aanvraag
443 HTTPS op aanvraag
Zabbix trapper 10051 TCP op aanvraag

De poortnummers moeten open zijn in de firewall om Zabbix-communicatie mogelijk te maken. Uitgaande TCP-verbindingen vereisen meestal geen expliciete firewall-instellingen.

Databasesize

Zabbix configuratiegegevens vereisen een vaste hoeveelheid schijfruimte en groeien niet veel.

De grootte van de Zabbix-database is voornamelijk afhankelijk van deze variabelen, die de hoeveelheid opgeslagen historische gegevens definiëren:

  • Aantal verwerkte waarden per seconde

Dit is het gemiddelde aantal nieuwe waarden dat de Zabbix-server elke seconde ontvangt. Bijvoorbeeld, als je 3000 items hebt voor monitoring met een vernieuwingsinterval van 60 seconden, wordt het aantal waarden per seconde berekend als 3000/60 = 50. Dit betekent dat er elke seconde 50 nieuwe waarden aan de Zabbix-database worden toegevoegd.

  • Instellingen van de housekeeper voor geschiedenis

Zabbix bewaart waarden gedurende een vastgestelde periode, normaal gesproken enkele weken of maanden. Elke nieuwe waarde vereist een bepaalde hoeveelheid schijfruimte voor gegevens en index.

Dus, als je 30 dagen geschiedenis wilt bewaren en je ontvangt 50 waarden per seconde, dan zal het totale aantal waarden ongeveer (30*24*3600)* 50 = 129.600.000 zijn, of ongeveer 130M waarden.

Afhankelijk van het gebruikte database-engine, het type ontvangen waarden (getallen, integers, strings, logbestanden, etc.), kan de schijfruimte voor het bewaren van één waarde variëren van 40 bytes tot honderden bytes. Normaal gesproken is dit ongeveer 90 bytes per waarde voor numerieke items2.

In dit geval betekent dit dat 130M waarden 130M * 90 bytes = 10,9 GB schijfruimte vereisen.

De grootte van tekst/log item waarden is onmogelijk exact te voorspellen, maar je kunt rekenen op ongeveer 500 bytes per waarde.

  • Instellingen van de housekeeper voor trends

Zabbix bewaart een set van max/min/gem/aantal waarden per uur voor elk item in de tabel trends. Deze gegevens worden gebruikt voor trendanalyses en grafieken over een lange periode. De periode van één uur kan niet worden aangepast.

Afhankelijk van het type database vereist Zabbix ongeveer 90 bytes per totaal.

Stel dat je trendgegevens 5 jaar wilt bewaren. Waarden voor 3000 items vereisen 3000*24*365* 90 = 2,2 GB per jaar, of 11 GB voor 5 jaar.

  • Instellingen van de housekeeper voor gebeurtenissen

Elke Zabbix-gebeurtenis vereist ongeveer 250 bytes schijfruimte1.

Het is moeilijk om het aantal gebeurtenissen dat Zabbix dagelijks genereert exact te schatten. In het slechtste geval kun je aannemen dat Zabbix één gebeurtenis per seconde genereert. Voor elke herstelde gebeurtenis wordt een event_recovery-record gemaakt. Normaal gesproken zullen de meeste gebeurtenissen worden hersteld. Dus, je kunt één event_recovery-record per gebeurtenis aannemen. Dat betekent extra 80 bytes per gebeurtenis.

Optioneel kunnen gebeurtenissen tags hebben, waarbij elke tag ongeveer 100 bytes schijfruimte vereist1. Het aantal tags per gebeurtenis (#tags) is afhankelijk van de configuratie.

Elke gebeurtenis heeft dus een extra #tags * 100 bytes schijfruimte nodig.

Dit betekent dat als je 3 jaar aan gebeurtenissen wilt bewaren, dit ongeveer 3*365*24*3600* (250+80+#tags*100) = ~30 GB+#tags*100B schijfruimte vereist2.

1 Meer bij niet-ASCII gebeurtenisnamen, tags en waarden.
2 De groottebenaderingen zijn gebaseerd op MySQL en kunnen verschillen voor andere databases.

De tabel bevat formules die kunnen worden gebruikt om de benodigde schijfruimte voor het Zabbix-systeem te berekenen:

Parameter Formule voor benodigde schijfruimte (in bytes)
Zabbix-configuratie Vaste grootte. Normaal gesproken 10MB of minder.
Geschiedenis dagen*(items/vernieuwingsinterval)*24*3600*bytes
items : aantal items
dagen : aantal dagen om de geschiedenis te bewaren
vernieuwingsinterval : gemiddelde vernieuwingsinterval van items
bytes : aantal bytes vereist om één waarde te bewaren, afhankelijk van de database-engine, normaal gesproken ~90 bytes.
Trends dagen*(items/3600)*24*3600*bytes
items : aantal items
dagen : aantal dagen om de geschiedenis te bewaren
bytes : aantal bytes vereist om één trend te bewaren, afhankelijk van de database-engine, normaal gesproken ~90 bytes.
Gebeurtenissen dagen*gebeurtenissen*24*3600*bytes
gebeurtenissen : aantal gebeurtenissen per seconde. Eén (1) gebeurtenis per seconde in het ergste geval.
dagen : aantal dagen om de geschiedenis te bewaren
bytes : aantal bytes vereist om één trend te bewaren, afhankelijk van de database-engine, normaal gesproken ~330 + gemiddeld aantal tags per gebeurtenis * 100 bytes.

Dus, de totale benodigde schijfruimte kan worden berekend als:
Configuratie + Geschiedenis + Trends + Gebeurtenissen
De schijfruimte wordt NIET onmiddellijk na de installatie van Zabbix gebruikt. De grootte van de database zal groeien en op een bepaald moment stoppen met groeien, afhankelijk van de instellingen van de housekeeper.

Tijdsynchronisatie

Het is erg belangrijk om een nauwkeurige systeemtijd op de server te hebben waarop Zabbix wordt uitgevoerd. ntpd is de meest populaire daemon die de tijd van de host synchroniseert met de tijd van andere machines. Het wordt ten zeerste aanbevolen om gesynchroniseerde systeemtijd te handhaven op alle systemen waarop Zabbix-componenten worden uitgevoerd.