How to install and use snmpwalk


Snmpwalk is a great tool for Linux boxes. You can easily list all OIDs an SNMP host has to offer then filter the results to your needs and find OIDs to import into tools like Cacti. Snmpwalk is in most Linux repos so it’s easy to install e.g:

Fedora/Centos: yum install net-snmp-utils
Ubuntu: apt-get install snmp

The syntax to use snmpwalk is also pretty simple:

[email protected]:~# snmpwalk --help
Email: [email protected]
-h, --help display this help message
-H display configuration file directives understood
-v 1|2c|3 specifies SNMP version to use
-V, --version display package version number
SNMP Version 1 or 2c specific
-c COMMUNITY set the community string
SNMP Version 3 specific
-a PROTOCOL set authentication protocol (MD5|SHA)
-A PASSPHRASE set authentication protocol pass phrase
-e ENGINE-ID set security engine ID (e.g. 800000020109840301)
-E ENGINE-ID set context engine ID (e.g. 800000020109840301)
-l LEVEL set security level (noAuthNoPriv|authNoPriv|authPriv)
-n CONTEXT set context name (e.g. bridge1)
-u USER-NAME set security name (e.g. bert)
-x PROTOCOL set privacy protocol (DES|AES)
-X PASSPHRASE set privacy protocol pass phrase
-Z BOOTS,TIME set destination engine boots/time
General communication options
-r RETRIES set the number of retries
-t TIMEOUT set the request timeout (in seconds)
-d dump input/output packets in hexadecimal
-D TOKEN[,...] turn on debugging output for the specified TOKENs
(ALL gives extremely verbose debugging output)

A copy of the man page can be found here.
So a simple example of listing all OIDs on a host with an IP of using SNMP version two and a community string of mysecretsnmp would be:

[email protected]:~# snmpwalk -v 2c -c mysecretsnmp
SNMPv2-MIB::sysDescr.0 = STRING: Linux 2.4.31 #2 SMP Fri Aug 22 23:02:05 PDT 2008 i686
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-TC::linux
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (22119) 0:03:41.19
SNMPv2-MIB::sysContact.0 = STRING: m00nie Networks
SNMPv2-MIB::sysName.0 = STRING:
SNMPv2-MIB::sysLocation.0 = STRING: m00nieland
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00
NOTIFICATION-LOG-MIB::nlmLogTime."default".1 = Timeticks: (12) 0:00:00.12
NOTIFICATION-LOG-MIB::nlmLogDateAndTime."default".1 = STRING: 2010-8-23,13:50:31.0,+1:0
[email protected]:~#

Now to only view one OID value we can append the OID SNMPv2-MIB::sysContact.0

[email protected]:~# snmpwalk -v 2c -c mysecretsnmp SNMPv2-MIB::sysContact.0
SNMPv2-MIB::sysContact.0 = STRING: m00nie Networks
[email protected]:~#

To display the numerical OID for each SNMP value use the “-O n” switch. Useful for Cacti as it only uses the numerical OID 

[email protected]:~# snmpwalk -v 2c -O n -c mysecretsnmp SNMPv2-MIB::sysContact.0
. = STRING: m00nie Networks
[email protected]:~#

You can also use the numerical OID to refine the output.

[email protected]:~# snmpwalk -v 2c -O n -c mysecretsnmp .
. = STRING: m00nie Networks
[email protected]:~#

Now if your Linux box is also running Cacti or similar you have proven SNMP connectivity so importing like this is easy, allowing the graphing of the value.


Please enter your comment!
Please enter your name here