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:
yum install net-snmp-utils
En sistemas DEB como Debian o Ubuntu
apt install snmp
La sintaxis para utilizar snmpwalk es simple y amplia:
# snmpwalk --help
USAGE: snmpwalk [OPTIONS] AGENT [OID]
Version: 5.7.2
Web: http://www.net-snmp.org/
Email: net-snmp-coders@lists.sourceforge.net
OPTIONS:
-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)
Debugging
-d dump input/output packets in hexadecimal
-D[TOKEN[,...]] turn on debugging output for the specified TOKENs
(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.
[root@servcentos1 ~]# snmpwalk -v 2c -c public localhost
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
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1124) 0:00:11.24
SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
SNMPv2-MIB::sysName.0 = STRING: servcentos1
SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf)
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (25) 0:00:00.25
SNMPv2-MIB::sysORID.1 = OID: SNMP-MPD-MIB::snmpMPDCompliance
SNMPv2-MIB::sysORID.2 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
SNMPv2-MIB::sysORID.3 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.5 = OID: TCP-MIB::tcpMIB
SNMPv2-MIB::sysORID.6 = OID: IP-MIB::ip
SNMPv2-MIB::sysORID.7 = OID: UDP-MIB::udpMIB
SNMPv2-MIB::sysORID.8 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
SNMPv2-MIB::sysORID.9 = OID: SNMP-NOTIFICATION-MIB::snmpNotifyFullCompliance
SNMPv2-MIB::sysORID.10 = OID: NOTIFICATION-LOG-MIB::notificationLogMIB
SNMPv2-MIB::sysORDescr.1 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.2 = STRING: The management information definitions for the SNMP User-based Security Model.
SNMPv2-MIB::sysORDescr.3 = STRING: The SNMP Management Architecture MIB.
SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for SNMPv2 entities
SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing TCP implementations
SNMPv2-MIB::sysORDescr.6 = STRING: The MIB module for managing IP and ICMP implementations
SNMPv2-MIB::sysORDescr.7 = STRING: The MIB module for managing UDP implementations
SNMPv2-MIB::sysORDescr.8 = STRING: View-based Access Control Model for SNMP.
SNMPv2-MIB::sysORDescr.9 = STRING: The MIB modules for managing SNMP Notification, plus filtering.
SNMPv2-MIB::sysORDescr.10 = STRING: The MIB module for logging SNMP Notifications.
SNMPv2-MIB::sysORUpTime.1 = Timeticks: (25) 0:00:00.25
SNMPv2-MIB::sysORUpTime.2 = Timeticks: (25) 0:00:00.25
SNMPv2-MIB::sysORUpTime.3 = Timeticks: (25) 0:00:00.25
SNMPv2-MIB::sysORUpTime.4 = Timeticks: (25) 0:00:00.25
SNMPv2-MIB::sysORUpTime.5 = Timeticks: (25) 0:00:00.25
SNMPv2-MIB::sysORUpTime.6 = Timeticks: (25) 0:00:00.25
SNMPv2-MIB::sysORUpTime.7 = Timeticks: (25) 0:00:00.25
SNMPv2-MIB::sysORUpTime.8 = Timeticks: (25) 0:00:00.25
SNMPv2-MIB::sysORUpTime.9 = Timeticks: (25) 0:00:00.25
SNMPv2-MIB::sysORUpTime.10 = Timeticks: (25) 0:00:00.25
HOST-RESOURCES-MIB::hrSystemUptime.0 = Timeticks: (19721) 0:03:17.21
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
[root@servcentos1 ~]# snmpwalk -v 2c -c public localhost SNMPv2-MIB::sysLocation.0
SNMPv2-MIB::sysLocation.0 = STRING: Barcelona
[root@servcentos1 ~]# snmpwalk -v 2c -c public localhost SNMPv2-MIB::sysName.0
SNMPv2-MIB::sysName.0 = STRING: servcentos1
[root@servcentos1 ~]# snmpwalk -v 2c -c public localhost SNMPv2-MIB::sysContact.0
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.
[root@servcentos1 ~]# snmpwalk -v 2c -O n -c public localhost SNMPv2-MIB::sysLocation.0
.1.3.6.1.2.1.1.6.0 = STRING: Barcelona
[root@servcentos1 ~]# snmpwalk -v 2c -O n -c public localhost SNMPv2-MIB::sysName.0
.1.3.6.1.2.1.1.5.0 = STRING: servcentos1
[root@servcentos1 ~]# snmpwalk -v 2c -O n -c public localhost SNMPv2-MIB::sysContact.0
.1.3.6.1.2.1.1.4.0 = STRING: davidochobits@colaboratorio.net
También podemos utilizar el valor OID para refinar los resultados.
[root@servcentos1 ~]# snmpwalk -v 2c -O n -c public localhost .1.3.6.1.2.1.1.6.0
.1.3.6.1.2.1.1.6.0 = STRING: Barcelona
[root@servcentos1 ~]# snmpwalk -v 2c -O n -c public localhost .1.3.6.1.2.1.1.5.0
.1.3.6.1.2.1.1.5.0 = STRING: servcentos1
[root@servcentos1 ~]# snmpwalk -v 2c -O n -c public localhost .1.3.6.1.2.1.1.4.0
.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.