Jump to navigationJump to search

Simple Network Management Protocol

Online MIB Browser - appears to have gone offline June 2020


  • Source: Manager (Poller)
  • Destination: Device
  • Port: 161 UDP

Traps / Alarms

  • Source: Device
  • Destination: Manager
  • Port: 162 UDP



SNMP community string as used in the gui

&V3,[[Access Mode]]=Auth-MD5,[[Security Name]]=useridtext,[[Context Name]]=,[[Auth Passwd]]=authpwtext

SNMP Communtity string as used in the cli

snmpGet [[OID's]] sys Name.0 -S SNMPCOLLECTORNAME -P 3002 -r 3 -t 2 -c '&V3,[[AccessMode]]=Auth-MD5,[[Security Name]]=useridtext,[[Context Name]]=,[[Auth Passwd]]=authpwtext'

OIDs that use strings as the indexes

jnxSubscriberPortTerminatedCounter. = 14825

First int = length Proceeding ints, convert to hex, then hex to ascii in the example above

Length = 3
112 -> 70 -> p
115 -> 73 -> s
51 ->  33 --> 3
index = ps3

netsnmp will translate this when querying ie jnxSubscriberPortTerminatedCounter."ps3"


CLI command

./snmpget -v 3 -a MD5 -A 'authpwtext' -l authNoPriv -u useridtext iso.

Nice guide to comparing Juniper CLI to SNMP


Juniper CLI

show snmp mib walk ifDescr

Identify which net-snmp version is used in a particular Junos OS version

restart mib-process immediately
show log messages | match "NET-SNMP" | match mib2d 
May 25 07:38:15.434  jtac-lab-re0 mib2d[5920]: LIBJSNMP_NS_LOG_INFO: INFO: ns_subagent_open_session: NET-SNMP version 5.3.1 AgentX subagent Open-Sent!

Note: The command 'restart mib-process immediately' does not impact traffic. The process is respawned in seconds and during this brief time the network monitoring via SNMP is disrupted.

SNMP Version

  • RFC1213 - SNMPv1
  • RFC3416 - SNMPv2c
  • RFC3411-3415 - SNMPv3


Because collectd doesnt us an inventory model - it doesnt appear to keep track or report on missed polls / values. We have to figure this out at the Grafana layer - looking for nulls. Except this isnt easy, we instead have to count how many values we have. This only works for the past 7 days / your raw retention period.

Find how many null values there are (thus missed pollings) - by counting how many values we have

  • Series - Choose a metric and using * for the hosts
  • Functions scale(0) offset(1) summarize(1h, sum, true)

95% billing

Will put a line at 95% usage on the graph. Target: scale(8)movingAverage(5min) 95%: nPercentile(#A,95)

Export and Import

When importing a dashboard - set id=null

SNMP Simulator

Used by librenms

snmpsim-command-responder =

data/variation files installed to

  • Ubuntu - /usr/local/snmpsim
python /usr/local/bin/ --data-dir=/usr/local/snmpsim/data/ --variation-modules-dir=/usr/local/snmpsim/variation/ --agent-udpv4-endpoint= 
  • Centos - /usr/snmpsim
/usr/bin/ --data-dir=/usr/snmpsim/data --variation-modules-dir=/usr/snmpsim/variation --agent-udpv4-endpoint=


Sample walks

Linux force 64bit Counters


## LibreNMS MIBs (restricted for faster polling)
## ---------------------------------------------------------
# Inc. System Info (name/loc) OIDs
view    libre-mibs      included        .

# Include Interface MIBs
view    libre-mibs      included        .

# Include Interface MIBs w/ 64 bit counters for high traffic boxes
view 	libre-mibs 	included

# Exclude 32 bit counters as high traffic boxes overflow
view	libre-mibs	excluded 	.
view    libre-mibs      excluded        .
view    libre-mibs      excluded        .
view    libre-mibs      excluded        .
view    libre-mibs      excluded        .
view    libre-mibs      excluded        .
view    libre-mibs.     excluded 	.
view    libre-mibs      excluded        .
view    libre-mibs      excluded        .
view    libre-mibs      excluded        .