SNMP MIB Browser & OID Walkthrough: Find and Monitor Any Device Metric
A practical guide to using MIB browsers, walking OID trees, and finding the right OIDs to monitor any SNMP-enabled device — routers, switches, UPS, printers, and custom hardware.
What Are MIBs and OIDs?
Every piece of information available via SNMP is identified by an Object Identifier (OID) — a unique numerical address in a hierarchical tree. A Management Information Base (MIB) is essentially a dictionary that translates these numeric OIDs into human-readable names.
The OID Tree Structure
iso(1)
└── org(3)
└── dod(6)
└── internet(1)
├── mgmt(2)
│ └── mib-2(1)
│ ├── system(1) → 1.3.6.1.2.1.1
│ ├── interfaces(2) → 1.3.6.1.2.1.2
│ ├── ip(4) → 1.3.6.1.2.1.4
│ └── snmp(11) → 1.3.6.1.2.1.11
│
└── private(4)
└── enterprises(1) → 1.3.6.1.4.1
├── Cisco(9) → 1.3.6.1.4.1.9
├── HP(11) → 1.3.6.1.4.1.11
├── Moxa(8691) → 1.3.6.1.4.1.8691
└── APC(318) → 1.3.6.1.4.1.318
Standard MIBs (under 1.3.6.1.2.1) work across all vendors — interface statistics, IP routing, system info. Enterprise MIBs (under 1.3.6.1.4.1) contain vendor-specific data like hardware sensors, proprietary features, and device-specific metrics.
Essential Standard OIDs Every Admin Should Know
These OIDs work on virtually any SNMP-enabled device:
System Information (1.3.6.1.2.1.1)
| OID | Name | Returns | |-----|------|---------| | .1.3.6.1.2.1.1.1.0 | sysDescr | Device description, firmware version | | .1.3.6.1.2.1.1.2.0 | sysObjectID | Vendor/model identifier | | .1.3.6.1.2.1.1.3.0 | sysUpTime | Time since last reboot (in timeticks) | | .1.3.6.1.2.1.1.4.0 | sysContact | Admin contact info | | .1.3.6.1.2.1.1.5.0 | sysName | Hostname | | .1.3.6.1.2.1.1.6.0 | sysLocation | Physical location string |
# Quick device identification
snmpget -v2c -c public 192.168.1.1 sysDescr.0 sysName.0 sysUpTime.0Interface Table (1.3.6.1.2.1.2.2.1)
| OID Suffix | Name | Returns | |------------|------|---------| | .1 | ifIndex | Interface number | | .2 | ifDescr | Interface name (e.g., GigabitEthernet0/1) | | .5 | ifSpeed | Interface speed in bits/sec | | .7 | ifAdminStatus | Admin state: 1=up, 2=down | | .8 | ifOperStatus | Operational state: 1=up, 2=down | | .10 | ifInOctets | Bytes received (32-bit counter) | | .14 | ifInErrors | Input errors | | .16 | ifOutOctets | Bytes transmitted (32-bit counter) | | .20 | ifOutErrors | Output errors |
# List all interfaces and their status
snmpwalk -v2c -c public 192.168.1.1 1.3.6.1.2.1.2.2.1.2 # Names
snmpwalk -v2c -c public 192.168.1.1 1.3.6.1.2.1.2.2.1.8 # Oper status
# Get traffic counters for interface 1
snmpget -v2c -c public 192.168.1.1 ifInOctets.1 ifOutOctets.164-bit Counters (IF-MIB, 1.3.6.1.2.1.31.1.1.1)
For gigabit+ links, 32-bit counters wrap around too quickly. Use the 64-bit HC (High Capacity) counters:
| OID Suffix | Name | Purpose | |------------|------|---------| | .6 | ifHCInOctets | 64-bit input bytes | | .10 | ifHCOutOctets | 64-bit output bytes | | .15 | ifHighSpeed | Interface speed in Mbps |
# 64-bit traffic counters for 10Gbps link
snmpget -v2c -c public 192.168.1.1 \
1.3.6.1.2.1.31.1.1.1.6.1 \
1.3.6.1.2.1.31.1.1.1.10.1MIB Browser Tools
1. iReasoning MIB Browser (GUI — Windows/Mac/Linux)
The most popular graphical MIB browser. Excellent for exploring OID trees visually.
Setup:
- Download from the iReasoning website (free version available)
- Load vendor MIB files: File → Load MIBs → select
.mibor.myfiles - Enter device IP, select SNMP version, enter credentials
- Browse the tree or search for specific OIDs
Key features:
- Visual OID tree navigation
- Bulk walk operations
- Table view for interface/routing tables
- Trap receiver built-in
- MIB compilation and validation
2. Net-SNMP CLI Tools (Command Line — All Platforms)
The standard SNMP toolkit for scripting and automation:
# Install on Ubuntu/Debian
sudo apt install snmp snmp-mibs-downloader
# Install on RHEL/CentOS
sudo yum install net-snmp-utils
# Install on Windows (via Chocolatey)
choco install net-snmpEssential commands:
# snmpget — Retrieve a single OID value
snmpget -v3 -u myUser -l authPriv -a SHA -A "AuthPass" \
-x AES -X "PrivPass" 192.168.1.1 sysUpTime.0
# snmpwalk — Walk an entire OID subtree
snmpwalk -v3 -u myUser -l authPriv -a SHA -A "AuthPass" \
-x AES -X "PrivPass" 192.168.1.1 1.3.6.1.2.1.2.2.1
# snmpbulkwalk — Faster walk using GETBULK (v2c/v3 only)
snmpbulkwalk -v3 -u myUser -l authPriv -a SHA -A "AuthPass" \
-x AES -X "PrivPass" -Cr25 192.168.1.1 1.3.6.1.2.1.2.2
# snmptable — Display SNMP tables in readable format
snmptable -v2c -c public 192.168.1.1 ifTable
# snmptranslate — Convert between numeric and named OIDs
snmptranslate -On IF-MIB::ifOperStatus
# Output: .1.3.6.1.2.1.2.2.1.8
snmptranslate -Td 1.3.6.1.2.1.2.2.1.8
# Output: Full description of ifOperStatus3. Paessler SNMP Tester (Windows — Free)
Lightweight tool specifically designed for quick SNMP testing:
- Test connectivity to devices
- Walk OID subtrees
- Verify SNMPv3 credentials
- No MIB loading needed — shows raw OID values
4. ManageEngine MIB Browser (GUI — Free)
Feature-rich MIB browser with:
- Built-in MIB library for major vendors
- SNMP operations: GET, GETNEXT, SET, GETBULK
- Trap viewer
- Multi-device support
Finding the Right OIDs for Your Device
Step 1: Download the Vendor MIB
Every manufacturer provides MIB files for their devices. Where to find them:
| Vendor | MIB Location | |--------|-------------| | Cisco | Built into IOS, also on cisco.com SNMP Object Navigator | | Moxa | Product support page → Downloads → MIB files | | HP/Aruba | Support portal → MIB download | | APC/Schneider | APC download portal → Firmware/MIB | | Fortinet | Fortinet support → FortiMIB downloads | | Huawei | Enterprise support → MIB files |
Step 2: Load and Browse the MIB
# Copy MIB files to Net-SNMP MIB directory
# Linux:
cp MOXA-SWITCHING-MIB.mib /usr/share/snmp/mibs/
# Then use the MIB name in commands:
snmpwalk -v3 -u myUser -l authPriv -a SHA -A "AuthPass" \
-x AES -X "PrivPass" -m MOXA-SWITCHING-MIB 192.168.1.1 moxaStep 3: Full Device OID Discovery Walk
When you don't know what OIDs a device supports, do a full walk:
# Walk the entire device (can take minutes on complex devices)
snmpwalk -v3 -u myUser -l authPriv -a SHA -A "AuthPass" \
-x AES -X "PrivPass" 192.168.1.1 . > full_walk.txt
# Search for specific keywords in the output
grep -i "temperature" full_walk.txt
grep -i "fan" full_walk.txt
grep -i "power" full_walk.txt
grep -i "cpu" full_walk.txt
grep -i "memory" full_walk.txt
# Walk only the enterprise subtree for vendor-specific OIDs
snmpwalk -v3 -u myUser -l authPriv -a SHA -A "AuthPass" \
-x AES -X "PrivPass" 192.168.1.1 1.3.6.1.4.1 > enterprise_walk.txtStep 4: Identify the Enterprise OID
# Find the vendor's enterprise number
snmpget -v2c -c public 192.168.1.1 sysObjectID.0
# Example results:
# Cisco: 1.3.6.1.4.1.9.1.xxx
# Moxa: 1.3.6.1.4.1.8691.xxx
# APC: 1.3.6.1.4.1.318.xxx
# HP: 1.3.6.1.4.1.11.xxxPractical Walkthrough: Finding CPU & Temperature OIDs
Example: Cisco Switch
# CPU utilisation (last 5 seconds, 1 min, 5 min)
snmpwalk -v2c -c public 192.168.1.1 1.3.6.1.4.1.9.9.109.1.1.1.1
# CISCO-PROCESS-MIB OIDs:
# .3 = cpmCPUTotal5sec (5-second average)
# .4 = cpmCPUTotal1min (1-minute average) ← most useful
# .5 = cpmCPUTotal5min (5-minute average)
# Temperature sensors
snmpwalk -v2c -c public 192.168.1.1 1.3.6.1.4.1.9.9.13.1.3.1.3
# CISCO-ENVMON-MIB::ciscoEnvMonTemperatureStatusValueExample: APC UPS
# Battery capacity remaining (%)
snmpget -v2c -c public 192.168.1.50 1.3.6.1.4.1.318.1.1.1.2.2.1.0
# Battery temperature (°C)
snmpget -v2c -c public 192.168.1.50 1.3.6.1.4.1.318.1.1.1.2.2.2.0
# Battery runtime remaining (timeticks)
snmpget -v2c -c public 192.168.1.50 1.3.6.1.4.1.318.1.1.1.2.2.3.0
# UPS output load (%)
snmpget -v2c -c public 192.168.1.50 1.3.6.1.4.1.318.1.1.1.4.2.3.0
# Last transfer reason
snmpget -v2c -c public 192.168.1.50 1.3.6.1.4.1.318.1.1.1.3.2.5.0Example: HP/Aruba Switch
# CPU utilisation
snmpget -v2c -c public 192.168.1.1 1.3.6.1.4.1.11.2.14.11.5.1.9.6.1.0
# Temperature sensor
snmpwalk -v2c -c public 192.168.1.1 1.3.6.1.4.1.11.2.14.11.1.2.6.1.4
# Fan status
snmpwalk -v2c -c public 192.168.1.1 1.3.6.1.4.1.11.2.14.11.1.2.6.1.4
# Memory utilisation
snmpget -v2c -c public 192.168.1.1 1.3.6.1.4.1.11.2.14.11.5.1.1.2.2.1.1.6.1Creating Custom Monitoring with Discovered OIDs
Once you've found the right OIDs, integrate them into your NMS:
Zabbix Item Configuration
Type: SNMPv3 agent
SNMP OID: 1.3.6.1.4.1.318.1.1.1.2.2.1.0
Key: ups.battery.capacity
Type of information: Numeric (unsigned)
Units: %
Update interval: 60s
SNMPv3 security name: upsMonitor
SNMPv3 security level: authPriv
SNMPv3 auth protocol: SHA
SNMPv3 auth passphrase: {$SNMP_AUTH}
SNMPv3 priv protocol: AES
SNMPv3 priv passphrase: {$SNMP_PRIV}
Zabbix Trigger
Trigger: UPS Battery Low
Expression: last(/UPS Template/ups.battery.capacity) < 50
Severity: High
LibreNMS Custom OID Poller
In LibreNMS, add custom OIDs via the web UI:
- Navigate to Device → Health → Custom OID
- Add OID:
1.3.6.1.4.1.318.1.1.1.2.2.1.0 - Set description, type (gauge), unit (%), divisor if needed
- LibreNMS will graph it automatically
Tips for Efficient OID Discovery
- Start with sysDescr — Know exactly what device and firmware you're dealing with
- Check the vendor's documentation first — Most vendors publish OID reference guides
- Use snmpbulkwalk instead of snmpwalk — 5-10x faster for large walks
- Search enterprise OID databases online — Sites like oid-info.com catalog thousands of enterprise OIDs
- Save full walks as reference — A complete OID dump serves as documentation for that device model
- Compare walks across firmware versions — OIDs can change between firmware upgrades
Frequently Asked Questions
How do I find OIDs for a device with no MIB file available?
Do a full snmpwalk starting from .1.3.6.1 and save the output. Search through it for relevant values. You can also look up the enterprise number from sysObjectID on IANA's enterprise number registry to identify the vendor.
Can I create custom OIDs on a device?
Some devices support SNMP extend or pass-through mechanisms. On Linux servers, you can use extend in snmpd.conf to expose custom script output via SNMP. Network devices generally don't support custom OIDs.
Why does snmpwalk return "No more variables left in this MIB View"?
This usually means the SNMP user/community has restricted access. Check the SNMP view configuration on the device and ensure your user has access to the OID subtree you're trying to walk.
How often should I poll SNMP OIDs?
For counters (traffic, errors): 60-300 seconds. For status values (interface up/down): 30-60 seconds. For environmental (temperature): 120-300 seconds. Avoid polling faster than every 10 seconds unless absolutely necessary.