Windows事件追踪:新视角看老工具

日期: 2011-02-24 作者:Gary Olsen翻译:周毅 来源:TechTarget中国 英文

虽然大多数Windows开发者都知道Windows事件追踪(Event Tracing for Windows,ETW)是一个日志记录和事件追踪工具,但是许多管理员却从没听说过它,只是简单地认为ETW不过是操作系统提供的事件日志记录与追踪功能的一部分。ETW在内核中运行,可以追踪用户模式应用程序、操作系统内核和内核模式设备驱动引发的事件。   一些操作系统核心组件和第三方应用程序使用Windows事件追踪来提供事件日志记录和追踪。虽然在Windows2000中第一次发布时,Windows事件追踪只有在Windows检查版本中才能使用,但现在它已经是所有Windows版本的内置工具。

  Win……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

虽然大多数Windows开发者都知道Windows事件追踪(Event Tracing for Windows,ETW)是一个日志记录和事件追踪工具,但是许多管理员却从没听说过它,只是简单地认为ETW不过是操作系统提供的事件日志记录与追踪功能的一部分。ETW在内核中运行,可以追踪用户模式应用程序、操作系统内核和内核模式设备驱动引发的事件。

  一些操作系统核心组件和第三方应用程序使用Windows事件追踪来提供事件日志记录和追踪。虽然在Windows2000中第一次发布时,Windows事件追踪只有在Windows检查版本中才能使用,但现在它已经是所有Windows版本的内置工具。

  Windows事件追踪(ETW)入门

  在Windows服务器故障诊断和排错方面,一直就没有多少信息可以参考。管理员总是竭尽所能四处寻找各种可能的信息来确定故障。所以就有了诸如进程监视器、进程资源管理器、性能监视器(PerfMon)和性能分析日志(PAL)等多种工具来帮助我们获取远多于事件日志的信息,但不幸的是,有时候我们还需要更多的信息。

  ETW无需额外的设备就可以收集足够的信息,而且有诸多优点。例如:

  • 使用非页面池的每处理器内核缓冲区,这样不会受到应用程序崩溃和挂起的影响
  • 极低的CPU消耗
  • 适用用于X86、X64和IA64的系统架构
  • 无需重启应用程序就能启动和关闭追踪

  Windows事件追踪似乎是个伟大的工具,但是使用此工具有个另一个问题,没有图像界面或者用户向导。而且,在输出可分析的结果之前,需要做一些初始化工作。

  为了输出有效的结果,您需要一个消费者(consumer)。在Windows Serer中生成一个名为Tracerpt.exe的消费者。正如您所知道的,Tracerpt命令的特点就是可以提供特定的输出格式,所以重要的是能熟练掌握Tracerpt和Logman这些工具,它们是Windows 2003 及以后系统的内置工具,如Windows 7和Vista。

  同样重要的是理解ETW的架构。如图显示,控制器用于启动和停止一个追踪对话。在windows Server 2003 和2008中,控制器工具是Logman.exe。

Windows事件追踪,ETW
图1.ETW架构

  Windows Server 2003还包含返回特定事件的一小部分事件提供者,其中包括下面的这些活动目录相关的提供者:

  • Active Directory: Core
  • Active Directory: Kerberos
  • Active Directory: SAM
  • Active Directory: NetLogon

  例如,指定Active Directory: Kerberos作为提供者只会返回Kerberos特定事件。

  Windows版本不同,事件提供者也有所不同。例如,Windows Server 2003有22个提供者, Windows 2008有387个。它提供了更强大的追踪和更多的追踪范围。然而,当涉及LDAP流量时,作为提供者的 Active Directory: Core对于两个Windows版本来说基本上是一样的。

  您也能捆绑多个事件提供者到一个追踪中。因为上面例子上提到了Kerberos身份验证,所以我在这里仍然使用Active Directory: Kerberos和Active Directory: Core提供者举例,同时使用Logman命令和参数-PL,如下面的例子所示:
Logman Create Trace CoreKerb –pf c:etwinput.txt –o c:etwcoreKerb

  参数-pf 的意思是读一个输入文本文件(如本例中的input.txt)。其格式如图2所示。

Windows事件追踪,ETW
图2.输入文本文件格式

  了解了Windows事件追踪是什么,我们下一步要做的就是更深入地学习如何使用该工具,在下一篇文章中我们将细细道来。

相关推荐

  • 如何使用微软PerfView配置程序性能数据?

    你要如何配置一个应用的程序性能数据?它如何支出时间?调用什么函数?它完成工作是否高效?这些问题都在你的脑子盘旋了很久,这里你将会找到答案。

  • 如何使用Windows追事件踪工具?

    上篇文章中,我们已经进行了Windows事件追踪工具的入门知识普及,了解了这个工具是什么,那么我们又该如何使用它呢?接下来,我们就将为您解答心中的疑惑。