在 System Center Operations Manager 和 System Center Essentials 中使用诊断跟踪

本文介绍如何在 Microsoft System Center Essentials 2010 和 System Center Operations Manager 中使用诊断跟踪。

原始产品版本: Microsoft System Center Essentials 2010、Microsoft System Center Operations Manager 2007
原始 KB 编号: 942864

重要

本文包含有关如何修改注册表的信息。 修改注册表之前,一定要先对其进行备份。 并且一定要知道在发生问题时如何还原注册表。 有关如何备份、还原和修改注册表的详细信息,请参阅如何在 Windows 中备份和还原注册表

简介

建议仅与 Microsoft 客户支持服务 (CSS) 代表一起执行诊断跟踪。 建议这样做,因为生成的跟踪包含有关基于文本的跟踪消息的上下文的信息。 但是,在 Microsoft System Center Operations Manager 2007 和 Microsoft System Center Essentials 2007 中,此跟踪信息不是人工可读的格式。 CSS 代表转换跟踪后,用户可读文本可用。 但是,此文本仅包含低级信息,例如源代码文件名、位置、源代码函数和返回代码。 如果必须排查复杂问题,此信息可能会有所帮助。

在 System Center Essentials 2010、System Center Operations Manager 2007 SP1 及更高版本中,提供了跟踪消息文件 (TMF) ,允许将二进制跟踪文件转换为文本。 但是,我们强烈建议仅在需要时才进行诊断跟踪,并且仅咨询 Microsoft 代表。

System Center Operations Manager 2007 和 System Center Essentials 2007 实现与早期版本的 Microsoft Operations Manager 不同的诊断跟踪方法。 这种新的跟踪方法创建用于存储跟踪信息的二进制文件。 由于此新跟踪方法是在 Windows 内核级别实现的,因此它非常高效,并且每秒可记录数万条跟踪消息。

本文介绍 Microsoft CSS 代表要求你执行此操作时可用于启动和停止跟踪的工具。 本文还讨论了 System Center Essentials 2010、System Center Essentials 2007 SP1、System Center Operations Manager 2007 SP1 和更高版本中提供的新功能。

跟踪工具位置

每个角色的安装文件夹(例如代理角色、管理服务器角色或网关角色)都包含名为“工具”的文件夹。 以下文件位于“工具”文件夹中:

  • StartTracing.cmd
  • StopTracing.cmd
  • TracelogSM.exe
  • TracingGuidsBid.txt
  • TracingGuidsUI.txt
  • TracingGuidsNative.txt
  • TracingReadMe.txt

System Center Essentials 2010、System Center Essentials 2007 SP1 和 System Center Operations Manager 2007 SP1 引入了以下新增功能:

  • FormatTracing.cmd
  • ViewRealtimeTracing.cmd
  • TraceFmtSM.exe
  • OpsMgrTraceTMF.cab
  • Default.tmf
  • System.tmf

开始跟踪

注意

在 System Center Essentials 2010、System Center Operations Manager 2007 SP1 及更高版本中,跟踪会自动启动代理角色和管理服务器角色。 跟踪将仅使用错误输出。 二进制跟踪文件将写入 文件夹 windows\logs\OpsMgrTrace 。 必须先停止跟踪,然后才能更改跟踪输出的跟踪级别。

若要启动诊断跟踪,请执行以下步骤:

  1. 在要启动跟踪的计算机上,依次选择“ 开始”、“ 运行”、“ cmd”,然后单击“ 确定”。

  2. 在命令提示符下,使用 cd 命令更改为“工具”目录。

  3. 键入 StartTracing LEVEL,然后按 Enter。 在此命令中,将 LEVEL 替换为所需的跟踪级别。 使用大写字符指定跟踪级别。 以下级别可用:

    • 犯 错
    • WRN
    • Inf
    • VER

    例如,键入 StartTracing WRN

启动跟踪时,跟踪输出将写入以下二进制文件:

  • MOMTraceNative.etl
  • MOMTraceBID.etl
  • MOMTraceUI.etl

对于 Windows 7、Windows Server 2008、Windows Server 2008 R2 及更高版本,文件位于 windows\logs\OpsMgrTrace

停止跟踪

若要停止诊断跟踪,请执行以下步骤:

  1. 依次选择“ 开始”、“ 运行”、“ cmd”和“ 确定”。
  2. 在命令提示符下,使用 cd 命令更改为“工具”目录。
  3. 键入 StopTracing.cmd,然后按 Enter

将现有跟踪转换为文本格式

若要将现有跟踪文件转换为文本跟踪,必须先使用 StopTracing.cmd 命令停止跟踪。

注意

转换后的跟踪中的信息在调试级别) (非常低的详细信息。 因此,转换后的跟踪需要了解源代码和要跟踪的组件。 建议仅在 CSS 代表需要跟踪转换时才执行。

  1. 依次选择“ 开始”、“ 运行”、“ cmd”和“ 确定”。
  2. 在命令提示符下,使用 cd 命令更改为“工具”目录。
  3. 键入 FormatTracing.cmd,然后按 Enter

首次执行命令时 FormatTracing.cmd ,转换跟踪所需的跟踪文件将提取到 SystemDrive\Program Files\System Center Operations Manager\Tools\TMF 文件夹。 然后, FormatTracing.cmd 批处理文件枚举文件夹中的每个跟踪文件 (*.etl) windows\logs\OpsMgrTrace 。 然后,TraceFMTSM.exe 实用工具将文件转换为文本。 文本输出将写入文件夹中扩展名为.log windows\logs\OpsMgrTrace 的同名文件。 摘要 (.sum) 文件也会写入到每个转换文件的相同位置。 此文件详细说明转换的每个跟踪消息事件。

查看转换后的跟踪文件

可以使用文本编辑器(如记事本)查看通过使用 FormatTracing.cmd 批处理文件转换为文本的跟踪文件。

默认情况下启用启动时间跟踪

在典型的管理服务器安装中,三个跟踪会话在 HealthService 服务启动时开始。 默认情况下,仅执行错误跟踪。 很少将信息写入跟踪文件。 创建的默认跟踪文件位置和名称如下所示:

Folder 文件名 说明
windows\logs\OpsMgrTrace TracingGuidsBID.etl 托管代码组件的跟踪输出
windows\logs\OpsMgrTrace TracingGuidsNative.etl 本机代码组件的跟踪输出
windows\logs\OpsMgrTrace TracingGuidsUI.etl OpsMgr UI (托管代码用户界面的跟踪输出)

每个会话都启用了循环跟踪,最大文件大小为 100 MB (MB) 。 新创建的 .etl 文件的典型 .etl 文件大小为 16 KB (KB) 。

注意

尽管 Operations Manager 角色(如代理角色)不包含托管或用户界面跟踪消息,但在启动 HealthService 服务时,默认会创建三个默认跟踪 .etl 文件。 默认情况下,不会在仅用户界面角色上启动跟踪会话。

禁用启动时间跟踪

警告

如果使用注册表编辑器或使用其他方法错误地修改了注册表,则可能会发生严重问题。 这些问题可能需要重新安装操作系统才能解决。 Microsoft 不能保证可以解决这些问题。 修改注册表的风险由您自行承担。

在包含 HealthService 服务的任何角色上,都会自动启动三个跟踪提供程序。 跟踪文件将写入 文件夹 windows\logs\OpsMgrTrace 。 通常,此文件夹中的 .etl 文件很小,尤其是代理角色。 但是,对于管理服务器角色,如果 Operations Manager 安装变得不正常,其中一个或多个文件可能会增长到每个文件的最大配置大小 100 MB。 这些文件包括:

  • TracingGuidsBid.etl
  • TracingGuidsNative.etl
  • TracingGuidsUI.etl
  • 以前的 .etl 文件

如果由于启动分区大小较小而必须禁用调试级别跟踪,可以将注册表值添加到运行管理服务器角色或要禁用跟踪的代理角色的计算机。 为此,请按照下列步骤操作。

注意

如果禁用跟踪,可能会影响 Operations Manager 的未来故障排除,因为任何低级别的跟踪信息都将丢失。 将来的修补程序、Service Pack 或产品更新可能会删除注册表项并再次启用跟踪。 默认情况下,此注册表项不存在。 如果删除此注册表项或将其值更改为 0,则启用默认跟踪。

  1. 选择 “开始”,选择“ 运行”,键入 “regedit”,然后单击“ 确定”。

  2. 找到并选择以下注册表子项:

    HKEY_LOCAL_MACHINE\Software\Microsoft\Microsoft Operations Manager\3.0\

  3. 创建名为 的 Tracing子项。

  4. 在“详细信息”窗格中,创建名为 DisableAutoTracing的REG_DWORD值。

  5. “值数据 ”字段中,键入 1,然后单击“ 确定”。

  6. 退出注册表编辑器。

如果从“工具”文件夹执行 StopTracing.cmd 批处理文件,则 Operations Manager 跟踪会话将停止。 如果不再需要重新获得磁盘空间, windows\logs\OpsMgrTrace 则可以删除文件夹中的 .etl 文件。

移动跟踪文件输出的默认位置

如果在启动分区空间受限的计算机上安装了 Operations Manager 服务器角色或代理角色,则可能需要将跟踪文件的默认位置 (*.etl) 。 为此,请按照下列步骤操作:

  1. 在本地磁盘上创建一个有足够的容量来容纳文件的新文件夹。 三个默认跟踪文件(每个最大为 100 MB)和三个以前使用的跟踪文件(最大为 100 MB),每个跟踪文件的总潜在容量为 600 MB。

  2. 至少对文件夹设置以下 NT 文件系统 (NTFS) 权限,SYSTEM = 完全控制,管理员 = 完全控制

  3. 在“工具”安装文件夹中找到并打开StartTracing.cmd批处理文件。 使用文本编辑器,例如记事本。

  4. 在StartTracing.cmd批处理文件中,找到 SET OpsMgrTracePath 语句。 将默认值替换为新位置的路径。 如果路径包含空格字符,请使用语音标记 (“) 分隔路径。

  5. 保存对 StartTracing.cmd 文件的更改。

  6. 若要开始跟踪到新文件夹,请 StopTracing.cmd 运行批处理文件。 然后,运行 StartTracing.cmd 批处理文件。 运行 StartTracing.cmd 批处理文件后,以下文件将写入新文件夹:

    • TracingGuidsBid.etl
    • TracingGuidsNative.etl
    • TracingGuidsUI.etl
  7. 在使用 FormatTracing.cmd 命令将跟踪转换为文本之前,必须编辑 FormatTracing.cmd 命令以将 OpsMgrTracePath 变量更改为指向新的跟踪文件文件夹。

将来的修补程序、Service Pack 或产品更新可能会更改“工具”文件夹中的文件。 这会将功能更改回默认功能。 建议在进行更新后检查进行更多更改。

查看实时跟踪

建议不要在没有 Microsoft CSS 建议的情况下使用 ViewRealTimeTracing.cmd 批处理文件在生产环境中查看实时跟踪。 实时查看跟踪,尤其是在使用信息跟踪级别设置或详细跟踪级别设置时,可能会严重影响服务器性能。

首次执行该文件时 ViewRealTimeTracing.cmd ,转换跟踪所需的跟踪文件将提取到 SystemDrive\Program Files\System Center Operations Manager\Tools\TMF 文件夹。 然后,批处理 ViewRealTimeTracing.cmd 文件枚举“工具”文件夹中 (Tools\TracingGuids*.txt) 的每个跟踪会话定义文件。 然后,在命令提示符窗口中启动 的 TraceFmtSM 单独实例。 托管跟踪、本机跟踪和 UI 托管跟踪的跟踪会话输出将输出到每个窗口。

批处理 ViewRealTimeTracing.cmd 文件接受单个可选的命令行参数 (-ods) 。 提供此参数还会将跟踪数据输出到调试器。

References

有关诊断跟踪的详细信息,请浏览到 Microsoft Learn。 然后,搜索 Windows 的事件跟踪