2010-03-05 30 views
6

Una respuesta a la pregunta this me ha llevado a buscar el uso de "Seguimiento de eventos para Windows" para nuestras necesidades de seguimiento. Me he encontrado con NTrace, que parece ser una buena forma de producir eventos ETW a partir del código C# (utilizando el modelo "proveedor clásico" compatible con XP).Consumir eventos "Seguimiento de eventos para Windows"

Sin embargo, no puedo encontrar una manera fácil de consumir estos eventos - para verlos en tiempo real y/o registrarlos en un archivo. La única forma que he encontrado es la descrita en la documentación de NTrace: utilizando una herramienta que solo está disponible como parte del DDK de Windows.

En el caso de un problema complejo en el campo, es posible que tengamos que preguntar al usuario para producir un archivo que contenga una traza. No podemos pedirle a los usuarios que descarguen el DDK o realicen una serie de operaciones complejas para hacerlo.

¿Existe una manera simple y fácil de registrar eventos ETW en un archivo?

Además, ¿es posible que alguien consuma eventos ETW en Windows Vista/7 si no se están ejecutando como administrador?

Respuesta

3

TraceView es la solución lista para usar más fácil de usar, pero es posible escribir su propio visor ETW específico para su proveedor. Esto le daría un control total sobre la presentación y la haría mucho más fácil para el usuario final, ya que TraceView es más una herramienta de depuración que algo que puede pedirle a los usuarios finales que ejecuten.

En lo que a tiempo real el seguimiento va, according to the documentation:

Sólo los usuarios con privilegios administrativos, los usuarios del grupo Usuarios del registro de rendimiento y servicios que se ejecutan como LocalSystem, LocalService, NetworkService puede consumir eventos en tiempo real . Para otorgar a un usuario restringido la capacidad de consumir eventos en tiempo real, agréguelos al grupo Usuarios del registro de rendimiento.

Windows XP y Windows 2000: Cualquiera puede consumir eventos en tiempo real.

Si está interesado en escribir su propio visor ETW (en tiempo real o archivo de registro), here is the relevant documentation.

+0

Gracias por esta información. Por lo tanto, en Windows Vista y en versiones posteriores, los usuarios restringidos no pueden consumir eventos en tiempo real. ¿Sabes si es posible que estos usuarios controlen el registro de eventos en un archivo? – user200783

+0

Parece que los usuarios restringidos no pueden controlar el registro de eventos en un archivo. Para hacerlo, un usuario tendría que emplear un controlador de rastreo, pero http://msdn.microsoft.com/en-us/library/aa364117%28VS.85%29.aspx dice "Solo usuarios con privilegios administrativos". .. puede controlar las sesiones de seguimiento de eventos ". – user200783

+0

Sí, Vista es una especie de arrastre. Para evitar esto, puede hacer que todas las operaciones de seguimiento de eventos se realicen en un servicio que se ejecuta con una cuenta privilegiada. Sin embargo, probablemente sea más fácil simplemente que el usuario se eleve. – Luke

3

Windows Event Log lee ETW. De hecho, diría que esta es la forma correcta para un consumidor (no programa) para ver y exportar los rastreos de ETW.

Vea aquí un ejemplo. http://blogs.microsoft.co.il/blogs/applisec/archive/2009/10/12/reading-etw-tracing-using-event-viewer.aspx

This question on msdn Explica qué hacer cuando los registros no aparecen. ¿Hay algo aquí que ayude?

+0

Gracias por el enlace. Si leo la publicación de blog correctamente, se describe cómo usar el Visor de eventos para cargar un archivo de registro producido por logman para un proveedor personalizado, y cómo omitir logman y ver un registro en tiempo real para un proveedor que ya está disponible en el Visor de eventos . He logrado hacer ambas cosas, pero no puedo ver un registro en tiempo real para mi propio proveedor ya que no aparece en el Visor de eventos. ¿Sabes lo que tengo que hacer para que aparezca? – user200783

+0

Gracias por la información adicional. Todo lo que he leído dice que el Visor de sucesos de hecho no muestra las trazas de ETW, la única forma de ver una traza en tiempo real es utilizar la herramienta TraceView de DDK. Sin embargo, esta pregunta era principalmente sobre la configuración del registro de un rastreo en un archivo, y he encontrado varias formas alternativas de hacerlo. Estos incluyen la herramienta de línea de comandos "logman" y el "Monitor de confiabilidad y rendimiento". Desafortunadamente, todos estos métodos parecen requerir acceso de administrador. Todavía estoy interesado en ver si hay una manera de hacerlo como un usuario estándar. – user200783

2

El rastreo de ETW se diseñó para que lo ejecuten solo los administradores porque el rastreo puede contener información personal identificable. Y supondría una amenaza a la seguridad si un no administrador puede capturar la traza.

Aquí es un ejemplo de aviso de xperf

La traza que acaba de capturar "C: \ Windows \ system32 \ kernel.etl" puede contener información de identificación personal, incluyendo pero sin limitarse necesariamente a las rutas a los archivos accedidos , rutas de registro accedidas y nombres de procesos. La información exacta depende de los eventos que se registraron. Tenga en cuenta esto cuando comparta esta traza con otras personas.

la esperanza que esto responda a su pregunta

+0

Gracias - eso tiene sentido. La advertencia xperf dice que le hace saber que la traza puede contener su propia información personal, pero creo que el problema mayor es que la traza puede contener la información personal de otros usuarios de la máquina (ya que el kernel combina rastros para todos usuarios). Es por esta última razón que las huellas solo deben ser vistas por los administradores. – user200783

1

IMO Perfview es una de las mejores herramientas disponibles para controlar y ver las huellas de ETW. También puede proporcionar llamadas administradas. La mejor parte es que puede copiar en cualquier servidor y recopilar rastros.

Perfview utiliza la biblioteca TraceEvent y aquí el samples cómo se puede utilizar mediante una API y C#

Cuestiones relacionadas