NetBox ↔ Zabbix Sync¶
NetBox ↔ Zabbix Sync keeps the hosts in Zabbix aligned with the devices and virtual machines in NetBox, so NetBox stays the single source of truth.
Each run reads devices (and optionally virtual machines) from NetBox and creates, updates, disables or deletes the matching Zabbix hosts. It then writes the Zabbix host ID back to NetBox to keep both sides linked.
Features¶
- Syncs NetBox devices and, optionally, virtual machines to Zabbix hosts
- Creates, updates, disables and deletes hosts based on the NetBox status
- Builds hostgroups from NetBox data such as site, region, role, tenant or custom fields, and creates missing hostgroups
- Links templates from a device type custom field or from config context
- Configures the host interface (Zabbix agent, SNMPv1/v2c/v3, IPMI or JMX) from config context, with an optional extra out-of-band interface
- Assigns proxies and proxy groups
- Syncs inventory, tags and usermacros from NetBox fields and config context
- Treats virtual chassis as a single Zabbix host (clustering), including failover
- Writes journal entries in NetBox for every change
- Runs as a Docker container, as a command-line tool, or as a Python package inside your own code
Requirements¶
- A NetBox instance and an API token with write access
- A Zabbix server running a supported release, and an API token or user
- Python 3.12 or later, unless you use the Docker image
Some features need a recent NetBox release: v2 API tokens and the {owner} description flag need NetBox 4.5 or later.
Getting started¶
To get a first sync running, follow the Quick Start.
For everything else:
| Page | Contents |
|---|---|
| Installation | Docker, Python package and source installs, environment variables, command-line flags |
| Preparation | Required custom fields, API permissions, custom links |
| Configuration | Every setting, and how config file, environment variables and flags combine |
| Sync Behavior | How each feature works and how to configure it in NetBox |
| Experimental Features | Technology previews such as Jinja2 config context rendering |