Set up SNMP discovery
Configure SNMP credentials to enrich discovered hosts with device details, interfaces, and neighbor data.
Without SNMP, a discovered host has only what port scanning and DNS provide — addresses, open ports, detected services, and a reverse DNS name. SNMP adds what the device says about itself.
Before you start
SNMP credentials are created under Assets > Credentials and can be pointed at NetworkDaemon hostRemote hosts.
Creating a credential, assigning it, and overriding it on an individual host work the same way for every integration — see Creating a credential, Where a credential applies, and Auto-assignment. This guide covers only what is specific to SNMP.
What gets discovered
- System identity — sysName, sysDescr, sysLocation, sysContact
- Interface table — every interface with its name, speed, MAC address, IP assignments, and operational status
- LLDP/CDP neighbors — the directly connected devices the host itself reports
Neighbor data is what makes accurate physical topology possible: it's the source for the links drawn in L2 Physical. Interface and IP data also improve host deduplication, since a MAC address gives Scanopy a second way to recognize a device whose address has changed.
For the full list of queried MIBs and OIDs, see the SNMP reference.
Prerequisites
- SNMP enabled on the target devices
- UDP port 161 reachable from the daemon host to those devices
- A community string for v1/v2c, or USM credentials for v3
SNMPv1 and SNMPv2c send community strings in cleartext on the wire. Use dedicated read-only community strings for Scanopy, and consider network segmentation to limit exposure. For devices that support it, prefer SNMPv3, which authenticates and encrypts on the wire.
Choosing a credential type
Each SNMP version is its own credential type. Pick the highest one your devices support.
| Credential type | How it connects | Can be targeted at | Requires daemon |
|---|---|---|---|
| SNMP v1 | Uses SNMPv1. | NetworkDaemon hostRemote hosts | 0.17.0 or later |
| SNMP v2c | Uses SNMPv2c. | NetworkDaemon hostRemote hosts | 0.16.2 or later |
| SNMP v3 | Uses SNMPv3. | NetworkDaemon hostRemote hosts | 0.17.0 or later |
| Situation | Use |
|---|---|
| The device supports v3 | SNMP v3 |
| The device is v2c-era gear, or you need a shared read-only community | SNMP v2c |
| The device supports nothing newer than v1 | SNMP v1 |
The device is still on the default public community | Nothing — public is always tried as a last resort |
Versions can be mixed freely across a network. Each host resolves its own credential, so v3 on the core switches alongside v2c on older access gear works fine.
SNMP v1
A single shared community string, sent in cleartext. Use this only for devices that support nothing newer — v2c takes the same field and is otherwise identical from Scanopy's side.
| Field | Required | Default | Description |
|---|---|---|---|
| Community StringSecret | Required | None | Custom SNMP community string. The default 'public' community is always tried automatically during scans. |
SNMP v2c
A single shared community string, sent in cleartext. The common choice for gear that predates v3.
| Field | Required | Default | Description |
|---|---|---|---|
| Community StringSecret | Required | None | Custom SNMP community string. The default 'public' community is always tried automatically during scans. |
SNMP v3
Authenticated and encrypted on the wire, and the version to prefer wherever a device supports it. Scanopy always uses AuthPriv — authentication and privacy together — which is why both protocol pairs are required rather than optional. AuthNoPriv and NoAuthNoPriv are not supported, and MD5 authentication is not available.
Leave Context Name blank unless your device puts interface and LLDP data in a named context; the default context is what almost every device uses.
| Field | Required | Default | Description |
|---|---|---|---|
| Authentication | |||
| Security Name | Required | None | SNMPv3 USM user name (security name). |
| Auth Protocol | Required | SHA-256 | Authentication hash algorithm. One of: SHA-1, SHA-256. |
| Auth PasswordSecret | Required | None | Authentication password (minimum 8 characters). |
| Privacy | |||
| Privacy Protocol | Required | AES-128 | Privacy (encryption) algorithm. One of: AES-128, AES-256. |
| Privacy PasswordSecret | Required | None | Privacy (encryption) password (minimum 8 characters). |
| Context Name | Optional | None | Optional SNMPv3 context name. Leave blank for the default context (used by interface and LLDP data). |
Verifying it works
- Go to Discover > Scan > Scheduled and run a discovery, or wait for the next scheduled run
- Open a host that should have SNMP data
- Check for:
- sysName and sysDescr in the host's SNMP tab
- Interfaces in the ifEntry tab — names, speeds, and IP assignments
- Neighbors in the L2 Physical topology
You can confirm a network-wide assignment from Discover > Daemons — hover the Network chip to see whether an SNMP credential is configured.
Troubleshooting
The usual symptom is a scan that completes and detects port 161, but leaves the host's SNMP and ifEntry tabs empty.
No SNMP data on any host
The credential exists but isn't assigned. Creating a credential doesn't activate SNMP — see Where a credential applies.
No SNMP data on one host
Test the device directly from the daemon's host to separate a credential problem from a device problem:
# v1 / v2c — try the default community, then yours
snmpwalk -v2c -c public DEVICE_IP 1.3.6.1.2.1.2.2.1.2
snmpwalk -v2c -c YOUR_COMMUNITY_STRING DEVICE_IP 1.3.6.1.2.1.2.2.1.2
# v3
snmpwalk -v3 -l authPriv -u SECURITY_NAME \
-a SHA -A AUTH_PASSWORD -x AES -X PRIV_PASSWORD \
DEVICE_IP 1.3.6.1.2.1.2.2.1.2If public works but your own string doesn't, the credential is wrong or isn't reaching this host — a per-host credential overrides the network default. If neither works, SNMP isn't enabled on the device or it refuses that version.
A device that enforces v3 will not answer a community string at all. Note that Scanopy's v3 is AuthPriv only, so a device configured for AuthNoPriv won't connect either.
System data appears but no neighbors
The device isn't reporting an LLDP or CDP neighbor table. Some managed switches collect neighbor data internally without exposing the LLDP MIB over SNMP, in which case a walk returns nothing and the neighbors have to come from that vendor's own management API instead.
Interfaces missing or incomplete
Fewer interfaces than the device has — or interfaces with no neighbor, VLAN or learned-MAC data — means the table walk was cut short. A walk is capped at 10,000 rows and each query at 30 seconds, so a very large table or a device that stalls partway through returns a partial result. Truncation is reported as a warning on the discovery session, not just in the daemon logs.
Interfaces are saved before the neighbor and VLAN queries run, so bare interfaces with no neighbor data mean the device hung later in collection.
Check how long a full snmpwalk of the interface table takes from the daemon host, whether the device is rate-limiting SNMP, and whether its interface count is genuinely near the cap — stacked chassis and large modular switches can be.
Reading the daemon logs
With debug logging enabled, these messages appear during a scan of the target host:
| Log message | Meaning |
|---|---|
Creating SNMP community session | Attempting v1/v2c |
Creating SNMPv3 session | Attempting v3 |
SNMP session created successfully | UDP socket opened |
SNMP GET {name} failed from {ip} | OID query failed — auth or protocol error |
SNMP GET {name} timeout from {ip} | Device didn't respond in time |
SNMP system info retrieved with sys_descr/sys_name | Success |
No working SNMP credential found for {ip} | Every credential was tried and none worked |
For credential loading problems — unreadable files, PEM errors, and the per-session assignment summary — see Credential troubleshooting.