使用 Application Diagnostics 处理事件

 

适用对象:System Center 2012 R2 Operations Manager, System Center 2012 - Operations Manager, System Center 2012 SP1 - Operations Manager

使用警报是使用 System Center 2012 – Operations Manager 的一个标准部分。 .NET 应用程序监视的警报向你显示你将从其他警报中识别的信息,如一般信息和产品知识。 但是,.NET 应用程序警报也在警报描述中提供了链接。 该链接会打开在 Application Diagnostics 中发出警报的事件。 在此,你可以查看更多详细信息,这些信息将有助于你排查和找出问题和解决方案。

System_CAPS_note注意

要对应用程序性能监视中的警报进行深度排查,通常需要访问应用程序源代码,并且可能需要开发人员提供信息。 你可以安装 Team Foundation Server 工作项同步管理包并将警报转发给开发团队使用的 Team Foundation Server。 Team Foundation Server 工作项同步管理包跟踪并同步对 Team Foundation Server 工作项所做的更改,以及对关联的 Operations Manager 警报所做的更改。

调查 .NET 应用程序警报

减少确定、分配和解决问题所需的时间是 Operations Manager 中的应用程序监视的中心目标。 当你收到警报时,你需要知道引起警报的原因(是托管应用程序的系统还是代码),需要能够显示支持该结论的数据,以及清楚地了解应该由谁来解决问题。 要了解是否为系统问题,你需要知道发生事件时系统的状态。 要了解根本问题的发生位置,你需要知道所发生的一系列调用。 要做进一步调查,你需要比较同时发生的类似事件和相关事件。 事件详细信息、性能计数器和分配的链一起将帮助你筛选出来应该首先查看此问题的人员。 如果是系统错误,则你可以调整主机系统的可用资源或配置并在主机级别解决问题。 如果是应用程序故障,则需要将问题以及发生故障的代码行转交给应用程序团队。 以下是关于在 Application Diagnostics 中使用视图、筛选器和设置的一些策略,用于帮助你了解根本原因、查找解决方法以及更好地知道解决问题需要涉及的人员。

从警报中打开 Application Diagnostics

  1. 由于要响应与配置的特定应用程序组相关的警报,因此确定活动警报的作用域以及按应用程序组查看它们很有用。 在 Operations Manager 控制台的导航窗格中,单击“监视”按钮,依次展开“应用程序监视”和“.NET 监视”,单击与配置的应用程序组(为了监视要调查的警报)同名的文件夹,然后单击“活动警报”。

  2. 双击想要打开的警报。

  3. 在“警报属性”页上,单击“警报说明”窗格中的链接。 这会在 Web 浏览器中打开 Application Diagnostics,Application Diagnostics 是 Operations Manager 中的新监视功能。 此时,在“事件属性”选项卡上,你可以查看信息,如性能指标、调用堆栈和关于警报的集合注释。 通过使用选项卡,可以查看类似事件、相关事件、事件链以及性能计数器。 这是有关针对应用程序引发的性能或异常事件的详细信息,此信息将帮助你诊断问题是来自应用程序本身、对 Web 服务的调用还是对数据库的调用。 有关“事件属性”选项卡的详细信息,请参阅“性能事件详细信息”。 单击“是”以在加载事件信息后关闭主窗口。

    System_CAPS_note注意

    此指向 Application Diagnostics 的链接也在“警报上下文”选项卡上。

使用以下过程调查警报。 IT 专业人员很有可能想要使用“事件属性”、“性能计数器”和“分布式链”选项卡上的信息,以查找发生的事件,了解问题是否由系统问题所引起,以及调查根本原因的所在位置。 开发人员很有可能需要使用“分布式链”、“类似事件”和“相关事件”选项卡上的信息,以围绕着代码问题了解特定上下文。

使用 Application Diagnostics 中的“异常事件”属性进行故障排除

  1. 在你要调查的异常警报的“Application Diagnostics”窗口中,单击“事件属性”选项卡以查看有关警报的关键详细信息。 这是查看警报问题是否明显的第一个要检查的位置。 你将在“事件属性”页上看到的信息的某些关键类别如下:

    - “源”要显示应用程序加载和响应时间,请单击左上角中的“源”链接。 此信息显示系统在异常事件失败上下文中进行的加载。 要查看性能计数器以及进一步评估系统状态,请在“源”页上单击“趋势报表”选项卡。 要查看此应用程序正在使用的计算机以及所有计算机中是否有负载平衡问题,请单击“计算机”选项卡。 要根据链来查看相关调用的细目或事件的发生位置,请单击“拓扑”选项卡。
    
    - “异常链”系统将为异常事件显示异常链。 展开“异常链”以查看发生的实例异常。
    
    - “异常数据”系统将为异常事件显示异常数据,异常数据通过异常来显示为类设置的参数和变量。
    
    - “堆栈”这是调用堆栈或事件的发生顺序。 利用“执行树视图”,你可以展开节点以调查调用。 单击“资源组视图”单选按钮以显示关于花费时间的地方的概述。 此视图回答问题在哪个层上,或者问题发生在哪里。
    
    - “模块列表”系统为异常事件显示模块列表,模块列表显示了发生异常时加载的模块。
    
    - “集合注释”集合注释显示关于事件的任何注释。
    
    System_CAPS_tip提示

    对于性能事件、类似事件、相关事件、分布式链和性能计数器,请使用用于异常事件的故障排除步骤。

使用 Application Diagnostics 中的“性能事件”属性进行故障排除

  1. 在你要调查的性能警报的“Application Diagnostics”窗口中,单击“事件属性”选项卡以查看有关警报的关键详细信息。 这是查看警报问题是否明显的第一个要检查的位置。 你将在“性能属性”页上看到的信息的某些关键类别如下:

    - “源”要显示应用程序加载和响应时间,请单击左上角中的“源”链接。 此信息显示系统在异常事件失败上下文中进行的加载。 要查看性能计数器以及进一步评估系统状态,请在“源”页上单击“趋势报表”选项卡。 要查看此应用程序正在使用的计算机以及所有计算机中是否有负载平衡问题,请单击“计算机”选项卡。 要根据链来查看相关调用的细目或事件的发生位置,请单击“拓扑”选项卡。
    
    - “最慢的节点”这是“执行树视图”中最慢的节点的列表,并且是应用程序中性能问题的最可能的原因。
    
    - “堆栈”这是调用堆栈或事件的发生顺序。 利用“执行树视图”,你可以展开节点以调查调用。 单击“资源组视图”单选按钮以显示关于花费时间的地方的概述。 此视图回答问题在哪个层上 - 问题发生在哪里?
    
    - “集合注释”集合注释显示关于事件的任何注释。
    

使用性能计数器对系统的状态进行故障排除

  1. 要查看关键性能计数器的表格或图表,请单击“性能计数器”选项卡。

    System_CAPS_note注意

    在监视的系统上收集和缓存十五分钟的性能数据。 发生性能或异常事件时,会将性能数据与事件一起发送回 Operations Manager。

  2. 选中想要包含在信息中的性能计数器的性能计数器复选框,然后单击“应用”。

  3. 请使用此显示中的信息围绕着你正在调查的事件评估系统性能状态。 例如,如果在发生事件时性能一律低下,则警报可能是由于系统性能问题所引起的。

使用“分布式链”查找根本问题

  1. 单击“分布式链”选项卡以查看调用的顺序 — 事件所属的事件链。 这有助于你了解应用程序或相关应用程序中其他事件对你调查的事件有何影响。

  2. 在“分布式链”视图中,单击链中的调用或链接之一。 如果相同对象具有多个事件,则将打开链向导。 此向导允许你选择可能的事件以关联到事件链中。 要启动向导,请单击“下一步”。

    System_CAPS_note注意

    当你将在下一页上将你选择的调用与事件配对时,请从该调用中获取时间戳。

  3. 在“选择可能的链事件”页上,选择想要检查的事件。 理想情况下,该事件将是时间戳与“分布式链”视图中所选调用最接近的事件。

  4. 接下来看到的内容取决于将要调查的问题的类型。 例如,如果选择未在其中找到服务器的事务,则可以转到该事件的事件属性页。 这样,你可以将服务器错误与你最初调查的事件进行配对。 由于这是一个服务器错误,因此你知道问题不是出在客户端上,而是服务器端。 你或许会看到所选事件的图形,并且能够按照页面加载时间对性能事件进行细分。

  5. 从事件属性中,单击服务器端调用,再单击“性能计数器”选项卡以了解更多详细信息。

通过查看类似事件来进行故障排除

  1. 单击“类似事件”选项卡,以查看是否多次发出了类似警报,哪个警报意味着应用程序有问题。

  2. 可通过以下一些方式筛选类似事件。 单击“相似于”下拉菜单以选择想要对类似事件进行分组的方式:按问题、操作、异常类或失败的函数。 在“从”和“至”文本框中,你可以设置要查看类似事件的日期范围。 使用“类似事件”选项卡,以查看是否多次发出了类似警报,哪个警报意味着应用程序有问题。

    - “按问题筛选”向你显示相同类型的类似事件。 例如,你可以查看对象引用未设置为对象实例的所有类似事件。 单击“图示视图”按钮,你可以查看当前问题的事件总数与其他问题的事件总数的比值。 利用此信息,你可以快速查看此特定事件所具有的问题的重要性。 如果当前总类似事件中许多事件具有相同的问题,则此问题可能是问题解决优先级较高的问题,因为它将对减少你收到的警报数有很大的影响。
    
    - **按操作筛选**按以下项对类似事件进行分组:安全性、性能、连接和应用程序故障。 单击“图示视图”按钮,你可以按照这些方面类别查看类似事件数,并且可以更加轻松地了解可能与问题相关的事件。
    
    - “按异常类进行筛选”会根据在配置过程中命名事件的方式对类似事件进行分组。 有可能这些名称会帮助你确定它们所属的异常的种类,如 **System.NullReferenceException** 类。
    
    - “按失败的函数进行筛选”会按引起异常的相同函数对类似事件进行分组。 这可能意味着入口点有问题。
    

    请记住,这些事件全部是按照定义相关的类似事件,并且这些筛选器会为使你更好地了解事件的关联方式。 因此,通过使用相似的事件筛选器,你可能会发现全部事件中的大多数事件与你正在查看的事件具有相同的问题,这是性能问题,它们属于你配置的异常类,并且半数类似事件具有相同的失败的函数。 操作:函数转至需要更新函数代码的开发人员。

通过查看相关事件来进行故障排除

  1. 单击“相关事件”选项卡以查看按时间相关的事件。 这些是与其他事件相关的异常,通过它们,你可以深入地了解问题。

  2. 要查看列表中事件的事件详细信息,请单击“描述”列中的链接。

    在相关事件中,你可能会发现在某段时间所有事件的响应时间都非常长。 这可能表示系统有问题,而不是代码有问题,因此可以找 IT 专业人员寻求解决方案。