hace 9 años
El monitoreo efectivo de la infraestructura de Windows es crucial para garantizar la estabilidad, seguridad y rendimiento óptimo de cualquier entorno informático. Los logs de eventos de Windows son una fuente invaluable de información que registra eventos del sistema y aplicaciones, proporcionando visibilidad sobre lo que ocurre en tus servidores y estaciones de trabajo. Integrar estos logs con una plataforma de monitoreo robusta como Datadog permite correlacionar eventos, detectar anomalías y responder proactivamente a problemas potenciales. Este artículo te guiará paso a paso sobre cómo configurar la recolección de logs de eventos de Windows en Datadog, explorando diferentes métodos y opciones de configuración.

- ¿Por qué recolectar logs de eventos de Windows en Datadog?
- Métodos de recolección de logs de eventos de Windows en Datadog
- ¿Cómo encontrar el nombre del canal de eventos de Windows?
- Filtrado de eventos de Windows
- Validación de la configuración
- Envío de logs de seguridad predeterminados (Security Events)
- Solución de problemas
- Conclusión
¿Por qué recolectar logs de eventos de Windows en Datadog?
Datadog ofrece una plataforma unificada para el monitoreo de infraestructura, aplicaciones y logs. Recolectar logs de eventos de Windows en Datadog proporciona numerosos beneficios:
- Visibilidad centralizada: Consolida los logs de eventos de Windows junto con métricas de rendimiento, trazas de aplicaciones y otros datos de telemetría en una única plataforma.
- Correlación de eventos: Facilita la correlación de eventos de Windows con otros datos de monitoreo para un análisis de causa raíz más rápido y efectivo.
- Detección proactiva de problemas: Configura alertas basadas en patrones y anomalías en los logs de eventos para identificar y resolver problemas antes de que afecten a los usuarios.
- Cumplimiento normativo y seguridad: Utiliza los logs de seguridad de Windows para auditoría, detección de intrusiones y cumplimiento de políticas de seguridad.
- Paneles de control personalizables: Crea dashboards visuales para monitorizar los logs de eventos de Windows, visualizar tendencias y obtener insights accionables.
Métodos de recolección de logs de eventos de Windows en Datadog
El agente de Datadog ofrece dos métodos principales para recolectar logs de eventos de Windows:
1. Recolección como logs de Datadog (Recomendado para logs generales)
Este método permite enviar los logs de eventos de Windows como logs estándar a Datadog. Es ideal para recolectar logs generales de aplicaciones y sistemas que no requieren procesamiento de eventos específicos. Para habilitar este método, debes configurar el agente de Datadog y definir los canales de eventos que deseas monitorear.
Configuración para recolección como logs
- Habilitar la recolección de logs en `datadog.yaml`: Asegúrate de que la recolección de logs esté habilitada en la configuración principal del agente Datadog, estableciendo `logs_enabled: true` en el archivo `datadog.yaml`.
- Configurar `win32_event_log.d/conf.yaml`: Edita el archivo de configuración `win32_event_log.d/conf.yaml` ubicado en la carpeta `conf.d` del directorio de configuración del agente. Define los canales de eventos bajo la sección `logs:` utilizando el parámetro `channel_path`.
Ejemplo de configuración en `win32_event_log.d/conf.yaml` para recolectar logs de los canales 'Security' y '
logs: - type: windows_event channel_path: Security source: windows.events service: Windows - type: windows_event channel_path: "<CHANNEL_2>" source: windows.events service: myservice Asegúrate de reemplazar `<CHANNEL_2>` con el nombre real del canal de eventos que deseas monitorear. El parámetro `source: windows.events` es importante para habilitar el pipeline de procesamiento automático de Datadog para eventos de Windows.
2. Recolección como eventos de Datadog usando la API de Event Log (Recomendado para rendimiento y filtrado avanzado)
Este método utiliza la API de Event Log de Windows para recolectar eventos y enviarlos a Datadog como eventos discretos. Se recomienda este método por su mejor rendimiento y opciones de filtrado más avanzadas en comparación con el método legacy (WMI).
Configuración para recolección como eventos con API de Event Log
- Configurar `win32_event_log.d/conf.yaml`: Edita el archivo de configuración `win32_event_log.d/conf.yaml`. Define los canales de eventos bajo la sección `instances:` y establece `legacy_mode: false` para cada instancia. El parámetro `path` es obligatorio en este modo.
Ejemplo de configuración en `win32_event_log.d/conf.yaml` para recolectar eventos de los canales 'Security' y '
init_config: instances: - # Event Log API path: Security legacy_mode: false filters: {} - path: "<CHANNEL_2>" legacy_mode: false filters: {} Nuevamente, reemplaza `<CHANNEL_2>` con el nombre del canal deseado.
3. Recolección como eventos de Datadog usando Legacy Mode (WMI) - Deprecado
Este método utiliza WMI (Windows Management Instrumentation) para recolectar eventos. Está deprecado desde la versión 7.20 del agente y se recomienda utilizar la API de Event Log. Si aún necesitas utilizar Legacy Mode (por razones de compatibilidad con versiones antiguas del agente), debes establecer `legacy_mode: true` en la configuración y definir filtros como `source_name`, `event_id`, `message_filters`, `log_file` o `type`.
Ejemplo de configuración en `win32_event_log.d/conf.yaml` para recolectar eventos de los canales 'Security' y '
init_config: instances: - # WMI (default) legacy_mode: true log_file: - Security - legacy_mode: true log_file: - "<CHANNEL_2>" ¿Cómo encontrar el nombre del canal de eventos de Windows?
Para configurar la recolección de logs de eventos, necesitas conocer el nombre exacto del canal de eventos de Windows. Puedes encontrarlo utilizando PowerShell o el Visor de eventos de Windows.
Usando PowerShell
Abre PowerShell como administrador y ejecuta los siguientes comandos:
- Listar todos los canales: `Get-WinEvent -ListLog *`
- Listar los canales más activos: `Get-WinEvent -ListLog * | sort RecordCount -Descending`
La salida mostrará los canales en el formato `LogMode MaximumSizeInBytes RecordCount LogName`. El valor bajo la columna `LogName` es el nombre del canal. Por ejemplo, en la salida, el nombre del canal podría ser `Security` o `Microsoft-Windows-Windows Defender/Operational`.
Usando el Visor de eventos de Windows
- Abre el Visor de eventos (Eventvwr.msc).
- Navega hasta el log de eventos que te interesa (por ejemplo, Registros de Windows > Seguridad).
- Haz clic derecho en el log y selecciona 'Propiedades'.
- En la ventana de propiedades, el campo 'Nombre completo' muestra el nombre del canal. Por ejemplo, `Microsoft-Windows-Windows Defender/Operational`.
Filtrado de eventos de Windows
Para reducir el volumen de logs y enfocarte en la información más relevante, puedes configurar filtros. Datadog recomienda utilizar el método de filtrado `query` (XPath o XML estructurado) para la API de Event Log, ya que es más eficiente que los filtros `log_processing_rules` en términos de rendimiento y recursos.
Filtrado con `query` (API de Event Log)
El parámetro `query` permite definir una consulta XPath o XML para seleccionar eventos específicos basados en criterios como nivel de evento, origen, ID de evento, etc. Puedes probar y refinar tu consulta en el Visor de eventos de Windows antes de copiarla a la configuración del agente.
Ejemplos de filtrado con `query`:
Ejemplo 1: Recolectar eventos críticos, de advertencia y de error del canal 'Application':
logs: - type: windows_event channel_path: Application source: windows.events service: Windows query: '*[System[(Level=1 or Level=2 or Level=3)]]' Ejemplo 2: Usando XML para la misma consulta:
logs: - type: windows_event channel_path: Application source: windows.events service: Windows query: | <QueryList> <Query Id="0" Path="Application"> <Select Path="Application">*[System[(Level=1 or Level=2 or Level=3)]]</Select> </Query> </QueryList> Filtrado con `log_processing_rules`
Puedes utilizar `log_processing_rules` para aplicar filtros basados en expresiones regulares a los logs. Este método es menos eficiente que `query` para grandes volúmenes de logs, pero puede ser útil para filtrado adicional o cuando `query` no es suficiente.
Ejemplos de filtrado con `log_processing_rules`:
Ejemplo 1: Incluir eventos de seguridad relevantes (EventID 1102, 4624, 4625, etc.) del canal 'Security':
logs: - type: windows_event channel_path: Security source: windows.events service: Windows log_processing_rules: - type: include_at_match name: relevant_security_events pattern: '"EventID":(?:{"value":)?"(1102|4624|4625|4634|4648|4728|4732|4735|4737|4740|4755|4756)"' Ejemplo 2: Excluir eventos de seguridad específicos (EventID 1102 y 4624) del canal 'Security':
logs: - type: windows_event channel_path: Security source: windows.events service: Windows log_processing_rules: - type: exclude_at_match name: relevant_security_events pattern: '"EventID":(?:{"value":)?"(1102|4624)"' Validación de la configuración
Después de configurar la recolección de logs de eventos de Windows, es importante validar que el agente de Datadog esté funcionando correctamente.
Verificar el estado del agente
Puedes verificar el estado del agente de Datadog de las siguientes maneras:
- Datadog Agent Manager: Abre el Agent Manager y busca la sección 'Logs Agent' o 'Checks'. Busca `win32_event_log`.
- Comando `agent status`: Ejecuta el comando `datadog-agent status` en la línea de comandos. Busca la sección 'Logs Agent' y 'Checks' y verifica el estado de `win32_event_log`. Debería mostrar un estado 'OK' y detalles sobre los canales configurados.
Ejemplo de salida en la sección 'Logs Agent':
Logs Agent =========== [ ... ] win32_event_log --------------- - Type: windows_event ChannelPath: System Status: OK Ejemplo de salida en la sección 'Checks':
Checks ====== [ ... ] win32_event_log --------------- - instance #0 [OK] - Collected 0 metrics, 2 events & 1 service check Envío de logs de seguridad predeterminados (Security Events)
Datadog ofrece una forma simplificada de recolectar logs de seguridad de Windows para su uso con Cloud SIEM. A partir del agente 7.54, puedes habilitar la recolección de eventos de seguridad predeterminados utilizando la bandera `dd_security_events` en la configuración.
Configurar la recolección de logs de seguridad predeterminados
- Habilitar la recolección de logs en `datadog.yaml`: Asegúrate de que `logs_enabled: true` esté configurado en `datadog.yaml`.
- Configurar `dd_security_events` en `win32_event_log.d/conf.yaml`: En el archivo `win32_event_log.d/conf.yaml`, dentro de la sección `init_config` e `instances`, establece `dd_security_events` a `low` o `high`.
Ejemplo de configuración para recolectar logs de seguridad predeterminados (nivel 'high'):
init_config: legacy_mode: false instances: - dd_security_events: high Niveles de `dd_security_events`:
- `low`: Envía solo los eventos de seguridad más importantes y críticos, como 'Registro de auditoría borrado' (1102), 'Ataque de repetición detectado' (4649) y 'Se cambió la política de auditoría del sistema' (4719).
- `high`: Envía un mayor volumen de eventos de seguridad, incluyendo 'Política de recuperación de datos cifrados modificada' (4714), 'Política de dominio modificada' (4739) y 'Grupo deshabilitado de seguridad eliminado' (4764).
Solución de problemas
Si tienes problemas con la recolección de logs de eventos de Windows, considera los siguientes puntos:
- Verifica la configuración: Revisa cuidadosamente los archivos `datadog.yaml` y `win32_event_log.d/conf.yaml` para asegurarte de que la configuración sea correcta y no haya errores de sintaxis.
- Permisos: Asegúrate de que el usuario que ejecuta el agente de Datadog tenga los permisos necesarios para acceder a los canales de eventos de Windows que estás intentando monitorear. Para los logs de seguridad, añade el usuario del agente al grupo 'Event Log Readers'.
- Filtros: Si estás usando filtros, verifica que estén correctamente definidos y que coincidan con los eventos que esperas recolectar. Prueba tus filtros en el Visor de eventos de Windows para validarlos.
- Logs del agente: Revisa los logs del agente de Datadog para identificar posibles errores o advertencias relacionados con la recolección de logs de eventos de Windows.
- Soporte de Datadog: Si persisten los problemas, contacta con el soporte de Datadog y proporciona un Agent Flare para obtener ayuda adicional.
Conclusión
Recolectar logs de eventos de Windows en Datadog es esencial para obtener una visión completa del estado y la actividad de tus sistemas Windows. Siguiendo los pasos descritos en este artículo, podrás configurar la recolección de logs utilizando diferentes métodos, aplicar filtros para enfocarte en la información relevante y validar la correcta funcionalidad de la integración. Integrar los logs de eventos de Windows en Datadog te permitirá mejorar la observabilidad, la seguridad y la eficiencia operativa de tu infraestructura Windows.
