Skip to content

App Overview

This document provides an overview of the App including key information and important considerations when applying it to your Nautobot environment.

Note

Throughout this documentation, the terms "app" and "plugin" will be used interchangeably.

What Does This App Do?

The Device Discovery app for Nautobot helps network teams answer one question: "Is my inventory accurate?"

It works by scanning defined IP prefixes using SNMP and SSH, identifying reachable network devices, and correlating the results against the existing Nautobot inventory. If a discovered device already exists and matches, it confirms the inventory is healthy. If a device is missing, partially matching, or conflicting with existing records, it flags the discrepancy for review.

The app integrates with the Nautobot Device Onboarding App, so devices that are detected but not yet inventoried can be onboarded directly from the discovery results.

How It Works

The app follows the following workflow:

flowchart TD
    A["<b>Setup</b><br/>Discovery Profile<br/>+ Secrets Groups"] --> B["<b>Run Job</b><br/>Network Device Discovery"]
    B --> C["<b>Scan</b><br/>SNMP Discovery<br/>SSH Discovery"]
    C --> R{"Reachable?"}
    R -- No --> NR["🚫 Not Reachable<br/>Port closed /<br/>Auth failed"]
    R -- Yes --> D{"<b>Inventory<br/>Correlation</b>"}
    D --> E["✅ Imported"]
    D --> F["⚠️ Partially Imported"]
    D --> G["❌ Not Imported"]
    D --> H["🔀 Conflict"]
    E --> I["Compare to<br/>Intended State"]
    G --> J["<b>Device Onboarding</b>"]
    F --> K["Investigate &<br/>Remediate in DCIM"]
    H --> K
    J -- "Next scan" --> B
    K -- "Next scan" --> B
  1. Configure a Discovery Profile — Define which IP prefixes to scan, which protocols to use (SNMP, SSH, or both), and which credentials to apply. Discovery Profiles also control timeouts, retries, and advanced features like Fast Path.

  2. Run a Discovery Job — The job scans each IP in the configured prefixes, attempts SNMP and SSH connections, and collects device identity data (hostname, serial number, platform, software version). For SSH, LLDP neighbor data is also collected where supported.

  3. Review Discovery Results — Each discovered device is correlated against the Nautobot inventory and assigned an Inventory Import Status: Imported, Partially Imported, Not Imported, or Conflict.

  4. Onboard Missing Devices — Devices marked as Not Imported can be onboarded directly through the integration with the Device Onboarding App.

Key Concepts at a Glance

Concept What It Is Where to Find It
Discovery Profile Defines the scan scope, protocols, credentials, and settings Devices > Discovery > Discovery Profiles
Discovered Device A network device found during a scan, with its identity and collection state Devices > Discovery > Discovered Devices
Discovery Result Raw parsed data collected from a specific IP during a scan Discovered Device detail page / API
Inventory Import Status How well a discovered device matches the Nautobot inventory Discovered Device detail page
Network Device Discovery The job that performs the scan Jobs > Network Device Discovery

Audience (User Personas) – Who should use this App?

  • Network engineers responsible for maintaining accurate inventory data
  • Automation engineers managing onboarding workflows
  • Network operations teams performing inventory health checks and audits

It is particularly valuable for organizations that rely on Nautobot as a source of truth and need ongoing checks that their documented inventory reflects the real network environment.

Nautobot Features Used

The app introduces three data models: Discovered Device, Discovery Profile, and Discovery Result. It leverages Nautobot's Jobs framework, REST and GraphQL APIs, and integrates with the Nautobot Device Onboarding and Nautobot Nornir apps for SSH-based device connectivity. SNMP discovery is powered by PySNMP (pysnmp).

Prerequisites

Before using this app, you need: