SNMP
Simple Network Management Protocol
Contents
Online MIB Browser
http://www.oidview.com/mibs/0/HOST-RESOURCES-MIB.html - appears to have gone offline June 2020
https://bestmonitoringtools.com/mibdb/mibdb_search.php
Statistics
- Source: Manager (Poller)
- Destination: Device
- Port: 161 UDP
Traps / Alarms
- Source: Device
- Destination: Manager
- Port: 162 UDP
SNMP v3
Proviso
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.3.112.115.51 = 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"
Net-SNMP
CLI command
./snmpget -v 3 -a MD5 -A 'authpwtext' -l authNoPriv -u useridtext 10.78.252.19 iso.3.6.1.2.1.1.5.0
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
Grafana
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)
SNMP Simulator
Used by librenms
http://snmplabs.com/snmpsim/index.html
snmpsim-command-responder = snmpsimd.py
data/variation files installed to
- Ubuntu - /usr/local/snmpsim
python /usr/local/bin/snmpsimd.py --data-dir=/usr/local/snmpsim/data/ --variation-modules-dir=/usr/local/snmpsim/variation/ --agent-udpv4-endpoint=127.0.0.1:1024
- Centos - /usr/snmpsim
/usr/bin/snmpsimd.py --data-dir=/usr/snmpsim/data --variation-modules-dir=/usr/snmpsim/variation --agent-udpv4-endpoint=127.0.0.1:1024
Usage
https://www.ibm.com/support/pages/how-use-snmpsim-simulate-network-device-based-snmp-walk-file