devices

SNMP on Cisco: Enable It & Key OIDs (IOS/IOS-XE)

Configure and monitor Cisco devices over SNMP — snmp-server commands, interfaces via IF-MIB, and CPU/memory/temperature via Cisco enterprise MIBs.

By the SNMP Monitoring team · Reviewed July 2026

Cisco is the textbook example of the standard-plus-vendor MIB pattern. Interfaces on a Cisco switch or router come from the same IF-MIB you'd read on any device — but CPU, memory, and environmental sensors live in Cisco enterprise MIBs under 1.3.6.1.4.1.9. This guide covers enabling SNMP on IOS/IOS-XE, reading interfaces the standard way, and finding CPU/memory/temperature in the right Cisco MIB modules. One discipline throughout: we name the MIB module for each vendor metric and point you at Cisco's official object navigator rather than inventing specific leaf OIDs, because Cisco's numbering varies by platform and MIB.

Parent: devices. Related: interface sensor, enterprise OIDs.

Enabling SNMP on IOS/IOS-XE

On IOS and IOS-XE, SNMP is configured with snmp-server commands. A minimal read-only setup, scoped with an ACL:

snmp-server community S3cr3tR0str1ng RO 10
snmp-server location Rack 12, DC-East
snmp-server contact netops@example.com
access-list 10 permit 10.0.0.5

To do it securely:

  1. Define an ACL permitting only your manager's IP (access-list 10 permit <manager>).
  2. Create a read-only community bound to that ACL: snmp-server community <string> RO 10.
  3. Set snmp-server location and contact for identification.
  4. Prefer SNMPv3 over a community where possible (covered below).

Never use public, always attach the ACL, and keep it read-only — a Cisco device with an unrestricted community is a serious exposure. Broader hardening is on security best practices.

Interfaces via IF-MIB

Interface statistics are fully standard — Cisco implements IF-MIB (1.3.6.1.2.1.2 and the high-capacity .31), so traffic counters, status, and errors read exactly as on any other device. That's the portable half: ifName, ifHCInOctets, ifOperStatus, and the rest work without any Cisco MIB loaded. For a switch or router this is usually the bulk of what you monitor — per-port throughput and up/down state. The interface objects are detailed on the interface sensor page, and network-device context on router monitoring and switch monitoring.

CPU, memory, temperature via Cisco MIBs

The vendor-specific metrics live in Cisco enterprise MIBs. Rather than assert leaf numbers that differ across platforms, here are the modules to load and query:

MetricCisco MIB module
CPU utilizationCISCO-PROCESS-MIB
Memory poolsCISCO-MEMORY-POOL-MIB
Temperature / fan / PSUCISCO-ENVMON-MIB

Load these MIB modules into your manager or MIB browser and the objects resolve to names. The gotcha: exact OIDs and available sensors vary by platform and IOS version — a Catalyst switch, an ISR router, and a Nexus device don't all expose the same environmental leaves. So look up the specific OID for your model with Cisco's SNMP Object Navigator (the official MIB locator) rather than copying a number from elsewhere. Newer platforms may also use ENTITY-SENSOR-MIB for environmental data. Never fabricate a Cisco leaf OID — verify it against the MIB for your exact gear.

This variability is the single biggest source of frustration when monitoring Cisco, so it's worth internalising why it happens. Cisco's product range spans decades and multiple operating systems (classic IOS, IOS-XE, NX-OS), and the environmental sensors on a fixed-config access switch simply aren't the same objects as those on a modular chassis router. A CPU OID copied from a blog post for a 2960 may return nothing on a Nexus, not because SNMP is broken but because the platforms populate different tables. The reliable workflow is therefore always the same: identify the exact platform from sysDescr, load the correct MIB module for it, and resolve the leaf you need against that MIB — treating any OID you find second-hand as a hint to verify, not a fact to trust. That habit is what separates monitoring that survives a hardware refresh from monitoring that silently goes blank after one.

Reading with snmpwalk

Once SNMP is enabled, confirm it and identify the device:

snmpwalk -v2c -c S3cr3tR0str1ng 10.0.0.20 system
SNMPv2-MIB::sysDescr.0 = STRING: Cisco IOS Software, C2960X Software (C2960X-UNIVERSALK9-M)
SNMPv2-MIB::sysName.0 = STRING: core-sw01

The sysDescr confirms it's a Cisco device and which platform — which tells you which Cisco MIBs apply. Then walk the interface table:

snmpwalk -v2c -c S3cr3tR0str1ng 10.0.0.20 ifName
IF-MIB::ifName.1 = STRING: GigabitEthernet0/1
IF-MIB::ifName.2 = STRING: GigabitEthernet0/2

Map those index numbers to the ports you care about, then read counters or the Cisco CPU/memory OIDs (once you've confirmed the leaves for your model) against the same indices.

SNMPv3 on Cisco

Cisco fully supports SNMPv3, and it's the recommended choice over a v2c community for anything beyond a trusted lab. On IOS you configure a group and a user with authentication and privacy — the moral equivalent of net-snmp's createUser/rouser, binding a user to auth (SHA) and privacy (AES). A sketch:

snmp-server group MONGRP v3 priv
snmp-server user monitor MONGRP v3 auth sha <authpass> priv aes 128 <privpass>

That gives you authenticated, encrypted polling — no cleartext community on the wire. The security-level concepts (authPriv, SHA, AES) are the same across platforms; see SNMPv3 setup. Verify exact command syntax against your IOS/IOS-XE version, as it varies slightly by release.

Frequently asked questions

How do I enable SNMP on Cisco?

On IOS/IOS-XE, define an ACL for your manager's IP, then add snmp-server community <string> RO <acl> for read-only access, plus snmp-server location and contact. For encrypted access, configure SNMPv3 with snmp-server group and snmp-server user. Always scope with an ACL, never use public, and keep it read-only.

Which MIB has Cisco CPU utilization?

Cisco CPU utilization is in the CISCO-PROCESS-MIB, under the Cisco enterprise tree (1.3.6.1.4.1.9). Memory is in CISCO-MEMORY-POOL-MIB and environmental data (temperature, fans, PSU) in CISCO-ENVMON-MIB. Load the module into your manager, and verify the exact leaf OID for your platform with Cisco's SNMP Object Navigator, since it varies by model.

What OIDs do Cisco interfaces use?

Cisco interfaces use the standard IF-MIB (1.3.6.1.2.1.2 and the high-capacity .31), the same as any other device — ifName, ifHCInOctets/ifHCOutOctets for traffic, and ifOperStatus for up/down. No Cisco-specific MIB is needed for interface stats; the vendor MIBs are only for CPU, memory, and environmental data.

Does Cisco support SNMPv3?

Yes. Cisco IOS and IOS-XE fully support SNMPv3, configured with snmp-server group and snmp-server user to define authenticated (SHA) and encrypted (AES) access. It's the recommended choice over a v2c community for anything beyond a trusted management network, since it avoids sending a cleartext community string on the wire.

Key takeaways

  • Cisco is the classic standard + vendor case: IF-MIB for interfaces, Cisco MIBs for the rest.
  • Enable with snmp-server community <string> RO <acl> — always ACL-scoped and read-only.
  • CPU = CISCO-PROCESS-MIB, memory = CISCO-MEMORY-POOL-MIB, environment = CISCO-ENVMON-MIB.
  • Exact leaves vary by platform — verify with Cisco's SNMP Object Navigator; never invent OIDs.
  • Prefer SNMPv3 (snmp-server group/user) over a v2c community.
  • For independent off-box checks, see external monitoring with ostr.io.

Monitor it from outside the network

SNMP only tells you a box is healthy while something is still asking. ostr.io polls your endpoints externally and fires email + SMS alerts the moment a reading crosses your line — or the agent goes silent.