查看 SharePoint 2010 日志记录中的数据 (SharePoint Server 2010)

 

适用于: SharePoint Server 2010

上一次修改主题: 2016-11-30

本文介绍 Microsoft SharePoint 2010 产品日志记录数据库并说明如何查看 SharePoint Server 2010 日志记录数据库(默认情况下名为 WSS_Logging)中的监控信息。本文还说明如何在日志记录数据库中使用自定义视图以及如何将监控信息导入到 Microsoft Excel 中。

本文内容:

  • 日志记录数据库的介绍

  • 日志记录数据库中的预定义 SQL 视图

  • 日志记录数据库中的自定义 SQL 视图

日志记录数据库的介绍

若要监控 SharePoint Server 2010 服务器及这些服务器上运行的服务,您可直接访问各种日志,如 Windows Server 事件日志、SharePoint 通用日志记录系统 (ULS) 日志(也称为“跟踪日志”)或使用率数据日志。您还可转到 SharePoint Server 2010 管理中心查看各种报告。运行状况分析器报告包含针对服务器或服务的 SharePoint Server 2010 规则。管理(诊断)报告包含与搜索相关的信息。Web 分析报告包含 Web 分析度量。有关这些报告的详细信息,请参阅查看报告和日志 (SharePoint Server 2010)

前面提到的所有监控方法均有限制。例如,Windows Server 事件日志、SharePoint ULS 日志和使用率数据日志未存储在一个位置。若要查找相关日志,您必须转到不同位置。同样,虽然管理中心的报告包含最常用的度量和监控信息,但是如果您想要向这些报告添加更多监控信息,却无法实现,因为这些报告是预定义的,无法进行修改。

您可使用 SharePoint Server 2010 的日志记录数据库提高监控效率。日志记录数据库是来自服务器场中每台服务器的 SharePoint Server 2010 监控信息的服务器场范围的存储库。日志记录数据库提供了可在一个位置查看和自定义各种监控信息的选项。此外,日志记录数据库是您可通过直接修改数据库来自定义报告的唯一 SharePoint Server 2010 数据库。

备注

有关 SharePoint Server 2010 数据库的详细信息,请参阅数据库类型和说明 (SharePoint Server 2010)

备注

数据库的默认名称是 WSS_Logging。您可使用 Windows PowerShell 更改默认名称和 SharePoint 数据库服务器位置。有关日志记录数据库名称和数据库服务器位置的详细信息,请参阅配置使用率和运行状况数据集 (SharePoint Server 2010)

将各种监控信息存储在一个位置可帮助您高效地监控 SharePoint Server 2010 服务器和服务。更重要的是,您可基于日志记录中的表自行创建满足独特的监控、报告和疑难解答要求的报告。本文介绍如何使用现有表和视图创建报告。您可能想要自行编写提供程序来创建新表。有关编写新的提供程序以在日志记录数据库中创建新表和视图的详细信息,请参阅 SharePoint 2010 (https://go.microsoft.com/fwlink/?linkid=224502&clcid=0x804)。

备注

SQL 视图是一个虚拟表。表和 SQL 视图之间的一个区别是,您可在表中修改数据,但不能在 SQL 视图中修改数据。

使用 SharePoint Server 2010 管理中心配置导入到日志记录数据库中的日志。有关如何配置日志类别、日志级别和跟踪 (ULS) 日志路径的详细信息,请参阅配置诊断日志记录 (SharePoint Server 2010)。有关如何允许写入日志记录数据库中的内容的详细信息,请参阅配置使用率和运行状况数据集 (SharePoint Server 2010)。有关如何指定日志记录数据库服务器、名称和数据库身份验证信息、要写入日志记录数据库的事件和将日志写入日志记录数据库的频率(即与使用率数据库导入相关的计时器作业)的详细信息,请参阅配置 SharePoint 运行状况分析器计时器作业 (SharePoint Server 2010)

本文中的过程使用 SQL Server Management Studio 访问日志记录数据库。Management Studio 是 Microsoft SQL Server 2008 的一个组件。

备注

若要访问日志记录数据库,您必须具有 Windows 身份验证(推荐)或 SQL 身份验证。数据库身份验证信息是在 SharePoint Server 2010 管理中心配置的。有关身份验证方法的详细信息,请参阅配置使用率和运行状况数据集 (SharePoint Server 2010)

日志记录数据库中的预定义 SQL 视图

本节介绍 SharePoint Server 2010 日志记录数据库中的分区表和 SQL 视图,包括以下三个过程:

  • 使用 SQL Server Management Studio 访问日志记录数据库

  • 通过默认视图查看日志记录信息

  • 使用 Excel 导出并查看日志记录数据

日志记录数据库对每个类别的日常数据使用单独的分区表。例如,第一天的计时器作业使用率数据将写入到 dbo.TimerJobUsage_Partition0 表,之后的第 32 天的数据将写入到 dbo.TimerJobUsageUsage_Partition31 表。一天内的日志将写入到一个分区表。这意味着,对于每个日志类别,每个分区表存储一天的日志。

备注

一个分区表与准确日期之间的映射取决于日志记录数据库的保留期以及将日志写入日志记录数据库的起始日期。通过观察每个表中的时间信息便可获得映射。例如,如果保留期为 14 天,并且今天的日志写入到分区表 2,则明天的日志将写入到分区表 3,以此类推。14 天后,将删除所有日志,并且新日志将从分区表 0 开始写入到这些分区表中。

您可使用 Management Studio 中的预定义 SQL 视图查看位于一个位置的所有监控信息。每个预定义视图收集特定日志类别的所有 32 个分区表的数据。例如,您可查看从 dbo.TimerJobUsage_Partition0dbo.TimerJobUsageUsage_Partition31 这 32 个表中的监控信息。

若要访问预定义视图,您必须访问 SharePoint Server 2010 日志记录数据库。然后从日志记录数据库中查看监控信息。

使用 Management Studio 访问日志记录数据库

  1. 在工具栏上,单击“开始”,指向“所有程序”,单击“Microsoft SQL Server 2008”或安装的最新 Microsoft SQL Server 版本,然后单击“SQL Server Management Studio”。

    备注

    如果您的服务器上没有 Management Studio,请重新安装 SQL Server 2008 并添加 Management Studio 组件。有关详细信息,请参阅 SQL Server 安装(该链接可能指向英文页面)

  2. 在“连接到服务器”对话框中,选择“数据库引擎”。然后指定服务器名称,如 ServerName\SharePoint。选择您通过 SharePoint Server 2010 管理中心配置的身份验证类型(“Windows 身份验证”或“SQL Server 身份验证”)。如果身份验证类型为“SQL Server 身份验证”,则指定数据库管理员的凭据。设置此信息后,单击“连接”。

  3. 通过单击“视图”再单击“对象资源管理器”,切换至“对象资源管理器”视图。展开“数据库”以查看具有默认名称“WSS_Logging”或您通过 SharePoint Server 2010 管理中心配置的名称的日志记录数据库。

  4. 也可以展开日志记录数据库以查看表和视图。

通过默认视图查看日志记录信息

  1. 在 Management Studio 中,使用上一过程转到日志记录数据库节点。

  2. 展开数据库的“视图”节点以查看默认视图。右键单击视图(如 dbo.RequestUsage),然后选择“选择前 1000 行”。

    操作“选择前 1000 行”是以下 T-SQL 查询脚本:

    /****** Script for SelectTopNRows command from SSMS  ******/
    SELECT TOP 1000 [PartitionId]
          ,[RowId]
          ,[LogTime]
          ,[MachineName]
          ,[FarmId]
          ,[SiteSubscriptionId]
          ,[UserLogin]
          ,[CorrelationId]
          ,[WebApplicationId]
          ,[ServerUrl]
          ,[SiteId]
          ,[SiteUrl]
          ,[WebId]
          ,[WebUrl]
          ,[DocumentPath]
          ,[ContentTypeId]
          ,[QueryString]
          ,[BytesConsumed]
          ,[HttpStatus]
          ,[SessionId]
          ,[ReferrerUrl]
          ,[ReferrerQueryString]
          ,[Browser]
          ,[UserAgent]
          ,[UserAddress]
          ,[RequestCount]
          ,[QueryCount]
          ,[QueryDurationSum]
          ,[ServiceCallCount]
          ,[ServiceCallDurationSum]
          ,[OperationCount]
          ,[Duration]
          ,[RequestType]
          ,[Title]
          ,[RowCreatedTime]
      FROM [WSS_Logging].[dbo].[RequestUsage]
    

    表类别“请求使用率”的前 1000 行显示在结果窗口中。

  3. 您可在 SQL 编辑器窗口中修改 T-SQL 查询。例如,如果表中的行超过 1000,您可能想要查看前 5000 行。为此,请通过将“SELECT TOP 1000”替换为“SELECT TOP 5000”来更改脚本,然后单击“执行”。

如果您要使用 Management Studio 以外的工具查看日志,则可从视图中提取监控信息并将其另存为文本文件或 CSV 文件。在以下过程中,Microsoft Excel 用作一个示例。

使用 Excel 导出并查看日志记录数据

  1. 在 Management Studio 中,转到日志记录数据库节点。

  2. 展开“视图”节点,右键单击要从其中提取数据的视图,然后单击“选择前 1000 行”。

  3. 在结果窗口中右键单击,再单击“全选”。然后右键单击,再单击“将结果另存为…”。

  4. 在“保存网格结果”窗口中,指定要保存文件的文件夹,将“保存类型”指定为“CSV (逗号分隔)”,然后指定相应文件名。

  5. 通过在 Excel 中双击该 CSV 文件来打开它。

日志记录数据库中的自定义 SQL 视图

利用 SharePoint Server 2010 中的日志记录数据库,您可通过两种方式创建自定义报告。可以将现有表中的相关信息进行组合来生成新的视图,也可以编写提供程序在日志记录数据库中生成新的分区表。本节中的示例仅演示第一种方式。

在使用率表和 ULSTraceLog 表中,CorrelationId 是进行疑难解答的重要参数。这是因为每个错误消息都包含一个唯一 CorrelationIdCorrelationId 是链接所有关于请求的相关信息的 GUID。下面的过程演示如何生成使用 CorrelationId 链接多个日志类别的自定义视图。

创建使用现有表的自定义 SQL 视图

  1. 在 Management Studio 中,转到日志记录数据库节点。

  2. 在日志记录数据库中,展开“视图”节点。选择要为其收集信息的视图之一。右键单击该视图,然后单击“新建视图…”。

  3. 在“添加表”窗口中,选择要添加的表。例如,如果要获取有关某天的功能使用率网站请求的信息,可添加 dbo.FeatureUsage_Partion1dbo.RequestUsage_Partion1

    T-SQL 查询自动内部联接这两个表中的唯一键 PartionId

    SELECT     
    FROM   dbo.FeatureUsage_Partition1 INNER JOIN
        dbo.RequestUsage_Partition1 ON dbo.FeatureUsage_Partition1.PartitionId = dbo.RequestUsage_Partition1.PartitionId
    
  4. 右键单击这两个表之间的链接,然后选择“删除”断开这两个表之间的联接。

  5. 若要使用 CorrelationId 内联这两个表,请单击一个表中的 CorrelationId 列并将光标移至另一个表中的 CorrelationId 列。或者,也可以直接在查询编辑器中修改 SQL 查询。

    SELECT  
    FROM   dbo.FeatureUsage_Partition1 INNER JOIN
        dbo.RequestUsage_Partition1 ON dbo.FeatureUsage_Partition1.CorrelationId = dbo.RequestUsage_Partition1.CorrelationId 
    
  6. 在每个表中选择要在新视图中显示的列。

  7. 右键单击并选择“执行 SQL”。结果将显示在结果窗口中。