No hay una manera mejor, sino una manera más adecuada.
Con este mantra en la cabeza os vamos a presentar cinco maneras de monitorizar Windows, todas ellas iguales de válidas.
Estas formas de monitorización Windows la consideramos activas, que significa que es el servidor de monitorización quien pregunta al equipo Windows que queremos monitorizar.
Vamos a descartar la monitorización pasiva, que trataremos más adelante en otro post. La monitorización pasiva tiene en cuentas eventos, logs, etc.
1. Con agente
Es quizás la opción más fácil de implantar, y con la que nos alientan los desarrolladores de herramientas. Se trata de instalar un agente (pequeña aplicación) en el sistema operativo.
Con esta aplicación se despliega un servicio y se abre un puerto.
Desde el equipo de monitorización se realizará una conexión a este puerto, y se pedirá al servicio que ejecute una función o script que nos devolverá un resultado o estado del elemento monitorizado.
¿Qué hay que tener en cuenta cuando se aplican políticas de seguridad en el puerto?
- listas de control de acceso
- autentificación
- o cualquier otro método que nos restrinja el acceso al servicio.
También tenemos que pensar en el usuario que ejecuta el servicio. El usuario debe tener permisos suficientes, pero no excesivos.
La ventaja de este sistema es que no implica acciones adicionales más allá de una instalación y configuración de un simple agente.
Otra ventaja es que el uso de recursos a la hora del cálculo de estado. Se necesitan menos recursos en la parte del servidor de monitorización, ya que se ejecuta en el lado del equipo a monitorizar.
Su principal inconveniente es que hay que mantener estos agentes actualizados. Si queremos hacer alguna modificación masiva a todos los equipos, como añadir una nueva funcionalidad, igual nos toca pasarnos por todos los equipos (si no tenemos alguna herramienta de orquestación).
2. Con Powershell
Aquí usaremos Powershell (consola o shell de Windows) para conectarnos desde el servidor de monitorización al equipo Windows que queramos monitorizar.
El principal inconveniente es que muchas plataformas de monitorización emplean Linux. Existe una versión de Microsoft de Powershell para Linux, aunque presenta aún algunas incompatibilidades.
Es una opción solo en caso de que tengamos una herramienta de monitorización basada en Windows.
La gran ventaja: podemos personalizar o hacer los scripts que consideramos. No nos acotaremos a las funcionalidades que nos da un agente. Con esta opción, el límite de lo que queremos monitorizar queda reducido a nuestra imaginación y conocimiento de Powershell.
3. Por SNMP (Simple Network Management Protocol)
SNMP es un protocolo con el que podemos obtener información del sistema mediante consultas a OIDs (identificador de objeto en inglés). Este servicio, aunque es nativo en equipos Microsoft, viene por defecto en los sistemas operativos sin activar. Su instalación y configuración es sencilla.
La principal pega de esta forma es que nos limitamos a los OIDs que nos ofrece Microsoft. Si queremos monitorizar cosas más detalladas quizás no dispongamos de los OIDs.
Al igual que con el agente (y con el resto de los protocolos) deberemos añadir todas las capas de seguridad que podamos.
Como parte negativa nos aporta menos funcionalidades que un agente y casi el mismo trabajo.
4. Por WMI (Windows Management Instrumentation)
Se trata de un servicio que por defecto ya tenemos activo en el equipo Windows.
Este servicio se presenta por el puerto 135, puerto habilitado para otras funcionalidades. Aquí nos identificamos con un usuario del sistema (o dominio), que debe tener privilegios suficientes en el propio servidor, para poder lanzar “querys”.
Hemos puesto las “querys” (o consultas) entrecomilladas ya que realmente no tenemos tablas, si no que tenemos “clases”. Estas clases se nos presentan en formato “tabla” con lo que lanzamos una especie de querys.
Realmente el lenguaje utilizado es WMI Query Language (WQL), pero no deja de ser muy parecido al SQL.
Tiene dos inconvenientes importantes, aunque se pueden asumir:
- Hay que configurar un usuario con permisos suficientes (pero no excesivos). Microsoft no es muy claro en eso, ya que los permisos afrentan a diferentes servicios internos.
- Si monitorizas desde una plataforma basada en Linux, se usa WMIC (un binario). Este binario puede no ser compatible con de los protocolos de Microsoft en sus versiones más recientes (que no libera la documentación).
5. SCOM (System Center Operations Manager)
Para finalizar y teniendo en cuenta que Windows es un producto de Microsoft, no podemos dejar de lado SCOM.
System Center Operations Manager es la herramienta que ha desarrollado Microsoft específicamente para monitorizar sus propios productos.
La principal ventaja es que debería ser 100% compatible con Windows. Su principal problema es que añadir equipos que no sean de productos Microsoft no entra dentro de sus características.
Diríamos pues que es un producto a tener en cuenta si disponemos de una infraestructura mayormente Microsoft y donde no queremos monitorizar otros dispositivos.
5 maneras de monitorizar Windows y más…
Hay más de 5 formas de monitorizar Windows. Y muchos matices en las que hemos presentado, pero pretendíamos exponer una guía rápida.
Servicios como SSH o RDP (entre otros) nos permiten usarlos también para extraer información y llevarlos a una herramienta de monitorización.
Volvemos a nuestro mantra: No hay una manera mejor, sino una manera más adecuada.
Es importante recordar que las necesidades nos decantaran más hacia una solución que otra, y esta nos conducirá a una herramienta u otra. Antes de optar por una herramienta, valoremos su idoneidad.