Sie sind auf Seite 1von 7

Introduccin a las rdenes SNMP bsicas

Enrique de la Hoz de la Hoz 22 de enero de 2004

1. snmpget
La rden snmpget se puede utilizar para obtener datos de un host remoto dado su nombre de host, la informacin y un OID. Como ejemplo veamos la siguiente rden:
# snmpget -c public -v 2c localhost system.sysUpTime.0 SNMPv2-MIB::sysUpTime.0 = Timeticks: (326510) 0:54:25.10

En la rden anterior, localhost es el nombre del equipo con el que queremos hablar, utilizando la comunidad SNMP public y solicitamos el valor del OID system.sysUpTime.0. Todas las utilidades que vamos a ver permiten utilizar abreviaturas de OID y realizan bsquedas de la porcin pasada como argumento en todo el arbol por defecto para facilitar la tarea al usuario. De este modo podemos utilizar simplemente una porcin del OID si as lo deseramos:
# snmpget -c public -v 2c localhost sysUpTime.0 SNMPv2-MIB::sysUpTime.0 = Timeticks: (326510) 0:54:25.10

Un error habitual cuando utilizamos esta rden es olvidar poner el ndice en los datos que estamos buscando. En las rdenes anteriores, la variable solicitada es un escalar y el ndice de los datos escalares es siempre un simple 0, de ah el .0 en todos los OIDs anteriores. Si lo hubiramos olvidado hubiramos obtenido un error que es diferente en funcin de si estamos utilizando una versin u otra de SNMP:
# snmpget -c public -v 1 localhost system.sysUpTime Error in packet Reason: (noSuchName) There is no such variable name in this MIB. Failed object: SNMPv2-MIB::sysUpTime # snmpget -c public -v 2c localhost system.sysUpTime SNMPv2-MIB::sysUpTime = No Such Instance currently exists at this OID

Se pueden realizar mltiples consultas en una nica rden:


snmpget -c public -v 2c localhost system.sysUpTime.0 system.sysName.0 SNMPv2-MIB::sysUpTime.0 = Timeticks: (390447) 1:05:04.47 SNMPv2-MIB::sysName.0 = STRING: mago.aut.uah.es

2. snmptranslate
Esta rden es una herramiente muy poderosa que permite explorar el rbol MIB de diversas formas desde la lnea de rdenes. Su forma ms bsica permite pasar de un OID a la variable que representa (representacin textual):
#snmptranslate .1.3.6.1.2.1.1.3.0 SNMPv2-MIB::sysUpTime.0

Tambin permite pasar del nombre de la variable al OID que representa:


#snmptranslate -On SNMPv2-MIB::system.sysUpTime.0 .1.3.6.1.2.1.1.3.0

La variable que pasamos como argumento a snmptranslate se puede expresar en cualquier formato numrico, texto o una mezcla de ambos. El ag -On simplemente sirve para indicar que queremos la salida en formato de OID:
#snmptranslate .iso.3.6.1.private.enterprises.2021.2.1.prNames.0 UCD-SNMP-MIB::prNames.0 #snmptranslate -On .iso.3.6.1.private.enterprises.2021.2.1.prNames.0 .1.3.6.1.4.1.2021.2.1.2.0

Hay ocasiones en que no recordamos el OID completo que estamos buscando. En esos casos es til la opcin -IR permite realizar bsquedas del OID completo si conocemos parte del mismo:
# snmptranslate sysUpTime.0 sysUpTime.0: Unknown Object Identifier (Sub-id not found: (top) ->sysUpTime) # snmptranslate -IR sysUpTime.0 SNMPv2-MIB::sysUpTime.0

Puede que, incluso, ni siquiera conozcamos el nombre completo del OID sino slo una parte del mismo. En ese caso puede ser til la opcin -Ib (b del ingls best match) que nos da el OID que se concuerde con el patrn que le indicamos. Los patrones son similares a los que vimos en la introduccin a Linux: # snmptranslate -Ib sys.*ime SNMPv2-MIB::sysORUpTime Para obtener una lista de todos los nodos que se ajustan a un patrn determinado utilizamos el ag -TB:
#snmptranslate -TB vacm.*table SNMP-VIEW-BASED-ACM-MIB::vacmViewTreeFamilyTable SNMP-VIEW-BASED-ACM-MIB::vacmAccessTable SNMP-VIEW-BASED-ACM-MIB::vacmSecurityToGroupTable SNMP-VIEW-BASED-ACM-MIB::vacmContextTable

Para obtener informacin sobre un determinado nodo del mib podemos utilizar el ag -Td:
# snmptranslate -On -Td -Ib sys.*ime

.1.3.6.1.2.1.1.9.1.4 sysORUpTime OBJECT-TYPE -- FROM SNMPv2-MIB -- TEXTUAL CONVENTION TimeStamp SYNTAX TimeTicks MAX-ACCESS read-only STATUS current DESCRIPTION "The value of sysUpTime at the time this conceptual row was last instantiated." ::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) system(1) sysORTable(9) sysOREntry(1) 4 }

Para nalizar son esta rden, podemos obtener una representacin del rbol, o de una porcin del mismo utilizando el ag -Tp:
# snmptranslate -Tp -IR system +--system(1) | +-- -R-- String sysDescr(1) | Textual Convention: DisplayString | Size: 0..255 +-- -R-- ObjID sysObjectID(2) +-- -R-- TimeTicks sysUpTime(3) +-- -RW- String sysContact(4) | Textual Convention: DisplayString | Size: 0..255 +-- -RW- String sysName(5) | Textual Convention: DisplayString | Size: 0..255 +-- -RW- String sysLocation(6) | Textual Convention: DisplayString | Size: 0..255 +-- -R-- INTEGER sysServices(7) | Range: 0..127 +-- -R-- TimeTicks sysORLastChange(8) | Textual Convention: TimeStamp | +--sysORTable(9) | +--sysOREntry(1) | Index: sysORIndex | +-- ---- INTEGER sysORIndex(1) | Range: 1..2147483647 +-- -R-- ObjID sysORID(2) +-- -R-- String sysORDescr(3) | Textual Convention: DisplayString | Size: 0..255 +-- -R-- TimeTicks sysORUpTime(4) Textual Convention: TimeStamp

3. snmgetnext
Esta rden es similar al comando snmpget se utiliza para obtenet el siguiente oid en el rbol de datos del mib. En lugar de obtener los datos que se solicitan directamente, devuelve el siguiente OID en el rbol y su valor:
SNMPv2-MIB::sysContact.0=STRING:Root<root@localhost>(configure /etc/snmp/snmp.local.conf)

Esta rden tambin se puede utilizar para recorrer de forma manual el rbol de las mib en un host remoto, especicando siempre el ltimo OID aparecido en la lnea de rdenes para la siguiente rden:
snmpgetnext -v 2c -c public localhost system.sysUpTime.0 SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost>(configure /etc/snmp/snmp.local.conf) [root@mago root]# snmpgetnext -v 2c -c public localhost system.sysContact.0 SNMPv2-MIB::sysName.0 = STRING: mago.aut.uah.es [root@mago root]# snmpgetnext -v 2c -c public localhost system.sysName.0 SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf)

La rden snmpwalk que veremos a continuacin hace exactamente esto pero de una sola vez. La rden snmgetnext devuelve el valor de un OID del que hayamos olvidado el ndice frente a snmpget que devolva un error:
snmpget -v 2c -c public localhost system.sysUpTime.0 SNMPv2-MIB::sysUpTime.0 = Timeticks: (95862) 0:15:58.62 [root@mago root]# snmpgetnext -v 2c -c public localhost system.sysUpTime SNMPv2-MIB::sysUpTime.0 = Timeticks: (96847) 0:16:08.47

4. snmpwalk
Esta rden realiza una serie completa de getnexts automticamente y se detiene cuando devuelve resultados que no estn en el rango del OID especicado originalmente. Por ejemplo, si quisiramos obtener toda la informacin almacenada en el grupo system del MIB de una mquina podramos hacerlo utilizando esta rden:
# snmpwalk -v 2c -c public localhost system SNMPv2-MIB::sysDescr.0 = STRING: Linux mago.aut.uah.es 2.6.0-test11 #27 Tue Dec 16 11:39:03 CET 2003 i686 SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10 SNMPv2-MIB::sysUpTime.0 = Timeticks: (120246) 0:20:02.46 SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost>(configure /etc/snmp/snmp.local.conf) SNMPv2-MIB::sysName.0 = STRING: mago.aut.uah.es SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf) SNMPv2-MIB::sysORLastChange.0 = Timeticks: (4) 0:00:00.04 SNMPv2-MIB::sysORID.1 = OID: IF-MIB::ifMIB SNMPv2-MIB::sysORID.2 = OID: SNMPv2-MIB::snmpMIB SNMPv2-MIB::sysORID.3 = OID: TCP-MIB::tcpMIB SNMPv2-MIB::sysORID.4 = OID: IP-MIB::ip SNMPv2-MIB::sysORID.5 = OID: UDP-MIB::udpMIB

SNMPv2-MIB::sysORID.6 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup SNMPv2-MIB::sysORID.7 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance SNMPv2-MIB::sysORID.8 = OID: SNMP-MPD-MIB::snmpMPDCompliance SNMPv2-MIB::sysORID.9 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance SNMPv2-MIB::sysORDescr.1 = STRING: The MIB module to describe generic objects for network interface sub-layers SNMPv2-MIB::sysORDescr.2 = STRING: The MIB module for SNMPv2 entities SNMPv2-MIB::sysORDescr.3 = STRING: The MIB module for managing TCP implementations SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for managing IP and ICMP implementations SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing UDP implementations SNMPv2-MIB::sysORDescr.6 = STRING: View-based Access Control Model for SNMP. SNMPv2-MIB::sysORDescr.7 = STRING: The SNMP Management Architecture MIB. SNMPv2-MIB::sysORDescr.8 = STRING: The MIB for Message Processing and Dispatching. SNMPv2-MIB::sysORDescr.9 = STRING: The management information definitions for the SNMP User-based Security Model. SNMPv2-MIB::sysORUpTime.1 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORUpTime.2 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORUpTime.3 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORUpTime.4 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORUpTime.5 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORUpTime.6 = Timeticks: (0) 0:00:00.00 SNMPv2-MIB::sysORUpTime.7 = Timeticks: (4) 0:00:00.04 SNMPv2-MIB::sysORUpTime.8 = Timeticks: (4) 0:00:00.04 SNMPv2-MIB::sysORUpTime.9 = Timeticks: (4) 0:00:00.04

5. snmptable
Esta rden muestra una tabla SNMP en un formato de las y columnas de manera que su visionado y comprensin es ms sencillo que si utilizamos la rden snmpwalk:
# snmptranslate -Tp -IR sysORTable +--sysORTable(9) | +--sysOREntry(1) | Index: sysORIndex | +-- ---- INTEGER sysORIndex(1) | Range: 1..2147483647 +-- -R-- ObjID sysORID(2) +-- -R-- String sysORDescr(3) | Textual Convention: DisplayString | Size: 0..255 +-- -R-- TimeTicks sysORUpTime(4) Textual Convention: TimeStamp # snmptable -v 2c -Cw 80 -c public localhost sysORTable SNMP table: SNMPv2-MIB::sysORTable

sysORID IF-MIB::ifMIB SNMPv2-MIB::snmpMIB TCP-MIB::tcpMIB IP-MIB::ip UDP-MIB::udpMIB SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance SNMP-MPD-MIB::snmpMPDCompliance SNMP-USER-BASED-SM-MIB::usmMIBCompliance SNMP table SNMPv2-MIB::sysORTable, part 2 sysORDescr The MIB module to describe generic objects for network interface sub-layers The MIB module for SNMPv2 entities The MIB module for managing TCP implementations The MIB module for managing IP and ICMP implementations The MIB module for managing UDP implementations View-based Access Control Model for SNMP. The SNMP Management Architecture MIB. The MIB for Message Processing and Dispatching. The management information definitions for the SNMP User-based Security Model. SNMP table SNMPv2-MIB::sysORTable, part 3 sysORUpTime 0:0:00:00.00 0:0:00:00.00 0:0:00:00.00 0:0:00:00.00 0:0:00:00.00 0:0:00:00.00 0:0:00:00.04 0:0:00:00.04 0:0:00:00.04

6. snmpset
Esta rden se utiliza para modicar informacin en un host. Por cada una de las variables que se quiere establecer, es necesario el OID a actualizar, el tipo de datos de la variable y el valor al que queramos poner la variable. Podemos obtener los tipos de datos vlidos del siguiente modo:
#snmpset -h | tail -4 TYPE: one of i, u, t, a, o, s, x, d, b, n i: INTEGER, u: unsigned INTEGER, t: TIMETICKS, a: IPADDRESS o: OBJID, s: STRING, x: HEX STRING, d: DECIMAL STRING, b: BITS U: unsigned int64, I: signed int64, F: float, D: double

Veamos como consultar, establecer y consultar el nuevo valor de una variable utilizando snmpget y snmpset: 6

#snmpget -v 2c -c public SNMPv2-MIB::sysContact.0 #snmpset -v 2c -c public SNMPv2-MIB::sysContact.0 #snmpget -v 2c -c public SNMPv2-MIB::sysContact.0

localhost = STRING: localhost = STRING: localhost = STRING:

sysContact.0 Root <root@localhost> sysContact.0 s Admin Admin sysContact.0 Admin

Si no se tiene drecehos de escritura sobre un objeto obtendremos un error que diferir en funcin de si estamos utilizando la versin 1 o la versin 2 de SNMP:
# snmpset -v 1 -c public localhost sysName.0 s "alguien" Error in packet. Reason: (noSuchName) There is no such variable name in this MIB. # snmpset -v 2c -c public localhost sysName.0 s "alguien" Error in packet. Reason: notWritable (that object does not support modification)

Das könnte Ihnen auch gefallen