Cómo escuchar eventos y almacenarlos en una base de datos SQL
Los administradores con frecuencia supervisan el registro de eventos para aplicaciones, servicios o errores específicos. Cuando aprenda a consultar el registro de eventos para determinados eventos, que se identifican por una cadena de consulta particular, el desafío consiste en extraer los datos de los eventos. Los eventos pueden contener información crítica. Los administradores por lo general realizan notificaciones o crean una tarea para una acción correctiva, como el reinicio de un servicio o de un servidor. Por ejemplo, el administrador de una red de tamaño medio puede tener que mostrar los eventos de los registros de eventos en varios equipos y crear una alerta cuando ocurra un determinado patrón. Puede resultar útil crear una notificación por correo electrónico basada en el éxito o fallo de la tarea. También se puede usar el reenvío de eventos para supervisar simultáneamente varios equipos.
En el siguiente ejemplo de código se muestra cómo administrar eventos reenviados de varios equipos. En su forma más sencilla, puede reunir los eventos y guardarlos en un archivo XML. El archivo XML se puede consultar entonces mediante programación para supervisar condiciones o patrones específicos. El único problema con el que se suelen encontrar los administradores es que el número de eventos crece rápidamente, con lo que se consumen muchos más recursos al buscar en los registros XML y extraer la información necesaria. Al alternar una configuración booleana, en este ejemplo se muestra cómo escribir la información de evento en una base de datos SQL. La escritura de datos en una base de datos SQL resulta útil porque:
- Permite la escalabilidad de consultas en los registros de eventos.
- Habilita la creación de alertas y notificaciones por correo electrónico para usar la notificación SQL.
- Habilita la generación de informes de actividad usando la generación de informes SQL.
En el siguiente ejemplo de código se utilizan las clases del espacio de nombres System.Diagnostics.Eventing.Reader para suscribirse a eventos especificados. Cuando en el registro de eventos se publica un evento que coincide con el criterio especificado, el agente de escucha reúne los datos de eventos. La clase EventLogQuery se utiliza para especificar los criterios que conforman la consulta para los eventos. La clase EventLogWatcher se utiliza para crear una suscripción mediante el establecimiento de un método de controlador de eventos para el evento EventRecordWritten. Se llama al método de controlador de eventos cuando un evento que coincide con el criterio de búsqueda se publica en el registro.
Ejemplo
Para comprender este ejemplo, resulta útil comprender las partes principales:
- Usar el archivo de configuración de la aplicación: el archivo de configuración proporciona una forma de almacenar, recuperar y ajustar la configuración XML para la aplicación. Contiene datos estáticos, como el nombre de la base de datos y la cadena de conexión usada para conectarse a ellos.
- Configurar un agente de escucha de eventos y una suscripción de eventos: en este tema se resalta la parte del ejemplo que crea una instancia de un agente de escucha de eventos y muestra cómo suscribirse a los eventos.
- Configurar una base de datos SQL y escribir datos de eventos a la base de datos: en este tema se describe el código que especifica la parte de este ejemplo relacionada con la base de datos.
- Código de ejemplo para la escucha de eventos: en este tema se encuentra el ejemplo de código.
Compilar el código
Este ejemplo requiere referencias a los archivos System.dll y System.Core.dll. Además, hace referencia a System.Data.dll y System.Xml.dll para manipular el XML del evento y escribir los datos en una base de datos SQL. Al ejecutar este ejemplo, asegúrese de que eleva el estado a administrador; en caso contrario, no podrá obtener acceso a determinados canales del registro de eventos.
Consulte también
Conceptos
Escenarios de registros de eventos
Send comments about this topic to Microsoft.
Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.