RouterOS 7 broke things. If you’re still using The Dude or legacy monitoring tools on RouterOS 6, you’ll discover that half the OIDs changed in v7, some SNMP features moved, and the API shifted. This guide tells you exactly what changed and how to monitor RouterOS 7 properly.
What Changed in RouterOS 7?
SNMP Tree Reorganization
RouterOS 6 and earlier used a flat SNMP tree. RouterOS 7 reorganized many OIDs. If you have hardcoded OID strings from 2010, they might not exist anymore.
RouterOS 7 SNMP Tree (key locations):
1.3.6.1.2.1.25 — Host Resources (system, storage, processes)
1.3.6.1.4.1.14988 — MikroTik private tree (RouterOS-specific)
.1.1.1.1.0 — System description
.1.2.1.3.0 — Board name
.1.2.1.5.0 — Firmware version
.1.2.1.6.0 — Serial number
.1.6.1 — Uptime
.1.7.1 — Health (temperature, voltage)
SNMP v3 Required (Recommended)
RouterOS 6 defaulted to v1/v2c (community strings). RouterOS 7 and later strongly recommend v3 with authentication. While v2c still works, security best practices demand v3.
Enable SNMP v3 on RouterOS 7:
/snmp set enabled=yes community-access=read-only
/snmp user add name=monitoring auth-protocol=MD5 auth-password="PASS" privacy-protocol=AES privacy-password="PASS"
Then configure your monitoring tool to use:
SNMP v3
Username: monitoring
Auth Type: MD5
Auth Password: [your password]
Privacy Type: AES
Privacy Password: [your password]
API Endpoint Stability
RouterOS 7 locked down the API more aggressively. This affects tools that scrape REST API instead of SNMP. The good news: SNMP is now the recommended way to monitor RouterOS 7.
Key OIDs for RouterOS 7 Monitoring
These OIDs are guaranteed to work on RouterOS v7.0+:
System Information
| What | OID | Example Output |
|---|---|---|
| Hostname | 1.3.6.1.2.1.1.5.0 | router-core-01 |
| System uptime | 1.3.6.1.2.1.1.3.0 | (123456789) = 123.4M ticks ÷ 100 = 1,234,567 seconds |
| System description | 1.3.6.1.2.1.1.1.0 | MikroTik RouterOS 7.8.1 on RB4011 |
| Contact | 1.3.6.1.2.1.1.4.0 | Your NOC contact info |
CPU and Memory
# CPU usage (percentage)
snmpwalk -v 3 -u monitoring ROUTER 1.3.6.1.2.1.25.3.3.1.2
# Returns per-processor CPU usage
# Total memory
snmpwalk -v 3 -u monitoring ROUTER 1.3.6.1.2.1.25.2.2
# Includes RAM, flash storage, temporary buffers
# Memory free
snmpwalk -v 3 -u monitoring ROUTER 1.3.6.1.2.1.25.2.2.0
Disk/Storage
RouterOS 7 uses a new storage reporting structure:
# Storage table (disks, partitions, memory)
snmpwalk -v 3 -u monitoring ROUTER 1.3.6.1.2.1.25.2.3.1
# Returns: device, capacity, used, available
# Typical output:
# hrStorageDescr.1 = "Memory"
# hrStorageSize.1 = 1073741824 (1 GB)
# hrStorageUsed.1 = 536870912 (500 MB)
# hrStorageAvail.1 = 536870912 (500 MB free)
Temperature and Health
MikroTik-specific OIDs (RouterOS 7 health monitoring):
# CPU temperature (degrees Celsius)
snmpget -v 3 -u monitoring ROUTER 1.3.6.1.4.1.14988.1.1.3.12.0
# PSU voltage
snmpget -v 3 -u monitoring ROUTER 1.3.6.1.4.1.14988.1.1.3.13.0
# PCB temperature
snmpget -v 3 -u monitoring ROUTER 1.3.6.1.4.1.14988.1.1.3.11.0
Alert thresholds:
- CPU temp >75°C: warning
- CPU temp >85°C: critical (thermal throttling likely)
- PSU voltage <4.7V or >5.3V: power problem, log ticket
Interfaces (Most Important)
RouterOS 7 interface reporting is standardized:
# Interface table (all ports, bridges, tunnels, etc.)
snmpwalk -v 3 -u monitoring ROUTER 1.3.6.1.2.1.2.2
# Returns: ifIndex, ifDescr, ifType, ifSpeed, ifPhysAddress, ifAdminStatus, ifOperStatus
# Interface statistics
snmpwalk -v 3 -u monitoring ROUTER 1.3.6.1.2.1.2.2.1.10
# IN octets (bytes received)
snmpwalk -v 3 -u monitoring ROUTER 1.3.6.1.2.1.2.2.1.16
# OUT octets (bytes sent)
# Interface errors
snmpwalk -v 3 -u monitoring ROUTER 1.3.6.1.2.1.2.2.1.20
# IN errors (CRC, frame errors, etc.)
Example parser (Python) to extract per-interface stats:
from pysnmp.hlapi import *
def get_interface_stats(target, snmp_v3_user):
iterator = getCmd(SnmpEngine(),
UsmUserData(snmp_v3_user['user'],
snmp_v3_user['auth_pass'],
snmp_v3_user['priv_pass']),
UdpTransportTarget((target, 161)),
ContextData(),
ObjectType(ObjectIdentity('1.3.6.1.2.1.2.2.1.5'))) # ifSpeed
error, errorStatus, errorIndex, varBinds = next(iterator)
interfaces = {}
for varBind in varBinds:
oid, value = varBind
if_index = oid[-1]
interfaces[if_index] = int(value)
return interfaces
PtP/Wireless Links (RouterOS Specifics)
If you have wireless P2P links, RouterOS exposes link quality via:
# Wireless signal strength (dBm)
snmpget -v 3 -u monitoring ROUTER 1.3.6.1.4.1.14988.1.1.1.1.1.0
# Wireless TX/RX rate (Mbps)
snmpget -v 3 -u monitoring ROUTER 1.3.6.1.4.1.14988.1.1.1.1.2.0
snmpget -v 3 -u monitoring ROUTER 1.3.6.1.4.1.14988.1.1.1.1.3.0
# Wireless CCQ (Channel Capacity Quality, 0–100%)
snmpget -v 3 -u monitoring ROUTER 1.3.6.1.4.1.14988.1.1.1.1.4.0
Alert on wireless:
- CCQ <80%: likely interference or fading, check antenna/weather
- TX rate dropping: possible RF obstruction
CAPsMAN (Centralized Access Point Management)
RouterOS 7 CAPsMAN is the standard for managing multiple WiFi APs across a network. SNMP exposes per-AP statistics:
# CAP count
snmpget -v 3 -u monitoring ROUTER 1.3.6.1.4.1.14988.1.1.1.3.1.0
# Per-CAP association count
snmpwalk -v 3 -u monitoring ROUTER 1.3.6.1.4.1.14988.1.1.1.3.2
# Per-CAP signal quality
snmpwalk -v 3 -u monitoring ROUTER 1.3.6.1.4.1.14988.1.1.1.3.3.0
SNMP vs API: Which Should You Use?
| Aspect | SNMP | REST API |
|---|---|---|
| Setup complexity | Simple (/snmp set enabled=yes) | Moderate (enable, create token) |
| Real-time data | Yes (polled every 30 seconds) | Yes (HTTP request) |
| Query speed | Fast (binary protocol) | Slower (HTTP parsing) |
| Data volume | Small (binary packed) | Larger (JSON) |
| Firewall-friendly | ✅ UDP 161 | ❌ TCP 8728 usually blocked |
| Scalability | ✅ 1000+ routers/server | ✅ 1000+ routers/server |
| Standard compatibility | ✅ Works with any SNMP tool | ❌ RouterOS-specific |
| For cloud/APIs | Not ideal | Preferred |
| For traditional ISPs | Preferred | Not needed |
Recommendation: Use SNMP for on-premise monitoring. It’s firewall-safe, standardized, and doesn’t require API tokens. Use REST API only for cloud-native integrations or custom automation.
Complete SNMP Configuration for RouterOS 7
/snmp set enabled=yes contact="NOC: [email protected]" location="DC1"
# Remove default public community (security)
/snmp community remove [find name=public]
# Add monitoring user with auth + privacy
/snmp user add name=monitoring \
auth-protocol=MD5 \
auth-password="PASS" \
privacy-protocol=AES \
privacy-password="PASS"
# Optional: add read-only community for legacy tools
/snmp community add name=monitoring group=public
Monitoring Stack for RouterOS 7
Recommended setup: YAD or LibreNMS
YAD + RouterOS 7
# devices.yaml
devices:
- name: router-core-01
address: 192.168.1.1
snmp_version: 3
snmp_user: monitoring
snmp_auth: MD5
snmp_privacy: AES
snmp_auth_pass: "Xh8@2xK!9mL4P$w"
snmp_priv_pass: "Xy7@3mN!2pQ$r8s"
poll_interval: 30s
LibreNMS + RouterOS 7
LibreNMS has built-in RouterOS 7 support. Just add the device via web UI with SNMP v3 credentials, and it auto-detects the device type and polls all key metrics.
Troubleshooting RouterOS 7 SNMP
Issue: “SNMP timeout”
# Check SNMP is enabled
/snmp print
# output: enabled=yes
# Check user exists
/snmp user print
# output: monitoring (auth MD5, privacy AES)
# Test from monitoring server
snmpget -v 3 -u monitoring -a MD5 -A "PASSWORD" -x AES -X "PASSWORD" ROUTER 1.3.6.1.2.1.1.5.0
Issue: “No data in OID X”
Some OIDs don’t exist on all hardware. RB4011 has temperature sensors; hEX does not. Test with:
snmpwalk -v 3 -u monitoring ROUTER 1.3.6.1.4.1.14988.1.1.3.11.0
# If empty, sensor doesn't exist
Issue: “Only see some interfaces”
RouterOS 7 hides certain internal bridges by default. Check:
/interface print
/interface bridge print
# You may have 30 interfaces but SNMP reports 8. That's normal.
Conclusion
RouterOS 7 SNMP is stable and well-documented. For ISPs with 50+ MikroTik devices, proper SNMP v3 monitoring with LibreNMS or YAD will:
- Alert on interface down within 30 seconds
- Track bandwidth utilization per interface
- Catch temperature issues before hardware fails
- Provide audit logs for SLA reporting
Enable SNMP v3, add your routers to YAD/LibreNMS, set interface thresholds, and you’re done.
Monitor RouterOS 7 with YAD → yetanotherdude.io
Native support for MikroTik SNMP trees, interface discovery, and alerts.