Skip to main content

SNMP Device Connectivity & Discovery Troubleshooting Guide

Use this guide when a device fails to connect or return data during SNMP discovery in Motadata ServiceOps.

SNMP (Simple Network Management Protocol) is how ServiceOps communicates with network devices, servers, and other hardware to collect data during discovery. When discovery fails, the cause is almost always one of three things: a network/firewall issue, a wrong credential, or a misconfiguration on the device itself.

This guide walks you through diagnosing and fixing those issues step by step, no advanced networking knowledge required.

Prerequisites

  1. Collect the following information:

Having these details upfront will save you time:

#What you needWhy
1Device IP addressTarget for all tests
2Device vendor and model (e.g. Cisco IOS, Fortinet FortiGate)Determines which device-side commands to run
3SNMP version (v2c or v3)Determines which test commands to use
4Credentials — community string (v2c) OR username/auth password/privacy password (v3)Required for the connection test
5ServiceOps server IPNeeded to check firewall and ACL rules
6Whether the device was previously workingHelps narrow down what changed
  1. Check the SNMP version you are using:

If you're not sure, check Admin > Discovery and Agents > Credentials in ServiceOps and open the credential profile assigned to the device. The version is listed there.

This matters because SNMPv2c and SNMPv3 have different failure modes and different commands.

VersionHow it authenticatesTypical issues
SNMPv2cCommunity string (a shared password)Wrong community string, firewall blocking UDP/161
SNMPv3Username + auth password + privacy passwordWrong username/password, protocol mismatch, missing device view
  1. Install the required test tool

You need snmpwalk available on the Motadata ServiceOps server (or any Linux host that can reach the device).

Linux (run on the ServiceOps server):

# RHEL / CentOS / Rocky
yum install net-snmp-utils

# Debian / Ubuntu
apt-get install snmp

# Confirm it's installed
snmpwalk --version

Windows admins: All commands in this guide run on Linux. If your ServiceOps server is Linux-based, SSH into it and run the commands there. If you do not have SSH access, ask your system administrator to run the commands on your behalf, or use Windows Subsystem for Linux (WSL).

  1. Know about silent failures:

Many SNMP failures produce no error message at all. The device simply returns nothing. From ServiceOps this looks identical to a network problem, but the cause is usually a misconfigured permission on the device. Always run the snmpwalk test in Step 3 to find out whether the device is actually responding.


Diagnostic Workflow

Follow these steps in order. Each step either identifies the problem or tells you where to go next.

1. Check Network Reachability

Before testing SNMP, confirm the ServiceOps server can actually reach the device.

1.1 Ping the device

Run on: ServiceOps server (Linux shell)

ping -c 4 <device_ip>

1.2 Test UDP port 161

Ping uses ICMP, which can succeed even when SNMP traffic (UDP port 161) is blocked by a firewall. Test port 161 directly:

Run on: ServiceOps server (Linux shell)

# Preferred method — uses nmap
nmap -sU -p 161 <device_ip>

# Alternative — netcat
nc -zuv <device_ip> 161

1.3 What the results mean

ResultWhat it meansWhat to do
Ping OK + nmap shows open or open\|filteredDevice is reachable on UDP/161Proceed to Step 2
Ping OK + nmap shows closedDevice is up but SNMP agent may not be running, or a local firewall is blockingCheck the SNMP service on the device (Step 2)
Ping OK + nmap shows filteredA firewall between ServiceOps and the device is silently dropping SNMP trafficOpen UDP/161 in the firewall for the ServiceOps server IP
Ping fails + nmap times outNetwork or routing issue, or device is offlineFix network connectivity first
About UDP scan results

open|filtered means nmap could not tell whether the port is open or blocked. Continue to Step 3, if snmpwalk succeeds, then the port is open.


2. Check the SNMP Agent on the Device

If port 161 appears closed or if you want to confirm the device is actively running SNMP, verify the SNMP agent status on the device itself.

For Linux/server devices:

Run on: The device (root shell)

systemctl status snmpd

If the service is not running, start it:

systemctl start snmpd
systemctl enable snmpd

For network devices (Cisco, Juniper, etc.):

Log in to the device and run the appropriate command from Step 5 for your vendor. The show snmp or equivalent command will confirm whether SNMP is active and show request/response counters. Run snmpwalk while watching the counters — if the input packets counter does not increment, the device is not receiving the request at all, which points to a firewall or routing issue rather than a credential problem.

3. Test the SNMP Connection Directly

Running snmpwalk from the ServiceOps server is the most reliable way to determine whether the device is responding to SNMP and whether your credentials are correct.

Always start with the system MIB (1.3.6.1.2.1.1). It is small, fast, and supported by virtually every SNMP-capable device.

For SNMPv2c

Run on: ServiceOps server (Linux shell)

snmpwalk -v 2c -c <community_string> <device_ip> 1.3.6.1.2.1.1

# Example
snmpwalk -v 2c -c public 10.1.1.10 1.3.6.1.2.1.1

Replace public with your actual community string (it is case-sensitive).

For SNMPv3

SNMPv3 uses a username, an authentication password, and (optionally) a privacy/encryption password. Match the security level to what is configured on the device:

Run on: ServiceOps server (Linux shell)

# authPriv — authentication + encryption (most common in production)
snmpwalk -v 3 -l authPriv \
-u <username> \
-a <auth_protocol> -A '<auth_password>' \
-x <priv_protocol> -X '<priv_password>' \
<device_ip> 1.3.6.1.2.1.1

# authNoPriv — authentication only, no encryption
snmpwalk -v 3 -l authNoPriv \
-u <username> \
-a <auth_protocol> -A '<auth_password>' \
<device_ip> 1.3.6.1.2.1.1

# noAuthNoPriv — no authentication, no encryption (not recommended)
snmpwalk -v 3 -l noAuthNoPriv -u <username> <device_ip> 1.3.6.1.2.1.1

Flag reference:

FlagWhat it setsAccepted values
-lSecurity levelnoAuthNoPriv, authNoPriv, authPriv
-uUsernameCase-sensitive string
-aAuth protocolMD5, SHA, SHA-256, SHA-512
-AAuth passwordString (min 8 characters)
-xPrivacy (encryption) protocolDES, AES (= AES-128), AES192, AES256
-XPrivacy passwordString (min 8 characters)
-nContext nameLeave empty unless the device requires one (must match the Context name field in the ServiceOps credential profile)
AES-256 / SHA-256 availability

Older Net-SNMP builds may not support AES-192/256 or SHA-256/512. Check with snmpwalk --help | grep -iE 'aes|sha'. If the cipher you need is missing, upgrade Net-SNMP or temporarily test with AES-128/SHA to isolate the issue.

If your device is across a WAN link or under heavy load, the default timeout may be too short and snmpwalk will time out even when the device would respond. Use these flags to extend the wait:

# -t sets timeout in seconds (default: 5), -r sets retry count (default: 1)
snmpwalk -v 2c -c <community_string> -t 15 -r 3 <device_ip> 1.3.6.1.2.1.1

# Same for SNMPv3
snmpwalk -v 3 -l authPriv -u <username> -a SHA -A '<auth_password>' \
-x AES -X '<priv_password>' -t 15 -r 3 <device_ip> 1.3.6.1.2.1.1

If these succeed but the default timeout fails, increase the SNMP timeout and Retries in the ServiceOps credential profile — see Step 6.4.

What a successful response looks like

SNMPv2-MIB::sysDescr.0 = STRING: Cisco IOS Software ...
SNMPv2-MIB::sysObjectID.0 = OID: ...
SNMPv2-MIB::sysUpTime.0 = Timeticks: (123456789) 14 days ...
SNMPv2-MIB::sysName.0 = STRING: switch-01
SNMPv2-MIB::sysLocation.0 = STRING: Server Room A

✅ If you see output like this, the SNMP connection is working. If ServiceOps still fails to discover the device, the issue is in the ServiceOps credential profile, go to Step 6.

❌ If you get an error or no output, go to Step 4.

Useful test OIDs

OIDWhat it returnsWhen to use
1.3.6.1.2.1.1Device name, description, uptimeAlways start here
1.3.6.1.2.1.2.2Interface listTo confirm interface polling works
1.3.6.1.2.1.4.20IP address tableTo confirm L3 data is accessible
1.3.6.1.2.1.25.1Host/server resourcesFor server devices

4. Read the Error Message

Warnings you can safely ignore

Check this table first before investigating an error — these are harmless messages that Net-SNMP outputs regardless of connection success:

WarningWhat it means
Cannot find module (X-MIB)A MIB file is not installed locally. OIDs show as numbers. Harmless.
Sub-id not foundA numeric OID has no local name mapping. Harmless.
No log handling enabledNet-SNMP cannot write to its log file. Harmless for command-line use.

SNMPv2c errors

Error / outputWhat it meansWhat to do
Timeout: No Response from <ip>Device did not reply — unreachable, port blocked, or SNMP agent not runningReturn to Step 1 and Step 2
Authentication failureWrong community stringRe-check the community string — it is case-sensitive
snmpwalk: Unknown hostDNS lookup failed for the hostnameUse the IP address directly instead
End of MIB with no data before itCommunity string is valid but the device's access policy excludes this dataGo to Step 5 and check the device's view/ACL config
No output, no error — returns immediatelyDevice responded but returned nothingThis is a silent failure — see the warning below

SNMPv3 errors

Error or OutputWhat it meansWhat to do
Timeout: No Response from <ip>Same as v2c — network, firewall, or agent issueReturn to Step 1
Authentication failureAuth password or auth protocol does not matchVerify the -a protocol and -A password exactly match the device config
Unknown user nameThe SNMPv3 username does not exist on the deviceRun show snmp user on device; check spelling and case
Unsupported security levelDevice requires a different security levelTry authPriv if you used authNoPriv, or vice versa
Decryption errorPrivacy protocol or privacy password does not matchVerify the -x protocol and -X password exactly match the device config
Not in time windowTime difference between ServiceOps and the device is too largeSync the device clock using NTP
No output, no error, returns immediatelySilent failure — credentials are valid but device view/group is misconfiguredGo to Step 5
Silent failure — the most common trap

An snmpwalk that returns zero output with no error is almost always an SNMPv3 group or view misconfiguration on the device. The credentials are correct, but the device's access policy is blocking the data and it does this silently, with no error. See Worked Example: Cisco Silent Failure for a step-by-step resolution.

5. Fix the Issue on the Device

If snmpwalk shows a credential error or a silent failure, the fix is on the device side. Use the commands below for your device vendor.

Jump to your vendor: Cisco IOS / IOS-XE | Cisco NX-OS | Juniper Junos | HP / Aruba ProCurve | Aruba ArubaOS-CX | Fortinet FortiGate | Palo Alto PAN-OS | Linux

Cisco IOS / IOS-XE

Run on: Cisco device (privileged EXEC mode)

show running-config | include snmp
show snmp community
show snmp user
show snmp group
show snmp view
show snmp
show snmp engineID
Most common Cisco problem

In show snmp group, if the group has a readview name assigned, that name must also appear in show snmp view. If it does not, the view is missing and the device will silently return no data. Fix it with:

snmp-server view <readview-name> iso included

Run this in global configuration mode (configure terminal). See Worked Example for the full walkthrough.

Cisco NX-OS

Run on: Cisco NX-OS device (exec)

show snmp
show snmp community
show snmp user
show snmp group
show running-config snmp

Juniper Junos

Run on: Juniper device (operational mode)

show snmp mib walk system
show snmp statistics
show snmp v3

Run on: Juniper device (configuration mode)

show configuration snmp

Junos maps users → groups → views using VACM (View-based Access Control). Check that the user is in a group and that the group has a view defined that includes the OIDs you need.

HP / Aruba ProCurve

Run on: HP/Aruba ProCurve (manager view)

show snmp-server
show snmpv3 user
show snmpv3 group
show running-config | include snmp

Aruba ArubaOS-CX

Run on: ArubaOS-CX (exec)

show snmp community
show snmpv3 users
show snmp trap
show running-config snmp-server

Fortinet FortiGate

Run on: FortiGate (CLI)

get system snmp sysinfo
show system snmp community
show system snmp user
show system interface | grep -A 20 allowaccess
Fortinet — interface access

On FortiGate, SNMP must be explicitly allowed on the ingress interface. Even with a valid community string or user, if the interface's allowaccess setting does not include snmp, all requests are silently dropped with no error or log entry.

To fix it, go to Network > Interfaces, edit the interface that receives SNMP traffic, and enable SNMP under Administrative Access.

Palo Alto PAN-OS

Run on: Palo Alto (operational CLI)

show snmp-server configuration
show interface management
show network interface <name> management-profile
Palo Alto — management profile

PAN-OS requires SNMP to be enabled in the Interface Management Profile assigned to the interface (Network → Network Profiles → Interface Mgmt). Without this, SNMP requests are dropped silently at the interface even if the SNMP server is fully configured.

Linux / Net-SNMP agent

Run on: The Linux device (root shell)

# Is the agent running?
systemctl status snmpd

# Active configuration (without comments)
grep -vE '^(#|$)' /etc/snmp/snmpd.conf

# Real-time log
journalctl -u snmpd -f

# SNMPv3 user state
cat /var/lib/net-snmp/snmpd.conf
SNMPv3 users on Linux

Net-SNMP stores SNMPv3 users in two places: /etc/snmp/snmpd.conf (where users are initially created) and /var/lib/net-snmp/snmpd.conf (where localized keys are stored after first startup). If a user was added to one file but not the other, authentication will fail. Always check both files.


6. Check the ServiceOps Credential Profile

If snmpwalk succeeds from the ServiceOps server but ServiceOps discovery still fails, the credential profile in ServiceOps does not match what you used in the test.

6.1 Verify the credential profile settings

Go to Admin > Discovery and Agents > Credentials and open the SNMP credential profile assigned to this device. Check every field against what worked in your snmpwalk test:

  • SNMP version: v2c or v3
  • Community string (v2c): exact match, case-sensitive
  • Username (v3): exact match, case-sensitive
  • Auth protocol and password (v3): exact match, case-sensitive
  • Privacy protocol and password (v3): exact match, case-sensitive
  • Security level (v3): must match device: authPriv, authNoPriv, or noAuthNoPriv
  • Context name (v3): leave empty unless the device explicitly requires one; an accidental value here is a common mistake
  • Port: default is 161; only change if the device uses a non-standard port

6.2 Verify the profile is assigned to the right device

  • Confirm the correct credential profile is assigned to this device or its discovery range.
  • If multiple profiles are assigned, check their priority order. A higher-priority but incorrect profile may be tried first, causing the correct profile never to be used.

6.3 Common ServiceOps log messages and what they mean

Discovery logs are stored on the ServiceOps server at /optflotomate/discovery/logs. Open the relevant log file for the discovery job and search for the device IP to find its specific error entries.

Log messageWhat it meansFix
SNMP timeout for <ip>No reply within the timeout windowIncrease the timeout in discovery settings; verify network
Authentication failureCredentials in the profile do not match the deviceRe-enter the credentials in the credential profile
Unknown user nameThe SNMPv3 username in the profile does not exist on the deviceCreate the user on the device or correct the username in the profile
Empty response / no varbindsCredentials are valid but device view is blocking the dataGo to Step 5
Engine ID mismatchThe stored Engine ID is stale (e.g. device was replaced or reset)Remove the device from ServiceOps and re-add it

6.4 Adjust timeouts for slow or remote devices

Devices on WAN links or under high load may need more time to respond:

SettingDefaultRecommended for WAN / high latency
SNMP timeout5 seconds10–15 seconds
Retries12–3

7. Advanced Packet Capture

Use this only if Steps 1–6 have not identified the root cause. A packet capture confirms exactly what is being sent and received at the network level.

7.1 Capture SNMP traffic on the ServiceOps server

Run on: ServiceOps server (Linux shell, root)

# Save capture to file (open later in Wireshark)
tcpdump -i any -n host <device_ip> and udp port 161 -w /tmp/snmp.pcap

# View in real time (press Ctrl+C to stop)
tcpdump -i any -n -vv host <device_ip> and udp port 161

7.2 What to look for

What you observeWhat it means
No outbound packet from ServiceOpsServiceOps is not sending — check credential profile binding
Outbound packet sent, no replyFirewall or routing issue in the path, or device is dropping silently
Reply received with empty dataCredentials valid; device view or ACL is filtering the data — go to Step 5
Reply with an error codeA specific SNMP error was returned — cross-reference with Step 4

7.3 Device-side debug commands

Production caution

Debug commands can generate significant CPU load on production devices. Always disable debugging immediately after your test. Schedule a maintenance window if the device is under heavy load.

Cisco IOS (privileged EXEC):

debug snmp packets
! Reproduce the issue, then:
undebug all

Juniper Junos (operational mode):

monitor traffic interface <mgmt-interface> matching "udp port 161"

Linux Net-SNMP agent (run snmpd in debug mode — stop the service first):

snmpd -f -Le -DALL 2>&1 | tee /tmp/snmpd-debug.log

Post Verification Checklist

Complete all items before closing the issue.

CheckWhereExpected result
snmpwalk returns expected dataServiceOps server (Linux shell)OIDs returned without errors
Discovery succeeds in ServiceOpsServiceOps UI > Technician Portal > Asset Management > Hardware AssetDevice fully discovered (interfaces, CPU, memory)
No SNMP errors in device logsDevice syslogClean log during the discovery window
Configuration saved on deviceDevice CLIwrite memory / commit completed
Change documentedYour change management systemTicket updated with what was changed and why

Prevention tips

  • Always create a view before assigning it to a group.
  • Never use passwords, secrets, or sensitive strings as view, group, or community names.
  • Use descriptive names — e.g. MOTA-READ, NMS-READ, APP-READ.
  • Use a dedicated SNMP user per monitoring tool — this makes it easier to isolate per-tool problems.
  • After every SNMP configuration change on a device, run a test discovery from ServiceOps and validate with show snmp commands.
  • Periodically audit device configs to confirm every referenced view is actually defined.

Worked Example: Cisco SNMPv3 Silent Failure

This is one of the most common — and most confusing — SNMP problems. It applies to any Cisco IOS or IOS-XE device. The same root cause — valid credentials, but a missing or misconfigured view — also occurs on Juniper Junos (via VACM), HP/Aruba ProCurve, and other vendors. The diagnostic steps and logic are identical; only the fix commands differ.

The situation

  • A Cisco switch is not being discovered in ServiceOps.
  • The device is configured for SNMPv3 with SHA authentication and AES-256 encryption.
  • The credentials have been double-checked and are confirmed correct.
  • The same device is successfully polled by another monitoring tool.

Diagnosis

Step 1: Ping and UDP/161 test both succeed. The device is reachable.

Step 3: Run snmpwalk with the correct SNMPv3 credentials. It completes without any error — but returns zero output.

Step 4: Zero output with no error = silent failure. This pattern means credentials are valid but the device's access policy is blocking the data.

Step 5: Log in to the Cisco device and run:

show snmp group
show snmp view

In show snmp group, the ServiceOps user's group has a readview name assigned — for example MOTA-READ. But that name does not appear anywhere in show snmp view. The view was never created.

Root cause

Cisco IOS silently returns no data when a group's readview does not exist. There is no error message, no SNMP error code, and no syslog entry. The configuration looks complete because the user and group both exist — but without a valid readview, the device has nowhere to look up the data.

Fix

Create the missing view. Run this in global configuration mode (configure terminal):

snmp-server view MOTA-READ iso included

Save the configuration:

write memory

Re-run discovery in ServiceOps. To confirm the fix:

show snmp view
show snmp group

Both commands should now show MOTA-READ consistently.

Security note

If the original readview name was accidentally set to something sensitive (such as a password — a real-world occurrence), it is stored in the device's running config and any backup in plaintext. Replace it with a non-sensitive name:

snmp-server view MOTA-READ iso included
snmp-server group <group-name> v3 priv read MOTA-READ
no snmp-server view <old-sensitive-name>

Root Cause Matrix

Already familiar with the guide? Find your symptom here and jump directly to the fix.

SymptomLikely causeGo to
Ping fails, no reply on UDP/161Network/routing problem or device is offlineStep 1
Ping OK, UDP/161 filteredFirewall blocking SNMP between ServiceOps and deviceStep 1
snmpwalk timeout (v2c or v3)Firewall, device ACL, or SNMP agent not runningStep 1, Step 2
Authentication failure (v2c)Wrong community stringStep 3, Step 5, Step 6
Authentication failure (v3)Wrong username, auth protocol, or auth passwordStep 3, Step 5, Step 6
Decryption error (v3)Wrong privacy protocol or privacy passwordStep 3, Step 5
Unknown user name (v3)Username does not exist on the deviceStep 5
Not in time window (v3)Clock drift between ServiceOps server and deviceStep 4 — sync device NTP
snmpwalk OK but ServiceOps discovery failsCredential profile mismatch or wrong profile assignedStep 6
snmpwalk returns nothing, no errorSilent failure — group readview missing on deviceStep 4, Step 5, Worked Example
Some OIDs return data, others are emptyDevice view restricts part of the MIB treeStep 5
Intermittent discovery failuresWAN latency + timeout setting too lowStep 6 — increase timeout
Engine ID mismatch errorsDevice was replaced, reset, or stack changedStep 6 — re-add device
Works in another tool, fails in ServiceOpsDifferent view used per tool, or wrong ServiceOps profileStep 5, Step 6
Fortinet — silent drop despite valid credentialsInterface allowaccess missing snmpStep 5 — Fortinet
Palo Alto — silent drop despite valid credentialsInterface Management Profile missing SNMPStep 5 — Palo Alto

When to Contact Support

Escalate to Motadata Support if, after completing all steps above:

  • snmpwalk from the ServiceOps server succeeds, but ServiceOps discovery still returns no data.
  • Discovery succeeds for some OIDs but fails for specific data types.
  • The issue affects multiple SNMP devices simultaneously with no apparent common cause.
  • Engine ID negotiation repeatedly fails after re-adding the device.
  • You suspect a bug or unexpected behavior in ServiceOps itself.

What to include in your support request

  • Motadata ServiceOps version and patch level
  • Device vendor, model, and OS/firmware version
  • SNMP version (v2c or v3) and security level
  • Output of the vendor show commands from Step 5redact all passwords
  • Output of your snmpwalk test from Step 3
  • ServiceOps discovery logs for the affected device, with timestamps — found on the server at /optflotomate/discovery/logs
  • Packet capture file if available (Step 7)
  • List of steps already attempted