Skip to content

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