Zabbix składa się z kilku głównych komponentów programowych, ich zakres odpowiedzialności został określony poniżej.
Serwer Zabbix jest głównym komponentem, do którego agenci zgłaszają informacje o dostępności i integralności oraz statystyki. Serwer jest centralnym repozytorium przechowującym wszystkie konfiguracje oraz dane statystyczne i operacyjne.
Wszystkie informacje konfiguracji, jak również dane zebrane przez Zabbix są przechowywane w bazie danych.
W celu ułatwienia dostępu do Zabbix z dowolnego miejsca i platformy, przygotowany został interfejs bazujący na stronach www. Interfejs jest częścią serwera Zabbix, i zwykle (ale niekoniecznie) działa na tym samym komputerze fizycznym co uruchomiony serwer.
Jeżeli używany jest SQLite, interfejs www Zabbix należy uruchomić na tym samym komputerze fizycznym.
Proxy Zabbix może zebrać dane o wydajności i dostępności w imieniu serwera Zabbix. Serwer proxy jest opcjonalnym składnikiem wdrożenia Zabbix; jednak rozproszenie obciążenia pojedynczego serwera Zabbix może być bardzo korzystne.
Agenci Zabbix są umieszczani na monitorowanych urządzeniach, w celu monitorowania zasobów i aplikacji i raportowania zebranych danych do serwera Zabbix.
Na koniec dobrze jest zrobić krok wstecz i spojrzeć na przepływ danych ogólnych w ramach Zabbix. Aby utworzyć element, który gromadzi dane, należy najpierw utworzyć hosta. Z innej perspektywy, najpierw musi istnieć pozycja, żeby utworzyć wyzwalacz. Musi istnieć wyzwalacz, żeby utworzyć akcję. Zatem, żeby otrzymać powiadomienie, że obciążenie CPU jest zbyt wysokie na Serwerze X, najpierw trzeba utworzyć wpis hosta dla Serwera X wraz z pozycją monitorującą jego CPU, następnie wyzwalacz, który zostanie aktywowany, gdy obciążenie CPU będzie zbyt wysokie, dopiero akcję, która wyśle e-mail. Choć może się wydawać, że to bardzo duża ilość kroków, jest to bardzo proste do wykonania przy użyciu szablonów. Ze względu na taki sposób projektowania możliwe jest stworzenie bardzo elastycznej konfiguracji.