虽然大多数Windows开发者都知道Windows事件追踪(Event Tracing for Windows,ETW)是一个日志记录和事件追踪工具,但是许多管理员却从没听说过它,只是简单地认为ETW不过是操作系统提供的事件日志记录与追踪功能的一部分。ETW在内核中运行,可以追踪用户模式应用程序、操作系统内核和内核模式设备驱动引发的事件。 一些操作系统核心组件和第三方应用程序使用Windows事件追踪来提供事件日志记录和追踪。虽然在Windows2000中第一次发布时,Windows事件追踪只有在Windows检查版本中才能使用,但现在它已经是所有Windows版本的内置工具。
Win……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属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。
图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所示。
图2.输入文本文件格式
了解了Windows事件追踪是什么,我们下一步要做的就是更深入地学习如何使用该工具,在下一篇文章中我们将细细道来。
作者
相关推荐
-
如何使用微软PerfView配置程序性能数据?
你要如何配置一个应用的程序性能数据?它如何支出时间?调用什么函数?它完成工作是否高效?这些问题都在你的脑子盘旋了很久,这里你将会找到答案。
-
如何使用Windows追事件踪工具?
上篇文章中,我们已经进行了Windows事件追踪工具的入门知识普及,了解了这个工具是什么,那么我们又该如何使用它呢?接下来,我们就将为您解答心中的疑惑。