Cómo instalar y usar snmpwalk

Hola amigas y amigos, en el artículo de hoy vamos a hablar de la herramienta Snmpwalk. Con ella podemos enumerar fácilmente todos los OID que un host, con el servicio SNMP activo, tiene pare ofrecer. Para más tarde poder filtrar los resultados según nuestras necesidades y encontrar los OID para utilizar, en plataformas como Cacti.

 

Instalación y algunos ejemplos de Snmpwalk

Snmpwalk se encuentra en la mayoría de los repositorios de GNU/Linux.

Veamos algunos ejemplos:

En sistemas RPM como RHEL o Centos:

  1. yum install net-snmp-utils

En sistemas DEB como Debian o Ubuntu

  1. apt install snmp

La sintaxis para utilizar snmpwalk es simple y amplia:

  1. # snmpwalk --help
  2. USAGE: snmpwalk [OPTIONS] AGENT [OID]
  3.  
  4.   Version:  5.7.2
  5.   Web:      http://www.net-snmp.org/
  6.   Email:    net-snmp-coders@lists.sourceforge.net
  7.  
  8. OPTIONS:
  9.   -h, --help            display this help message
  10.   -H                    display configuration file directives understood
  11.   -v 1|2c|3             specifies SNMP version to use
  12.   -V, --version         display package version number
  13. SNMP Version 1 or 2c specific
  14.   -c COMMUNITY          set the community string
  15. SNMP Version 3 specific
  16.   -a PROTOCOL           set authentication protocol (MD5|SHA)
  17.   -A PASSPHRASE         set authentication protocol pass phrase
  18.   -e ENGINE-ID          set security engine ID (e.g. 800000020109840301)
  19.   -E ENGINE-ID          set context engine ID (e.g. 800000020109840301)
  20.   -l LEVEL              set security level (noAuthNoPriv|authNoPriv|authPriv)
  21.   -n CONTEXT            set context name (e.g. bridge1)
  22.   -u USER-NAME          set security name (e.g. bert)
  23.   -x PROTOCOL           set privacy protocol (DES|AES)
  24.   -X PASSPHRASE         set privacy protocol pass phrase
  25.   -Z BOOTS,TIME         set destination engine boots/time
  26. General communication options
  27.   -r RETRIES            set the number of retries
  28.   -t TIMEOUT            set the request timeout (in seconds)
  29. Debugging
  30.   -d                    dump input/output packets in hexadecimal
  31.   -D[TOKEN[,...]]       turn on debugging output for the specified TOKENs
  32.                            (ALL gives extremely verbose debugging output)

Podemos encontrar la información de la página de man.

Vamos a ver la información mostrada de un servidor virtual con Centos 7, para ello debemos utilizar la versión de snmp, que debe ser la versión 2, además de la comunidad que tengamos configurada en el host.

  1. [root@servcentos1 ~]# snmpwalk -v 2c -c public localhost
  2. SNMPv2-MIB::sysDescr.0 = STRING: Linux servcentos1 3.10.0-862.14.4.el7.x86_64 #1 SMP Wed Sep 26 15:12:11 UTC 2018 x86_64
  3. SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
  4. DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1124) 0:00:11.24
  5. SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
  6. SNMPv2-MIB::sysName.0 = STRING: servcentos1
  7. SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf)
  8. SNMPv2-MIB::sysORLastChange.0 = Timeticks: (25) 0:00:00.25
  9. SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDCompliance
  10. SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
  11. SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
  12. SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB
  13. SNMPv2-MIB::sysORID.5 = OID: TCP-MIB::tcpMIB
  14. SNMPv2-MIB::sysORID.6 = OID: IP-MIB::ip
  15. SNMPv2-MIB::sysORID.7 = OID: UDP-MIB::udpMIB
  16. SNMPv2-MIB::sysORID.8 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
  17. SNMPv2-MIB::sysORID.9 = OID: SNMP-NOTIFICATION-MIB::snmpNotifyFullCompliance
  18. SNMPv2-MIB::sysORID.10 = OID: NOTIFICATION-LOG-MIB::notificationLogMIB
  19. SNMPv2-MIB::sysORDescr.1 = STRING: The MIB for Message Processing and Dispatching.
  20. SNMPv2-MIB::sysORDescr.2 = STRING: The management information definitions for the SNMP User-based Security Model.
  21. SNMPv2-MIB::sysORDescr.3 = STRING: The SNMP Management Architecture MIB.
  22. SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for SNMPv2 entities
  23. SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing TCP implementations
  24. SNMPv2-MIB::sysORDescr.6 = STRING: The MIB module for managing IP and ICMP implementations
  25. SNMPv2-MIB::sysORDescr.7 = STRING: The MIB module for managing UDP implementations
  26. SNMPv2-MIB::sysORDescr.8 = STRING: View-based Access Control Model for SNMP.
  27. SNMPv2-MIB::sysORDescr.9 = STRING: The MIB modules for managing SNMP Notification, plus filtering.
  28. SNMPv2-MIB::sysORDescr.10 = STRING: The MIB module for logging SNMP Notifications.
  29. SNMPv2-MIB::sysORUpTime.1 = Timeticks: (25) 0:00:00.25
  30. SNMPv2-MIB::sysORUpTime.2 = Timeticks: (25) 0:00:00.25
  31. SNMPv2-MIB::sysORUpTime.3 = Timeticks: (25) 0:00:00.25
  32. SNMPv2-MIB::sysORUpTime.4 = Timeticks: (25) 0:00:00.25
  33. SNMPv2-MIB::sysORUpTime.5 = Timeticks: (25) 0:00:00.25
  34. SNMPv2-MIB::sysORUpTime.6 = Timeticks: (25) 0:00:00.25
  35. SNMPv2-MIB::sysORUpTime.7 = Timeticks: (25) 0:00:00.25
  36. SNMPv2-MIB::sysORUpTime.8 = Timeticks: (25) 0:00:00.25
  37. SNMPv2-MIB::sysORUpTime.9 = Timeticks: (25) 0:00:00.25
  38. SNMPv2-MIB::sysORUpTime.10 = Timeticks: (25) 0:00:00.25
  39. HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (19721) 0:03:17.21
  40. HOST-RESOURCES-MIB::hrSystemUptime.0 = No more variables left in this MIB View (It is past the end of the MIB tree)

Para ver únicamente la información de un solo OID

  1. [root@servcentos1 ~]# snmpwalk -v 2c -c public localhost SNMPv2-MIB::sysLocation.0
  2. SNMPv2-MIB::sysLocation.0 = STRING: Barcelona
  3. [root@servcentos1 ~]# snmpwalk -v 2c -c public localhost SNMPv2-MIB::sysName.0
  4. SNMPv2-MIB::sysName.0 = STRING: servcentos1
  5. [root@servcentos1 ~]# snmpwalk -v 2c -c public localhost SNMPv2-MIB::sysContact.0
  6. SNMPv2-MIB::sysContact.0 = STRING: davidochobits@colaboratorio.net

Si queremos ver el OID numérico por cada valor SNMP, usamos el parámetro “-O n”, muy útil para Cacti, ya que solo nos devuelve el valor OID numérico.

  1. [root@servcentos1 ~]# snmpwalk -v 2c -O n -c public localhost SNMPv2-MIB::sysLocation.0
  2. .1.3.6.1.2.1.1.6.0 = STRING: Barcelona
  3. [root@servcentos1 ~]# snmpwalk -v 2c -O n -c public localhost SNMPv2-MIB::sysName.0
  4. .1.3.6.1.2.1.1.5.0 = STRING: servcentos1
  5. [root@servcentos1 ~]# snmpwalk -v 2c -O n -c public localhost SNMPv2-MIB::sysContact.0
  6. .1.3.6.1.2.1.1.4.0 = STRING: davidochobits@colaboratorio.net

También podemos utilizar el valor OID para refinar los resultados.

  1. [root@servcentos1 ~]# snmpwalk -v 2c -O n -c public localhost .1.3.6.1.2.1.1.6.0
  2. .1.3.6.1.2.1.1.6.0 = STRING: Barcelona
  3. [root@servcentos1 ~]# snmpwalk -v 2c -O n -c public localhost .1.3.6.1.2.1.1.5.0
  4. .1.3.6.1.2.1.1.5.0 = STRING: servcentos1
  5. [root@servcentos1 ~]# snmpwalk -v 2c -O n -c public localhost .1.3.6.1.2.1.1.4.0
  6. .1.3.6.1.2.1.1.4.0 = STRING: davidochobits@colaboratorio.ne

Como hemos visto, con esta herramienta podemos obtener la información SNMP deseada, para así crear gráficas en Cacti para que nos muestre la información deseada.

M00nie.com – How to install and use snmpwalk