Nagios – Comprobando la Hora en máquinas Windows
Si queremos verificar el tiempo que tenemos de diferencia entre una máquina Windows y la hora que tiene su Directorio Activo, este es tu documento! Podremos comprobar con el siguiente script la diferencia de hora en milisegundos que tenemos, es super útil para comprobar un servicio tan crítico como es la Hora, y que todas nuestras máquinas la tengan perfectamente sincronizada!
En principio nos basaremos en el siguiente script ‘check_ad_time.vbs’, un Visual Basic script que fácilmente podremos ejecutar en remoto con NRPE, os lo podéis bajar de aquí: https://exchange.nagios.org/directory/Plugins/Operating-Systems/Windows-NRPE/check_ad_time-2Evbs/details
Pero en mi caso tuve que modificar dicho script ya que en máquinas Windows en Español me daba problemas y realmente no funcionaba, os lo dejo en este enlace por si preferís bajar este fichero corregido. Lo dicho, podremos usar este sencillo script para verificar la diferencia horaria entre una máquina Windows contra un controlador de dominio o directamente contra un servidor de hora NTP bien interno o público. Lo ejecutaremos de forma remota mediante NRPE, por tanto, si no has seguido previamente dicho documento, te recomiendo su lectura!
Descargamos check_ad_time.vbs, normalmente en el directorio ‘C:\Program Files\NSClient++\scripts’, editamos el fichero ‘nsclient.ini’ para agregar la siguiente configuración, donde definiremos el alias y luego el script que ejecutará. Llamará al vbs y le pasará 2 argumentos, el primero es contra qué lo checkea y el segundo el tiempo máximo de diferencia, mirará el offset en segundos. Podremos probarlo primeramente desde un CMD, si queremos claro!
[sourcecode][/settings/external scripts/scripts]
tiempo = cscript.exe //T:30 //NoLogo scripts\check_ad_time.vbs $ARG1$ "$ARG2$"
[/settings/external scripts/alias]
tiempo = tiempo[/sourcecode]
Grabamos el fichero y reiniciamos el servicio NSClient ++.
Y nada, ya desde Centreon, deberemos crear el Servicio que monitorizará esto y relacionarlo con el Host donde lo ejecutará, que deberían de ser todas las maquinas Windows que nos interese. “Configuration” > “Services” > “Add…” o como siempre, lo más comodo duplicar uno existente que sea similar. Configuramos al menos las siguientes opciones del servicio:
- Description: Le indicamos el nombre con el que le veremos desde la monitorización, yo le llamo por ejemplo ‘Sync Hora’.
- Linked with Hosts: Lo dicho, los equipos donde ejecutaremos ese script de VBS para monitorizar.
- Template: Normalmente, seleccionamos ‘generic-active-service-custom’.
- Check Command: Seleccionamos de la lista de comandos, ‘check_nrpe’.
- Args: Pasamos el alias del script que ejecutará seguido de los argumentos. En mi caso sería algo así ‘tiempo -a dominio.lan 0.01’
Guardamos con “Save”,
Y bueno, tras guardar, exportar y recargar la configuración, como ya estamos cansados de hacerlo… 😉 bastará ya sólo con ir a la vista de monitorización y comprobar que este checkeo que acabamos de generar nos funciona! “Monitoring” > “Status details” y filtramos la vista por el Host o el Servicio y veremos tras unos minutos que se ejecuta de forma perfecta! Con esto ya tenemos algo tan fundamental como es el servicio de hora totalmente controlado en nuestras máquinas, cualquier desfase nos enteraremos evitando posibles fallos de servicio en nuestro negocio!