Cómo monitorizar un servidor de actualizaciones WSUS (Windows Server Update Services) mediante el sistema de monitorización Pandora FMS. Indicamos todos los requisitos y todos los pasos a seguir. También dejamos la descarga del script Python para conexión a SQL Server de WSUS.

Requisitos para monitorización de WSUS Windows Server Update Services mediante Pandora FMS

A continuación, indicamos todos los elementos necesarios para monitorizar un servidor Windows Server Update Services (WSUS) mediante Pandora FMS.

Pandora FMS Server

En primer lugar, necesitaremos disponer de un servidor de monitorización con Pandora FMS Server, en los siguientes enlaces indicamos cómo desplegarlo en Linux y en Docker:

Habilitar base de datos Microsoft SQL Server para acceso externo

Dado que los datos de WSUS se almacenan en un servidor de base de datos SQL Server, necesitaremos acceso a este servidor y a su base de datos WSUS correspondiente. Todos los datos que se monitorizarán en Pandora FMS se obtendrán de esta base de datos.

Si la base de datos SQL Server está en el propio servidor WSUS y si vamos a realizar la monitorización dentro del propio servidor WSUS, instalando el agente de Pandora FMS en el propio servidor WSUS, no tendremos que habilitar el motor de base de datos SQL Server para acceso externo. Por lo que nos saltaremos el siguiente paso.

Si, por el contrario, vamos a realizar la monitorización de WSUS desde otro equipo externo, necesitaremos habilitar el acceso remoto a la base de datos SQL Server. Para ello, seguiremos las instrucciones del siguiente tutorial:

Scripts Python con código para acceso a servidor SQL Server de WSUS

A continuación, mostramos el código fuente completo, de los ficheros en Python, para generar el ejecutable (script) que obtendrá todos los datos a monitorizar en el servidor SQL Server de WSUS. Todos los ficheros (incluido el ejecutable wsus.exe listo para usarse) están disponibles gratuitamente en el siguiente enlace:

Fichero wsusbd.py con la clase Python WSUSBD para conexión al servidor de SQL Server y métodos de ejecución de sentencias SQL:

Fichero arg.py con la clase Python Argumentos para mostrar los argumentos que admite la aplicación y para obtener los que el usuario pase por la línea de comandos:

Fichero pandora.py con la clase Python Pandora. Esta clase será la encargada de mostrar por consola los valores pasados como argumento en formato XML Tentacle de Pandora FMS:

Fichero consultasWSUS.py con la clase Python CWSUS. Esta será la clase que ejecutará las sentencias SQL (mediante la clase WSUSBD) necesarias para obtener los distintos valores que se monitorizarán (número de equipos con estado de Failed, Needed, Installed, Not Installed o Downloaded, equipos con número de días de última sincronización, etc.). También ejecutará los métodos necesarios (de la clase Pandora) para mostrar los valores obtenidos por consola en formato XML Tentacle de Pandora FMS:

Fichero wsus.py. Fichero principal de la aplicación, que ejecutará el programa usando las clases anteriores:

Crearemos estos ficheros en una misma carpeta y, por comodidad, generaremos el ejecutable que los empaquete todos, siguiendo estas instrucciones:

Ejecutaremos el siguiente comando desde la carpeta donde tengamos todos los ficheros anteriores:

Lo que nos generará el ejecutable «wsus.exe» que quedará listo para pasarlo a la carpeta «util» de Pandora Agent, como indicamos a continuación.

Añadir módulos a Pandora Agent en equipo servidor WSUS

Si optamos por instalar Pandora Agent en el propio servidor que contiene el rol de WSUS y su base de datos SQL Server, sólo tendremos que pegar el fichero wsus.exe generado anteriormente en la subcarpeta «util» de la carpeta donde hayamos instalado Pandora Agent. Por defecto suele ser:

C:\Program Files\pandora_agent\util

Editaremos el fichero pandora_agent.conf, ubicado en la carpeta de instalación de Pandora Agent:

Y añadiremos las siguientes líneas, cambiando, como es lógico, los siguientes valores por los del equipo servidor WSUS y su bd SQL Server:

  • SERVERWSUS: nombre de red o dirección IP del servidor con el rol WSUS y la BD de SQL Server (si está en el mismo, si no, el nombre del equipo con la BD de SQL Server).
  • WSUSDB: nombre de la instancia de SQL Server correspondiente a la BD de WSUS.
  • 1433: puerto que hayamos establecido para la conexión externa a SQL Server.
  • usuario_sql_server: nombre del usuario de SQL Server con permisos de lectura (SELECT) de las tablas necesarias para obtener los datos.
  • Contraseña_Usuario: contraseña del usuario de SQL Server anterior.
  • SUSBD: NO se indicará la base de datos si el usuario SQL Server utilizado tiene asignada la base de datos de WSUS por defecto, que es lo recomendable.
  • El resto de parámetros podremos modificarlos para adaptarlos a nuestras necesiadades, son los que indican qué datos obtener y qué nombre y descripción asignar al módulo correspondiente del agente de Pandora FMS. Los posibles son:
    • one: obtiene el número total de equipos en WSUS.
    • onee: obtiene el número de equipos con estado «Failed».
    • onei: obtiene el número de equipos con estado «Installed».
    • oned: obtiene el número de equipos con estado «Downloaded».
    • oneni: obtiene el número de equipos con estado «Not Installed».
    • onen: obtiene el número de equipos con estado «Needed».

Añadiremos todas las líneas que deseemos para generar los módulos/sondas/sensores correspondientes en Pandora FMS. Guardaremos los cambios en el fichero pandora_agent.conf.

Para aplicar los cambios, podremos reiniciar el servicio de Pandora Agent, ejecutando el script «restart_pandora_agent.bat» de la carpeta «scripts»:

Transcurridos unos segundos, accederemos a la consola web de Pandora FMS y al agente correspondiente al servidor WSUS, veremos que nos ha agregado los módulos y sus valores WSUS indicados en el fichero pandora_agent.conf:

Añadir módulos a Pandora Agent mediante Broker en equipo externo a WSUS

Si preferimos monitorizar el servidor WSUS externamente, desde otro equipo de la red, podremos hacerlo mediante un broker. Para ello, una vez instalado Pandora Agent en el equipo remoto (debe tener acceso al servidor de SQL Server de WSUS, como indicamos en este apartado), en la carpeta donde hayamos instalado Pandora Agent y donde tengamos el fichero pandora_agent.conf, añadiremos un nuevo fichero mediante un editor de texto plano, con el siguiente contenido:

Teniendo en cuenta los siguientes valores y su significado:

  • 192.168.1.150: cambiaremos esta IP por la dirección IP del servidor con Pandora FMS Server.
  • SERVERWSUS: cambiaremos este valor por el nombre de red (nombre de DNS o hostname) del servidor con WSUS.
  • 192.168.1.160: cambiaremos este valor por la dirección IP del servidor con WSUS.
  • En el resto de líneas del fichero, las que generan los módulos en el agente SERVERWSUS (servidor de WSUS), cambiaremos, como hemos explicado el punto anterior, los valores:
    • SERVERWSUS: nombre de red o dirección IP del servidor con el rol WSUS y la BD de SQL Server (si está en el mismo, si no, el nombre del equipo con la BD de SQL Server).
    • WSUSDB: nombre de la instancia de SQL Server correspondiente a la BD de WSUS.
    • 1433: puerto que hayamos establecido para la conexión externa a SQL Server.
    • usuario_sql_server: nombre del usuario de SQL Server con permisos de lectura (SELECT) de las tablas necesarias para obtener los datos.
    • Contraseña_Usuario: contraseña del usuario de SQL Server anterior.
    • SUSBD: NO se indicará la base de datos si el usuario SQL Server utilizado tiene asignada la base de datos de WSUS por defecto, que es lo recomendable.

Guardaremos el contenido anterior en un fichero con el nombre wsus.conf, como hemos indicado, en la carpeta de instalación de Pandora FMS Agent.

Para ejecutar este broker y generar el agente «virtual» externo en Pandora FMS Server, en nuestro caso, con el nombre SERVERWSUS, editaremos el fichero pandora_agen.conf, ubicado en la carpeta de instalación de Pandora Agent y añadiremos la siguiente línea:

Guardaremos los cambios en el fichero pandora_agent.conf y reiniciaremos el servicio de Pandora Agent para que el broker cree el agente SERVEWSUS en Pandora FMS Server con los módulos indicados en el fichero wsus.conf:

Transcurridos unos segundos, en la consola de gestión web de Pandora FMS nos aparecerá el agente SERVERWSUS (el nombre del agente que hayamos establecido), si no lo teníamos ya dado de alta. Aparecerá con los nuevos módulos de monitorización de WSUS indicados en el fichero wsus.conf:

Posibles errores y su solución

20009 DB-Lib error message 20009 severity 9: Unable to connect:
Adaptive Server is unavailable or does not exist (SERVIDOR_SQL_SERVER)
Net-Lib error during Unknown error (10060)

Este error es muy genérico y puede ser debido a diversos motivos, algunos de ellos:

  • En una conexión remota al servidor SQL Server desde un equipo de la red: cuando no se ha abierto el puerto de SQL Server en el cortafuegos del equipo Windows que contiene la base de datos. Este error se soluciona añadiendo una regla, como hemos indicando en este apartado y abriendo el puerto correspondiente en el cortafuegos.
  • Otro motivo de este error puede ser que el servicio de SQL Server no esté activo o bien que no estemos introduciendo el nombre de la instancia de SQL Server correcta en la cadena de conexión. En este caso, revisaremos que el servicio de SQL Server esté activo en el servidor y revisaremos la cadena de conexión o el código de conexión, para asegurarnos de que estamos introduciendo el nombre de la instancia correcto. El nombre de la instancia suele ser Nombre_Servidor\Nombre_Instancia, para una instalación estándar, el nombre de la instancia por defecto es MSSQLSERVER.
  • Otra posibilidad es que no estén habilitada correctamente la configuración TCP/IP de la instancia de SQL Server. Esto se puede solucionar siguiendo los pasos de este apartado del tutorial que nos ocupa.