Monitorizar impresoras HP LaserJet Pro 1606 y Samsung CLP-620 en Nagios

Tratando de configurar la monitorización con Nagios de la impresora HP LaserJet Pro 1606, descubro que el plugin por defecto para las HP JetDirect (check_hpjd) no funciona, da el siguiente error:

[sourcecode language=”plain” gutter=”off”]

# /usr/lib/nagios/plugins/check_hpjd -H printerIP -C public
Error in packet ()

[/sourcecode]

Así que he buscado otro plugin en el repositorio de Nagios por un plugin que soporte la monitorización de impresoras mediante el protocolo SNMP. Después de probar varios, me decidí por check_snmp_printer, principalmente por su facilidad
de uso. Las principales funciones del script permiten consultar el estado de los consumibles  (toners, para cada color, transfer y fuser), el modelo de impresora, el número total de páginas impresas y el estado de las bandejas de papel. De éstas, a mí sólo me interesa el estado de los tóners.

Para usar el script hay que indicar la IP o nombre de la impresora, la comunidad SNMP a la que acceder y el tipo de consulta que queremos hacer, de las disponibles:

MESSAGES: logs de estado
MODEL: modelo exacto de la impresora
CONSUM TEST: nombre exacto de los consumibles instalados en la impresora
CONSUM ALL: estado de todos los consumibles
CONSUM <String>: preguntar por un consumible en particular
PAPER1: estado de papel de la bandeja 1
PAPER2: idem, bandeja 2
PAPER3: idem, bandeja 3
PAGECOUNT: número total de páginas impresas

De éstos, como ya he adelantado, me interesan
los consumibles. Con CONSUM ALL nos devuelve el estado, ya normalizado para Nagios con su estado (OK, WARNING, CRITICAL), de cada uno de los consumibles. Añadirlo a Nagios, pues, es muy simple. Lo primero es copiar el script al directorio de plugins de Nagios (en openSUSE, /usr/lib/nagios/plugins/) y definir una nueva orden en command.cfg :

[sourcecode language=”plain” gutter=”off” title=”# command.cfg”]

########################
### check toner level
### SNMP printers
define command{
command_name check_toner_level
command_line $USER1$/check_snmp_printer  $HOSTADDRESS$ public CONSUM ALL
}

[/sourcecode]

Se define una nueva orden, de nombre “check_toner_level” que preguntará a la impresora a través de la comunidad SNMP public (puede que necesites cambiar esto, yo lo he hecho fijo porque mis impresoras
es la que utilizan) por el estado de todos los consumibles.

Sólo queda definir las impresoras. Las vamos a crear, como parece razonable, en el fichero printer.cfg:

[sourcecode language=”plain” title=”# printer.cfg” gutter=”off”]

define host{
use             generic-printer         ; Inherit default values from a template
host_name       condensada              ; The name we’re giving to this printer
alias           HP LaserJet Pro 1606    ; A longer name associated with the printer
address         192.168.34.25                ; IP address of the printer
hostgroups      network-printers        ; Host groups this printer is associated with
}

define service{
use                     generic-service         ; Inherit values from a template
host_name               condensada              ; The name of the host the service is associated with
service_description     Toner Level             ; The service description
check_
command           check_toner_level       ; The command used to monitor the service
normal_check_interval   10      ; Check the service every 10 minutes under normal conditions
retry_check_interval    1       ; Re-check the service every minute until its final/hard state is determined
check_interval          720 # cada 12 hora

}
[/sourcecode]

Con estas líneas hemos definido la impresora condensada y el servicio de consulta de estado de tóner, utilizando la orden que creamos previamente. Podría haber puesto el nombre de la comunidad como parámetro en la llamada a la orden, pero como siempre era public he preferido dejarlo así más simple. De la otra forma, habría que sustituir public por $ARG1$ en la línea de llamada al script y en el servicio check_toner_level!NOMBRECOMUNIDAD.

Si en el fichero nagios.cfg está comentada la línea referente a printers.cfg, la descomentamos. Reiniciamos el servicio y ya deberíamos estar monitorizando el estado de tóner de nuestras impresoras.

Una respuesta a “Monitorizar impresoras HP LaserJet Pro 1606 y Samsung CLP-620 en Nagios”

Los comentarios están cerrados.