Skip to content

Nautobot SSoT Zabbix

⚠️ Alpha Software: This project is currently in alpha and is under active development. APIs, configuration options, and behavior may change between releases. Use in production environments is not recommended until a stable release is published.

An SSoT app for Nautobot that synchronizes device data between Nautobot and Zabbix monitoring.


Overview

This app extends the Nautobot SSoT framework to provide bidirectional synchronization between Nautobot devices and Zabbix monitored hosts. It uses the DiffSync library to detect and reconcile differences between the two systems.

What Gets Synced

For each Nautobot device with an active or staged status and a primary IP, the app syncs:

  • Host name and visible name
  • Primary IP address for monitoring
  • Host group (derived from device location, tenant, or configurable mappings)
  • Monitoring template (derived from device role or a configurable default)
  • Enabled/disabled status
  • Description (populated with Nautobot device metadata)
  • Zabbix tags preserving Nautobot context (source, location, role, device type, tenant, platform)

Sync Directions

  • Nautobot to Zabbix (ZabbixDataTarget) — Creates, updates, and deletes Zabbix hosts to match Nautobot device inventory. This is the primary sync direction.
  • Zabbix to Nautobot (ZabbixDataSource) — Audits Zabbix hosts tagged with source=nautobot back against Nautobot to detect out-of-band drift.

Only Zabbix hosts tagged with source=nautobot are managed by this app, so manually created Zabbix hosts are never modified or deleted.

Requirements

  • Nautobot >= 3.0.0
  • nautobot-ssot >= 4.0.0
  • Python >= 3.10, < 3.13

Documentation

Full documentation for this App can be found over on the Nautobot Docs website:

Contributing to the Documentation

You can find all the Markdown source for the App documentation under the docs folder in this repository. For simple edits, a Markdown capable editor is sufficient: clone the repository and edit away.

If you need to view the fully-generated documentation site, you can build it with MkDocs. A container hosting the documentation can be started using the invoke commands (details in the Development Environment Guide) on http://localhost:8001. As your changes are saved, they will be automatically rebuilt and any pages currently being viewed will be reloaded in your browser.

Questions

For any questions or comments, please check the FAQ first. Feel free to also swing by the Network to Code Slack (channel #nautobot), sign up here if you don't have an account.