"How much hardware do I need for Zabbix?" is the question every team asks before they start, and the official documentation answers it with a single table. Here is that table in full, because it is short enough to reproduce - and that is most of the problem.
| Installation size | Monitored metrics | CPU cores | Memory |
|---|---|---|---|
| Small | 1,000 | 2 | 8 GiB |
| Medium | 10,000 | 4 | 16 GiB |
| Large | 100,000 | 16 | 64 GiB |
| Very large | 1,000,000 | 32 | 96 GiB |
Source: Zabbix documentation, Installation → Requirements, version 7.4 at the time of writing. A footnote defines the unit as 1 metric = 1 item + 1 trigger + 1 graph.
Nothing in it is wrong. It is just not a plan, and four things are missing that you need before you can buy anything.
There is one genuinely useful thing to know about that table, which is not written on it: those figures behave like the server and the database added together. Run the numbers through the tiering below and Very large lands on exactly 32 cores and 96 GB once you sum both machines, and Large matches on cores. So read the official row as a budget for the pair, not a spec for one host.
The rest of this page fills in the four gaps: how to get from a list of devices you want to monitor to a number of values per second, and from there to cores, memory and terabytes of database disk.
Want the answer rather than the method? The free architecture planner asks six questions and works all of this out for you, including the topology diagram and the database disk figure.
Try the planner →Everything downstream is driven by how many things you collect, so start there. A "host" in Zabbix is not a useful planning unit, because one host can carry ten items or five hundred depending on what it is and which templates you attach. What works is a rough item count per device, chosen by how deep you intend to monitor:
| Monitoring depth | Items per device | What that buys |
|---|---|---|
| Essentials | ~30 | Up/down, CPU, memory, disk, a handful of triggers. You find out when something breaks. |
| Standard | ~70 | The stock templates as shipped, largely unedited. Performance trends and service checks alongside the availability basics. |
| Advanced | ~120 | Application-level metrics, log items, per-interface and per-filesystem discovery left switched on. |
| Maximum | ~200 | Everything the templates can collect, at short intervals. Full observability, and you pay for it in disk. |
These are planning averages across a mixed estate, not per-device truth - a 48-port switch with interface discovery running blows past 200 items on its own, while an appliance with a single ICMP check sits at three. They are good enough to size with, and far better than guessing at a band in the official table.
The cheapest capacity you will ever find is deleting items you do not need. Stock templates are built to be useful to everybody, which means most estates collect a fair number of metrics nobody has ever looked at. Every one of those costs you collection load, disk and, at scale, a bigger database server. Trimming templates before you size is worth more than any hardware decision on this page.
New values per second is the number that everything else in Zabbix sizing keys off. It is simply how many items you have divided by how often you poll them:
NVPS = total items / average check interval in seconds
At a 60 second average interval - a reasonable default, and the one the official docs use in their own example - 5,000 devices monitored at Standard depth comes out as:
5,000 devices x 70 items = 350,000 items
350,000 items / 60 seconds = 5,833 NVPS
The average matters more than it looks. Move a large template group from 60 seconds to 30 and you have doubled that half of your estate. If you already run Zabbix, you do not have to estimate at all: the Zabbix server health dashboard graphs your real NVPS, and that measured figure beats any calculation here.
Zabbix server requirements follow directly from NVPS, because it is NVPS that puts you in a tier. These are the figures the planner uses, per machine, assuming the database is PostgreSQL with TimescaleDB:
| NVPS | Monitoring server | Database server | Web frontend |
|---|---|---|---|
| Under 1,000 | 4 cores / 8 GB | 4 cores / 16 GB | 4 cores / 8 GB |
| 1,000 to 10,000 | 8 cores / 16 GB | 8 cores / 32 GB | 4 cores / 8 GB |
| 10,000 to 25,000 | 16 cores / 32 GB | 16 cores / 64 GB | 4 cores / 8 GB |
| Over 25,000 | 32 cores / 64 GB | 32 cores / 128 GB | 4 cores / 8 GB |
The database always gets more memory than the server and never less CPU. That is not arbitrary: the server's job is to poll, preprocess and evaluate triggers, which is CPU-bound and comfortably parallel, while the database is absorbing every one of those values as a write and then answering dashboard queries against them. Memory is what keeps the working set off disk. Proxies sit at 4 cores and 8 GB almost regardless of scale, because in their default hybrid mode most of the work happens in RAM and very little touches their disk.
Zabbix storage requirements are the part the official table omits entirely, and the part with a budget attached. Two tables dominate. History holds every raw value you collect. Trends holds a one hour min/max/avg/count roll-up per item, and that one hour period is fixed - you cannot tune it.
history bytes = NVPS x 86,400 x history_days x 90 bytes
trends bytes = NVPS x 24 x trends_days x 128 bytes
The 90 bytes per numeric value is the figure from the Zabbix documentation itself. The 128 bytes per trend row is deliberately more conservative than the docs' ~90, because a trend row carries four aggregates rather than one value. Text and log items are wilder - budget around 500 bytes a value for those, and keep an eye on any log item you leave running.
Then two adjustments. TimescaleDB's native compression takes roughly 60% off the stored size, so multiply by 0.40. And you never provision a disk to exactly the size of the data on it, so add 1.5x headroom for indexes, WAL, vacuum churn and the day you change your mind about retention.
| Step | Value |
|---|---|
| Items (5,000 x 70) | 350,000 |
| NVPS (at 60s) | 5,833 |
| Raw history, 90 days | 3,802 GB |
| Raw trends, 365 days | 6 GB |
| Raw total | 3,808 GB |
| After TimescaleDB compression (x0.40) | 1.5 TB |
| Provisioned disk (x1.5 headroom) | 2.2 TB |
Look at the two raw lines again, because the ratio is the single most useful thing on this page. History is 99.8% of that database and trends are 0.2%. A history row lands every 60 seconds; a trend row lands once an hour. Sixty times fewer rows, and they are the ones you keep for years.
Because of that ratio, "how far back do you want to look?" and "how much disk do you need?" are almost independent questions - as long as you understand which retention you are changing. Same 5,000 device estate, four different answers:
| Look-back | History | Trends | Stored | Provision |
|---|---|---|---|---|
| 3 months | 30 days | 90 days | 508 GB | 761 GB |
| 1 year | 90 days | 365 days | 1.5 TB | 2.2 TB |
| 2 years | 90 days | 730 days | 1.5 TB | 2.2 TB |
| 5 years | 180 days | 1,825 days | 3.0 TB | 4.5 TB |
Going from one year of look-back to two costs about 6 GB. Going from 30 days of history to 90 costs you a terabyte and a half. Long-term reporting is nearly free; high-resolution recent data is what you are actually paying for.
The trap: "we need two years of data" almost always gets implemented as two years of history, which on this estate is a 30 TB database instead of a 1.5 TB one. Ask what the data is for. Capacity planning, trend reports and year-on-year comparison all run perfectly well on trends. History only needs to cover the window in which someone might investigate an incident at full resolution - for most teams that is weeks, not years.
The Zabbix Architecture Planner does every calculation on this page from six plain-English questions - what you monitor, how many devices, how deep, how far back, how many sites, and whether you need failover. No Zabbix terminology required.
Free, no signup to see your results.
Hardware totals are only half of a plan. The other half is how many machines those totals are spread across, and that follows from scale, geography and how much downtime you can take. Four shapes cover almost everything:
| Shape | When | What it looks like |
|---|---|---|
| All-in-one | Up to ~100 devices and under 500 NVPS | Server, frontend and database on one machine. Genuinely fine at this size, and much less to operate. |
| Standard | Beyond that, single site, downtime tolerable | Database moved to its own server so collection never competes with storage for resources. Frontend separate. |
| High availability | Monitoring is on the critical path, or roughly 3,000+ NVPS | The above plus a standby server and a replicated standby database. |
| Distributed | More than one location | A proxy at each remote site collecting locally and shipping to the central server. |
Zabbix proxy requirements are modest, and you deploy one per remote location. A proxy collects locally and forwards in batches, which means a link that drops for twenty minutes gives you a gap of nothing rather than a wall of false alarms, and it moves polling load off the central server. Their hardware ask is modest - 4 cores, 8 GB, 20 GB of disk - but the RAM matters more than the disk, because a proxy in the default hybrid mode does most of its buffering in memory. Size the disk for how long you want it to survive a WAN outage without losing data.
Zabbix has native server high availability built in since 6.0, and it is a few lines of configuration. That covers the server process. It does not cover your database, and a database outage stops monitoring exactly as dead as a server outage does. An HA pair on the server with a single database underneath it has simply moved the single point of failure somewhere less obvious. If you are building for failover, budget for a replicated standby database at the same spec as the primary - which, at these sizes, is the single biggest line item in the plan.
Every number here is a planning estimate, and the honest thing to say about all of them is that your estate will not match the averages. Three things sharpen the estimate at very little cost:
And size for where you will be, not where you are. An estate that doubles in two years wants the database disk it will need then, because that is the component that is painful to change later. Cores and memory can wait.
Answer the six questions and the planner produces the whole thing - diagram, per-node hardware table, database recommendation, NVPS and sizing assumptions - and will email it to you as a PDF. Several people use it mainly to have something to forward to a manager or a hosting provider.
Plan your Zabbix architecture →Free. Takes about a minute.
Nine minutes on why the documentation's table cannot answer this question on its own, and a run through the planner end to end on a 5,000 device example - the questions it asks, the architecture it lands on, and how to read the result.
One change since the video was recorded. The official requirements table used to scale by number of hosts and stopped at 8 cores and 16 GB. It now scales by monitored metrics and reaches 32 cores and 96 GB, as reproduced at the top of this page. The numbers on this page are the current ones.
Estates that do not fit the averages are the normal case, not the exception - heavy log collection, thousands of network devices with discovery running, a retention policy someone external decides, a migration where the answer has to be right the first time. Tell me what you are monitoring and what constraints you are under, and I will tell you how I would size it.