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

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

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

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

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

  使用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_MACHINESYSTEMCurrentControlSetServicesNTDSDiagnostics,同时把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:etwLDAP1 LDAP1 --这是追踪的名字(可以在追踪列表里找到它)。

  • -identifies指定Active Directory: Core 作为提供者
  • -o指定输出文件(后缀名为.etl)路径C:etwldap1。输出文件将保存为LDAP1_000001.etl。请注意,当追踪第二次运行时,输出文件将被命名为LDAP1_000002.etl,以此类推。

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

Windows事件追踪,ETW
图三. 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请求的过滤和范围及其他相关信息。

Windows事件追踪,ETW
图4.LDAP1.csv数据

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

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

相关推荐