Zabbix bestaat uit verschillende belangrijke softwarecomponenten. Hun verantwoordelijkheden worden hieronder uiteengezet.
Zabbix server is het centrale component waar agents beschikbaarheids-, integriteits- en statistische informatie rapporteren. De server is het centrale opslagpunt waarin alle configuratie-, statistische en operationele gegevens worden opgeslagen.
Alle configuratie-informatie en gegevens die door Zabbix zijn verzameld, worden opgeslagen in een database.
Voor eenvoudige toegang tot Zabbix vanaf elke locatie en elk platform is de webgebaseerde interface beschikbaar. De interface maakt deel uit van de Zabbix-server en draait meestal (maar niet noodzakelijkerwijs) op dezelfde fysieke machine als de server.
Zabbix proxy kan prestatie- en beschikbaarheidsgegevens verzamelen namens de Zabbix-server. Een proxy is een optioneel onderdeel van de Zabbix-implementatie; het kan echter zeer nuttig zijn om de belasting van een enkele Zabbix-server te verdelen.
Zabbix-agenten worden ingezet op bewakingsdoelen om actief lokale bronnen en toepassingen te bewaken en de verzamelde gegevens aan de Zabbix-server te melden. Sinds Zabbix 4.4 zijn er twee soorten agents beschikbaar: de Zabbix-agent (lichtgewicht, ondersteund op veel platforms, geschreven in C) en de Zabbix-agent 2 (extra flexibel, gemakkelijk uitbreidbaar met plugins, geschreven in Go).
Het is ook belangrijk om een stap terug te nemen en te kijken naar de algehele gegevensstroom binnen Zabbix. Om een item te maken dat gegevens verzamelt, moet u eerst een host maken. Aan de andere kant van het Zabbix-spectrum moet u eerst een item hebben om een trigger te maken. U moet een trigger hebben om een actie te maken. Dus als u een melding wilt ontvangen dat de CPU-belasting van Server X te hoog is, moet u eerst een hostinvoer voor Server X maken, gevolgd door een item voor het bewaken van de CPU, vervolgens een trigger die wordt geactiveerd als de CPU te hoog is, gevolgd door een actie die u een e-mail stuurt. Hoewel dat misschien veel stappen lijken, is het met het gebruik van sjablonen eigenlijk niet zo. Dankzij dit ontwerp is het echter mogelijk om een zeer flexibele configuratie te maken.