miércoles, 28 de noviembre de 2012

[VBS] schtasks.exe y Nagios


Siguiendo con un caso práctico, me veo en la necesidad de monitorizar el estado de las tareas programadas en un servidor. Está controlado por Nagios, así que haré uso de NRPE. Buscando en la BBDD de los plugins de Nagios, he encontrado un par, pero el principal problema es que, o bien estaba en Francés, o que no había suficiente información de como utilizarlo. Además, no me gustaba como funcionaban.

Tirando otra vez de vbs, he creado otro script tomando como patrón el que posteé anteriormente sobre perfmon. También me encontré con problemas utilizando los providers de Windows referentes a las schelude tasks así que me las ingenié con el comando schtasks.exe. El funcionamiento es simple: guardo el resultado del comando en un txt, recorto las lineas hasta quedarme con la columna "Estado", y busco si coincide con algún error. En este caso busca un "No " ( mirando el estado de tareas fallidas ), y devolverá un valor u otro.




Más tarde como ya expliqué en otro post, hay que añadir la linea correspondiente en el nsc.ini:
check_schtasks=cscript /nologo "C:\Program Files\NSClient++\scripts\tasks.vbs" -f "Resultado de la ejecución %f".

Crear el servicio al host correspondiente en Nagios y probar su funcionamiento.

En este caso no le pasamos ningún valor de warning o critical, simplemente dependiendo del output, se interpretará en Nagios como correcto o error, por lo que hay que pasar siempre la variable -f "Mensaje %f"

4 comentarios:

  1. Buenas, No entiendo el funcionamiento de pasar la variable Mensaje
    Un saludo.

    ResponderEliminar
  2. Hola,
    La variable "Mensaje" en si hace referencia al texto personalizado que va a devolver el script. Cuando se de un valor que definimos con error o crítico (1), devolverá "1 - Fallo de ejecucion." que en este caso, para la salida he puesto "Resultado de la ejecución %f", donde "Resultado de la ejecución" sería el mensaje personalizado y %f sería el valor que devuelve el script, en este caso "1 - Fallo de ejecucion."

    En Nagios aparecerá : "Resultado de la ejecución 1 - Fallo de ejecución."

    Espero haber aclarado tu duda.

    Un saludo.

    ResponderEliminar
  3. a la hora den ejecutarlo me manda Error al procesar los argumentos..

    lo pruebo asi

    cscript /nologo "C:\Program Files\NSClient++\scripts\tasks.vbs" -f "Resultado de la ejecución %f"


    de antemano gracias

    ResponderEliminar
  4. Buenos días,

    Estoy intentando reproducir el error pero no lo consigo. Al parecer falla la entrada de argumentos. ¿El script está correctamente copiado?.
    Puedes probar de cambiar el argumento -f por algo que no contenga guiones, por ejemplo la "f" sin guiones. Debes cambiarlo en la linea 6, únicamente tienes que borrar el guión y ejecutarlo como me lo has escrito en tu comentario pero sin la f.

    De todas formas no te recomiendo que uses este script con la finalidad con la que lo describo ya que he detectado que no es 100% eficaz para monitorizar las tareas programadas.

    Saludos.

    ResponderEliminar