Después de varias semanas sin publicar ningún artículo hoy os vamos a hablar del comando snmpwalk, una orden que nos devuelve una matriz con los códigos OID y su valor. El valor de un código OID nos devuelve información del dispositivo cómo el número de serie, el tiempo que el dispositivo lleva encendido.

En nuestro caso vamos a monitorizar impresoras y os queremos explicar la relación que se cumple entre el valor del OID que indica el tipo de consumible y el valor OID del estado actual de dicho consumible. Para ello hacemos un snmpwalk indicando la IP de la impresora y el OID a partir del cual empezaremos a ejecutar el comando, en nuestro caso el .1.3.6.1.2.1.43.11.1.1:

[root@localhost libexec]# snmpwalk -c public -v 1 172.28.5.200 .1.3.6.1.2.1.43.11.1.1

SNMPv2-SMI::mib-2.43.11.1.1.2.1.1 = INTEGER: 1

SNMPv2-SMI::mib-2.43.11.1.1.2.1.2 = INTEGER: 1

SNMPv2-SMI::mib-2.43.11.1.1.2.1.3 = INTEGER: 1

SNMPv2-SMI::mib-2.43.11.1.1.2.1.4 = INTEGER: 1

SNMPv2-SMI::mib-2.43.11.1.1.2.1.5 = INTEGER: 1

SNMPv2-SMI::mib-2.43.11.1.1.3.1.1 = INTEGER: 1

SNMPv2-SMI::mib-2.43.11.1.1.3.1.2 = INTEGER: 2

SNMPv2-SMI::mib-2.43.11.1.1.3.1.3 = INTEGER: 3

SNMPv2-SMI::mib-2.43.11.1.1.3.1.4 = INTEGER: 4

SNMPv2-SMI::mib-2.43.11.1.1.3.1.5 = INTEGER: 0

SNMPv2-SMI::mib-2.43.11.1.1.4.1.1 = INTEGER: 3

SNMPv2-SMI::mib-2.43.11.1.1.4.1.2 = INTEGER: 3

SNMPv2-SMI::mib-2.43.11.1.1.4.1.3 = INTEGER: 3

SNMPv2-SMI::mib-2.43.11.1.1.4.1.4 = INTEGER: 3

SNMPv2-SMI::mib-2.43.11.1.1.4.1.5 = INTEGER: 4

SNMPv2-SMI::mib-2.43.11.1.1.5.1.1 = INTEGER: 3

SNMPv2-SMI::mib-2.43.11.1.1.5.1.2 = INTEGER: 3

SNMPv2-SMI::mib-2.43.11.1.1.5.1.3 = INTEGER: 3

SNMPv2-SMI::mib-2.43.11.1.1.5.1.4 = INTEGER: 3

SNMPv2-SMI::mib-2.43.11.1.1.5.1.5 = INTEGER: 4

SNMPv2-SMI::mib-2.43.11.1.1.6.1.1 = STRING: "Black Toner"

SNMPv2-SMI::mib-2.43.11.1.1.6.1.2 = STRING: "Cyan Toner"

SNMPv2-SMI::mib-2.43.11.1.1.6.1.3 = STRING: "Magenta Toner"

SNMPv2-SMI::mib-2.43.11.1.1.6.1.4 = STRING: "Yellow Toner"

SNMPv2-SMI::mib-2.43.11.1.1.6.1.5 = STRING: "Waste Toner"

SNMPv2-SMI::mib-2.43.11.1.1.7.1.1 = INTEGER: 19

SNMPv2-SMI::mib-2.43.11.1.1.7.1.2 = INTEGER: 19

SNMPv2-SMI::mib-2.43.11.1.1.7.1.3 = INTEGER: 19

SNMPv2-SMI::mib-2.43.11.1.1.7.1.4 = INTEGER: 19

SNMPv2-SMI::mib-2.43.11.1.1.7.1.5 = INTEGER: 19

SNMPv2-SMI::mib-2.43.11.1.1.8.1.1 = INTEGER: 100

SNMPv2-SMI::mib-2.43.11.1.1.8.1.2 = INTEGER: 100

SNMPv2-SMI::mib-2.43.11.1.1.8.1.3 = INTEGER: 100

SNMPv2-SMI::mib-2.43.11.1.1.8.1.4 = INTEGER: 100

SNMPv2-SMI::mib-2.43.11.1.1.8.1.5 = INTEGER: 100

SNMPv2-SMI::mib-2.43.11.1.1.9.1.1 = INTEGER: 90

SNMPv2-SMI::mib-2.43.11.1.1.9.1.2 = INTEGER: 100

SNMPv2-SMI::mib-2.43.11.1.1.9.1.3 = INTEGER: 50

SNMPv2-SMI::mib-2.43.11.1.1.9.1.4 = INTEGER: 30

SNMPv2-SMI::mib-2.43.11.1.1.9.1.5 = INTEGER: -3

Podemos ver que en los OID's del .6.1.1 al .6.1.5 indica el nombre de los consumibles que tiene esta impresora, la capacidad de estos consumibles vemos que reflejan a partir del OID 9.11 hasta el 9.15 y este valor está expresarlo en %.

Ésta fórmula se cumple en cualquier impresora de cualquier marca, la única diferencia es que según la impresora tendrá más o menos consumibles. Por ejemplo una impresora a blanco y negro no aparecerán los OID's de los consumibles de color.

Os dejamos un ejemplo del comando snmpawalk usado en un plugin de Nagios que revisa el estado de los toners de una impresora (OKI en el ejemplo):

[root@localhost libexec]# ./check_oki_levels.php H=172.18.1.100 t=public C=10 CRITICAL - Black Toner <90%>, Cyan Toner <100%>, Magenta Toner <50%>, Yellow Toner <30%>, Waste Toner <-3%>

Este plugin basado en snmpwalk puede usarse en todas las plataformas basadas en Nagios.