千家信息网

Windows事件追踪入门与使用方式是什么

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,这篇文章给大家介绍Windows事件追踪入门与使用方式是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。虽然大多数Windows开发者都知道Windows事件追踪(Event
千家信息网最后更新 2026年11月02日Windows事件追踪入门与使用方式是什么

这篇文章给大家介绍Windows事件追踪入门与使用方式是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

虽然大多数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:\etw\input.txt –o c:\etw\coreKerb

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


图2.输入文本文件格式

我们已经认识到了什么是事件追踪,那么下面我们就来了解如何使用Windows事件追踪(ETW)

通过例子来介绍ETW是***办法。最近有位工程师告诉我他需要知道活动目录如何响应提交给域控制器的Unix客户端身份验证LDAP请求。他使用Unix命令去查看在Unix端绑定请求,也希望在Windows端能有类似的输出结果,输出显示如下:

[23/Sep/2010:15:04:44 +0200] conn=31 fd=65 slot=65 connection from 10.50.20.173 to 10.50.12.119
[23/Sep/2010:15:04:44 +0200] conn=31 op=0 BIND dn="uid=dorsa,ou=people,o=Corp.net" method=128 version=3
[23/Sep/2010:15:04:44 +0200] conn=31 op=0 RESULT err=0 tag=97 nentries=0 etime=0 dn="uid=dorsa,ou=people,o=corp.net"
[23/Sep/2010:15:04:44 +0200] conn=31 op=1 SRCH base="ou=people,o=hp.com" scope=2 filter="(|(uid=dorsa)(cn=mdilln.dodgcty))" attrs=ALL
[23/Sep/2010:15:04:44 +0200] conn=31 op=1 RESULT err=0 tag=101 nentries=2 etime=0
[23/Sep/2010:15:04:44 +0200] conn=31 op=2 UNBIND
[23/Sep/2010:15:04:44 +0200] conn=31 op=2 fd=65 closed - U1
[23/Sep/2010:15:04:44 +0200] conn=29 op=-1 fd=64 closed error 11 (Resource temporarily unavailable) -

为了得到这个输出结果,我打开NTDS Diagnostics 注册表键,它位于HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Diagnostics,同时把LDAP Interface值设为5.这仅提供了运行的操作时间,和Unix输出还没有太大关系,所以我决定试试ETW。因为使用Windows Server 2003,所以我使用Active Directory: Core提供者,它能提供详细的LDAP信息。

以下步骤和命令用于创建一个ETW追踪和生成日志。这些命令能为这位Unix工程师保存身份验证过程中的LDAP数据。同时,我在C盘下创建ETW文件夹来存储所有的数据。

1.C:>Logman Query Providers --该命令列出所有可用的提供者。注意,我们希望能得到LDAP的信息,所以使用的提供者是Active Directory: Core。

2.Logman create trace "LDAP1" –p "Active Directory: core" –o c:\etw\LDAP1 LDAP1 --这是追踪的名字(可以在追踪列表里找到它)。

  • -identifies指定Active Directory: Core 作为提供者

  • -o指定输出文件(后缀名为.etl)路径C:\etw\ldap1。输出文件将保存为LDAP1_000001.etl。请注意,当追踪第二次运行时,输出文件将被命名为LDAP1_000002.etl,以此类推。

3.一旦Logman create trace追踪命令成功执行,您就可以使用命令:C:>Logman Query在命令队列中看到此命令。在图3中, LDAP1追踪显示在红色方框内。请注意这些追踪我已经设置为可以随时启动和停止以重复使用。


图三. ETW 追踪

4.启动追踪命令如下:

Logman Start LDAP1

此时使用Logman Query将会显示LDAP1为正在运行

5.然后,我们需要使用复制操作来复制想追踪的问题或事件。在这个例子中,我执行了一个登录和运行一些LDIFDE命令来执行LDAP搜索。一旦这些命令执行完,应该尽快启动追踪这样可以最小的减少追踪的误差和更加容易读取。

6.接下来,使用命令Logman Stop LDAP1来停止追踪

7.在C:\ETW目录下显示LDAP1追踪文件LDAP1_000002.etl已被创建:

C:\ETW>dir ldap1*
Volume in drive C has no label.
Volume Serial Number is 309D-BA04
Directory of C:\ETW
10/13/2010 04:22 PM 1,015 ldap1
10/13/2010 04:20 PM 262,144 LDAP1_000001.etl
01/21/2011 02:12 AM 262,144 LDAP1_000002.etl

8.因为是第二次运行追踪,所以文件被命名为000002。

由于后缀名为.etl的日志文件不可读,我们可以使用Tracerpt命令得到一些有用的数据。该命令的例子如下:
TRACERPT LDAP1_000001.etl -o Ldap1.csv

  • -of设置文件类型(默认为CSV)(如需更多格式,请查看在线帮助。)

  • -o表示输出文件名为默认,其名称为dumpfile.csv和产生最令人感兴趣的LDAP活动存储

  • -Summary, -Report表示统计数据(本例子没有使用)

使用Excel(或者记事本)打开LDAP1.csv文件来查看数据。如图4显示, LDAP请求和响应被高亮显示。 正如您看到的,搜索和绑定请求在列A,同时在列B中,您能看到成对出现的开始和结束请求。在右边您还能看到用户数据和LDAP请求的过滤和范围及其他相关信息。


图4.LDAP1.csv数据

ETW令人兴奋的一点就是有数不尽的提供者。提供者包括组策略、Kerberos、LDAP客户端、Netlogon、FSRM、IIS,而在Windows Server 2008中,除了上面提到的之外,还有更多的提供者。

虽然过去我一直都使用事件日志和类似的日志文件,但现在我使用Windows事件追踪获得更深层次且详细的信息帮我解决我遇到的任何问题。非常简单的命令用于追踪和生成报表。当然,您可以通过网络发现更多的命令项和更详细的信息。

关于Windows事件追踪入门与使用方式是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

事件 命令 提供者 文件 输出 信息 日志 工具 数据 更多 例子 运行 系统 内核 同时 应用程序 格式 版本 程序 结果 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技 北京路客互联网科技有限公司 科技赋能下的互联网金融 重庆互联网络科技 互联网科技英文 深圳卡尔迅互联网科技有限公司怎么样 互联网之后的科技是什么 金融科技与互联网金融相同和不同 互联网时代科技改变生活 成都铂石互联网科技做什么的 河南猎农互联网科技有限公司 千方科技属于互联网企业吗 恒生互联网科技指数跳水 消费医药和互联网科技 青海科技产业互联网发展 深圳市罗太互联网科技有限公司 深圳艾果互联网通讯科技 富国互联网金融科技混合基金 陕西云淼互联网科技公司 山东蛋芒互联网科技有限公司 瑰夏咖啡 智慧科技互联网 互联网高科技企业 长沙互联网科技 无锡工业互联网科技有限公司 互联网公司高科技产品 互联网企业科技类企业如何做账 有人说阿里系是互联网科技企业 长沙渺峰互联网科技有限公司 黑龙江互联网科技公司
0