诸如用于WEB服务器的灵活的日志记录.pdf

上传人:a*** 文档编号:5864007 上传时间:2019-03-26 格式:PDF 页数:18 大小:589.99KB
返回 下载 相关 举报
摘要
申请专利号:

CN201080012721.4

申请日:

2010.03.09

公开号:

CN102356390A

公开日:

2012.02.15

当前法律状态:

驳回

有效性:

无权

法律详情:

发明专利申请公布后的驳回IPC(主分类):G06F 17/00申请公布日:20120215|||专利申请权的转移IPC(主分类):G06F 17/00变更事项:申请人变更前权利人:微软公司变更后权利人:微软技术许可有限责任公司变更事项:地址变更前权利人:美国华盛顿州变更后权利人:美国华盛顿州登记生效日:20150728|||实质审查的生效IPC(主分类):G06F 17/00申请日:20100309|||公开

IPC分类号:

G06F17/00; G06F17/30; G06F17/40

主分类号:

G06F17/00

申请人:

微软公司

发明人:

V·苏德; J·E·弗里兰德; B·E·布卢姆; G(萨姆)·张

地址:

美国华盛顿州

优先权:

2009.03.16 US 12/405,217

专利代理机构:

上海专利商标事务所有限公司 31100

代理人:

钱孟清

PDF下载: PDF下载
内容摘要

本文中描述了一种灵活的日志记录系统,该系统与web服务器一起操作以用可定制成包括多个数据字段的方式来提供活动日志,可将客户机和服务器日志信息捕捉到单个位置,并可直接向分析引擎提供数据以提供近乎实时的报告。该系统在web服务器内捕捉刚发生的事件,并可在进行最后的响应之前提供报告。在web服务器中的请求处理过程中,无论事件在何时发生,服务器扩展模块引发日志事件。该系统将所接收到的数据与日志定义相匹配并将该数据写入任何与之匹配的日志中。因此,该灵活的日志记录系统为内容提供者和管理员提供丰富、灵活、快速的平台以获得对其web服务器的请求的状态的实时视图。

权利要求书

1: 一种用于向一个或多个目的地报告日志数据的计算机实现的方法, 所述方法包括 : 接收 (410) 指定要存储日志数据的一个或多个报告目的地的日志定义 ; 接收 (420) 一个或多个所捕捉的日志事件 ; 从所述日志定义中所指定的所述一个或多个报告目的地中选择 (430) 一报告目的地 ; 将所述日志定义中的字段映射 (440) 到所接收的日志事件的字段中 ; 将所述日志事件的经映射字段发送 (450) 到所选报告目的地 ; 以及 判定 (460) 所述日志定义是否指定了附加的报告目的地, 且如果为是, 则对每个附加 报告目的地重复选择、 映射和发送的步骤, 其中上述步骤由至少一个处理器来执行。
2: 如权利要求 1 所述的方法, 其特征在于, 接收所捕捉的日志事件包括接收至少一个 服务器侧事件和至少一个客户机侧事件。
3: 如权利要求 1 所述的方法, 其特征在于, 所述日志定义中的字段选自由以下项目组 成的组 : 一个或多个请求首部、 一个或多个响应首部、 一个或多个服务器变量、 一个或多个 性能计数器, 以及一个或多个自定义模块字段。
4: 如权利要求 1 所述的方法, 其特征在于, 至少一个报告目的地是文件, 其中向所述报 告目的地发送经映射字段包括将所述日志事件的经映射字段存储到所述文件。
5: 如权利要求 1 所述的方法, 其特征在于, 所述至少一个报告目的地是数据库, 其中向 所述报告目的地发送经映射字段包括将所述日志事件的经映射字段存储为数据库表格中 的列。
6: 如权利要求 1 所述的方法, 其特征在于, 对每一个附加报告目的地重复步骤包括将 字段并行地发送到至少两个报告目的地。
7: 如权利要求 1 所述的方法, 其特征在于, 向所选报告目的地发送所述日志事件的经 映射字段包括将所述日志事件发送到用于基于所述日志事件向客户开账单的数据库中。
8: 如权利要求 1 所述的方法, 其特征在于, 接收一个或多个所捕捉的日志事件包括在 所述请求完整之前, 接收有关渐进下载请求的信息, 其中向报告目的地发送经映射字段包 括近乎实时地提供所接收到的信息。
9: 如权利要求 1 所述的方法, 其特征在于, 所述日志定义是可由管理员定制的, 以包括 由所述管理员选择的字段。
10: 一种用于提供灵活的 web 服务器日志记录的计算机系统, 所述系统包括 : 处理器和存储器, 所述处理器和存储器被配置成执行软件指令 ; 日志定义组件 (110), 被配置成接收描述一个或多个日志的日志定义, 其中日志由要包 含在所述日志中的数据字段列表以及要存储所述日志的目的地定义 ; 服务器数据捕捉组件 (120), 被配置成捕捉由 web 服务器或扩展 web 服务器的模块所引 发的事件 ; 客户机数据捕捉组件 (130), 被配置成捕捉 web 服务器的客户机上的事件并将所述事 件发送到所述 web 服务器 ; 以及 报告组件 (140), 被配置成接收所捕捉的服务器和客户机数据并将所述数据提供给一 个或多个报告目的地。
11: 如权利要求 10 所述的系统, 其特征在于, 与日志相关联的字段列表可根据安装在 2 web 服务器上的扩展基于所安装的扩展提供的日志数据来扩展。
12: 如权利要求 10 所述的系统, 其特征在于, 所述服务器数据捕捉组件进一步被配置 成收集任何所引发的事件日志数据并基于所述日志定义将所述数据引导到一个或多个日 志目的地。
13: 如权利要求 10 所述的系统, 其特征在于, 所述服务器数据捕捉组件进一步被配置 成将在特定请求的过程中引发的每个事件聚合并关联, 以使系统随后可相关来自不同模块 以及 web 服务器自身内的事件, 以提供处理请求的完整记录。
14: 如权利要求 10 所述的系统, 其特征在于, 所述客户机数据捕捉组件进一步被配置 成将日志数据提供给可定制的服务器模块, 所述服务器模块可由第三方替代以执行自定义 客户机数据处理。
15: 如权利要求 10 所述的系统, 其特征在于, 所述报告组件进一步被配置成基于存储 在所述服务器数据和所述客户机数据中的匹配请求标识符来相关涉及同一个请求的所捕 捉的服务器和客户机数据。

说明书


诸如用于 Web 服务器的灵活的日志记录

    背景
     Web 服务器一般产生活动日志, 这些日志提供该 web 服务器所接收到的请求以及 所发出的响应的记录。W3C 主张用于 web 服务器日志文件的标准格式 ( 参见, 如 “http:// www.w3.org/TR/WD-logfile” ), 不过还存在其他的专有格式。大多数的分析工具支持标 准日志文件格式, 不过有关每个服务器事务的信息是固定的 (fixed)。服务器一般将更新 的条目添加在日志文件的尾端, 且服务器可周期性地开始新的日志文件 ( 如, 在当前日志 达到特定大小时或经过一段时期后 )。服务器一般添加有关请求的信息, 包括客户机 IP 地址、 请求日期 / 时间、 所请求的页面、 HTTP 响应代码、 所提供的字节、 用户代理和推荐者 (referrer)。 该服务器可将这些字段组合到单个文件中, 或者将它们拆分到不同的日志中, 诸如访问日志、 错误日志或推荐者日志。 这些文件一般不能由普通的因特网用户访问, 而仅 能由网站管理员或其他管理员访问。以下是典型的 wen 服务器日志的示例。
     #Version : 1.0
     #Date : 12-Jan-1996 00:00:00
     #Fields : time cs-method cs-uri
     00:34:23 GET/foo/bar.html
     12:21:16 GET/foo/bar.html
     12:45:52 GET/foo/bar.html
     12:57:34 GET/foo/bar.html
     网站管理员可使用对 web 服务器日志的统计分析按照一天内的时间、 一周内的 天、 推荐者或用户代理来检验通信量模式。对 Web 服务器日志的分析可有助于有效的网站 管理、 充足的主存资源和销售努力的微调。 Web 分析是出于理解和优化网站用途目的的对因 特网数据的测量、 收集、 分析和报告。站点上的 web 分析法测量访问者 ( 一旦 ) 在网站上的 旅程。 这包括驱动 (driver) 和会话 ; 例如, 登陆页鼓励人们做出购买, 以及在商业环境中的 网站的性能。此数据通常与组织性能指示符作比较, 并用来改善网站或营销活动的观众响 应。
     很多不同的供应商提供站点上的 web 分析法软件与服务。有两种用来收集数据的 主要技术方法。第一种方法即日志文件分析, 读取其中 web 服务器记录其所有事务的日志 文件。第二种方法即页面标签, 在每个页面上使用 JavaScript 来通知第三方服务器何时 web 浏览器呈现了页面。两种方法均收集可被处理以产生 web 通信量报告的数据。
     Web 日志分析软件 ( 也称为 web 日志分析器 ) 是简单种类的 web 分析法软件, 该软 件解析来自 web 服务器的日志文件, 并基于包含在该日志文件中的值, 得到关于谁、 何时以 及如何访问 web 服务器的指示符。一般报告立即从日志文件产生, 不过替代地, 可将日志文 件解析到数据库中并按要求产生报告。在 1990 年代早期, 网站统计数据主要由向 web 服务 器做出的客户机请求 ( 或点击 (hit)) 的计数组成。一开始这是合理的方法, 因为那时每个 网站经常由单个 HTML 文件组成。然而, 随着 HTML 中图像的引入以及跨多个 HTML 文件的网 站的引入, 此计数变得不那么有用。
     Web 高速缓存的广泛使用也提出了关于日志文件分析的问题。如果有人重新访问 页面, 则经常从浏览器高速缓存中取回第二个请求, 所以 web 服务器将接收不到请求。这意 味着这个人通过该站点的路径丢失了。可通过配置该 web 服务器来战胜高速缓存, 不过这 对访问者而言可导致网站的性能下降。Web 分析法供应商通过添加使客户机向日志服务器 报告使用信息的客户机侧逻辑来战胜这个现象, 从而促使更多的日志分析。
     Web 日志分析还展现出多个不希望有的问题。首先, 在日志的处理中存在固有延 迟。存在从接收到请求的时间到请求被写入日志的时间之间的延迟 ( 如, 由于操作系统或 硬件转储清除的延迟磁盘高速缓存 )、 将日志放到将作分析之处的延迟以及在处理日志并 以适于分析的格式 ( 诸如经由数据库中的行 ) 提供数据的延迟。这些延迟中的每一个意味 着内容提供者不能发现有关正在使用的提供者站点的最新信息。对于一些类型的内容而 言, 诸如现场媒体事件, 这可能意味着直到事件结束还没有关于事件成功的有意义分析。 诸 如负载平衡的某些决定可用有关站点使用的更即时信息来改善, 这些更即时信息一般可通 过仅提供过程级别数据 ( 如, 没有访问者或请求信息 ) 的其他方式得到 ( 诸如通过监测性 能计数器 )。
     在很多情况下, 记录比标准日志格式所支持的更多的信息是有用的。对个人数据 发出敏感的站点可能希望省略特定数据的记录。因此, 第二个问题是网站日志文件可能实 际上不包含与内容提供者最相关的数据, 且该 web 服务器可能不支持提供任何超出少数数 据预定义字段之外的数据。对于其他类型的信息, 内容提供者可能不得不为 web 服务器编 写自定义扩展或就是不能获得该数据。有时内容提供者可在客户机处获得附加数据, 不过 接着日志分析软件执行尝试相关客户机与服务器日志以提供关于单个客户机发生了什么 的完整画面的额外步骤。该数据相关也增加了 web 通信量分析的延迟。 发明内容 本文中描述了一种灵活的日志系统, 该系统与 web 服务器一起操作以用可定制成 包括多个数据字段的方式来提供活动日志, 可将客户机及服务器日志信息捕捉到单个位 置, 并可直接向分析引擎提供数据以提供近乎实时的报告。该灵活的日志系统在 web 服务 器内捕捉刚发生的请求及其他事件, 并可在进行最后响应之前提供报告。该系统从 web 管 理员或其他用户处获得定义管理员想要记录的数据字段以及要存储这些字段的一个或多 个目的地的日志定义。该系统可接收用于不同用途的多个日志定义, 以使一些日志包含不 同的数据并存储于不同的目的地。在 web 服务器中处理请求的过程中, 无论事件何时发生 服务器扩展模块都引发日志记录事件, 针对该事件服务器具有管理员可能想要记录的数 据。该系统将所接收到的数据与日志定义相匹配并将该数据写入任何相匹配的日志中。日 志目的地除了传统的日志文件之外还可包括数据库, 从而访问该数据库的报告软件可执行 实时报告。因此, 该灵活的日志记录系统为内容提供者和管理员提供丰富、 灵活、 快速的平 台以获得对其 web 服务器的请求的状态的实时视图。
     提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步描述的一 些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征, 也不旨在用于 限制所要求保护主题的范围。
     附图说明
     图 1 是示出一个实施例中的灵活日志记录系统的各组件的框图。 图 2 是示出一个实施例中的灵活日志记录系统的操作环境的框图。 图 3 是示出一个实施例中的该系统接收日志数据的处理的流程图。 图 4 是示出一个实施例中的该系统报告所接收到的日志数据的处理的流程图。具体实施方式
     本文中描述了一种灵活的日志记录系统, 该系统与 web 服务器一起操作以用可定 制成包括多个数据字段的方式来提供活动日志, 可将客户机和服务器日志信息捕捉到单个 位置, 并可直接向分析引擎提供数据以提供近乎实时的报告。 该系统还是可扩展的, 从而第 三方研发者可添加新数据以进行日志记录。 研发者还可通过编写自定义处理应用来扩展该 系统, 这些自定义处理应用接收绑定到日志的相同数据。自定义应用可直接地向数据库或 控制板应用写入数据。在典型的 web 日志中, 当请求结束时 web 服务器作出日志条目。对 于对大媒体文件的请求 ( 如, 一小时长的流传送呈现 ), 这可意味着甚至很长时间内没有日 志信息写入, 比可用于分析的少得多。该灵活的日志系统在 web 服务器内捕捉刚发生的请 求及其他事件, 并可在进行最后响应之前提供报告。该系统从 web 管理员或其他用户处获 得定义管理员想要记录的数据字段以及要存储这些字段的一个或多个目的地的日志定义。 该系统可接收用于不同用途的多个日志定义, 从而一些日志包含不同的数据且存储于不同 的目的地。在 web 服务器中处理请求的过程中, 无论事件何时发生服务器扩展模块都引发 日志记录事件, 针对该事件服务器具有管理员想要记录的数据。该系统将所接收到的数据 与日志定义相匹配并将该数据写入任何相匹配的日志中。 日志目的地除了传统的日志文件 之外还可包括数据库, 从而访问该数据库的报告软件可执行实时报告。 因此, 该灵活的日志 记录系统为内容提供者和管理员提供丰富、 灵活、 快速的平台以获得对其 web 服务器的请 求的状态的实时视图。
     图 1 是示出一个实施例中的灵活的日志记录系统的各组件的框图。灵活的日志记 录系统 100 包括日志定义组件 110、 服务器数据捕捉组件 120、 客户机数据捕捉组件 130、 报 告组件 140 和用户接口组件 150。此处详细地描述了这些组件中的每一个。
     日志定义组件 110 接收描述一个或多个日志的日志定义。日志定义包括要包含在 日志中的字段列表。 管理员或内容提供者通过直接或经由用户接口编辑日志定义来创作日 志定义。 例如, 可将日志定义存储在文件中, 诸如可用文本编辑器或其他编辑器编辑的可扩 展标记语言 (XML) 文件。替代地或附加地, 日志定义组件 110 可调用用户界面组件 150 来 显示例如用户可从中选取字段来包括在日志中的可用日志字段列表。 日志字段可包括字段 首部、 响应首部、 服务器变量和扩展 web 服务器的功能的模块的模块变量。
     服务器数据捕捉组件 120 捕捉由 web 服务器或扩展 web 服务器的模块所引发的事 件。系统 100 定义与 web 浏览器相关联的任何代码可引发的事件类型以提供日志数据。日 志数据可包括模块标识符、 字段名称和具体的日志信息。日志定义可提供模块标识符和 / 或字段名称以标识日志定义作者想要记录的特定字段。对于非模块的日志记录 ( 如, 请求 首部、 响应首部和服务器变量 ), 该事件可提供众所周知的标识符替代模块标识符来辨别这 些类型。服务器数据捕捉组件 120 收集全部所引发的事件日志数据并基于日志定义将数据引导至一个或多个日志目的地。一个日志目的地可包括标准 W3C 日志文件, 以使 web 服务 器在更多先进的日志记录目的地并排地持续产生传统的 web 服务器日志。
     服务器数据捕捉组件 120 可将特定请求过程中引发的每个事件聚合和关联, 从而 系统 100 随后可相关来自不同模块和 web 服务器自身内的事件, 以提供关于请求处理的完 整记录。例如, 服务器日志和客户机日志均可包含全局唯一标识符 (GUID), 该 GUID 为日志 中与同一事件 ( 如, 请求、 媒体流等 ) 相关的字段。 在一些情况下, 请求可跨多个服务器。 例 如, 在使用自适应流传送时, 客户机可从服务器场 (farm) 请求媒体文件的部分, 并从不同 服务器得到媒体文件的一些部分。客户机可指定客户机标识符, 该客户机标识符允许系统 100 检测每个客户机请求而不考虑提供该请求的服务器, 然后在日志数据中相关这些请求。
     日志目的地可为特定应用、 站点或在数据存储器的其自有目录中的虚拟目录聚合 日志数据, 从而不需要解析默认服务器日志文件就可在与应用特定的位置处获得相关的日 志信息。数据存储器的目录还可具有特定的许可, 从而例如在共享 web 主机上运行应用的 每个应用作者仅可访问与该作者自己的应用相关的日志信息。
     客户机数据捕捉组件 130 捕捉客户机上的事件并将这些事件发送到 web 服务器。 由于服务器将所请求的网页提供给客户机, 因此该服务器对客户机运行的东西具有一些影 响。传统分析法平台在请求透明图像的网页中嵌入 JavaScript, 此处对图像的请求包含 URL 中针对服务器的数据。 此方法在一些情况下是有用的, 不过受限于 URL 长度和数据类型 限制。 客户机侧数据捕捉组件 130 可使用此技术来操作, 然而, 组件 130 也可使用其他技术, 诸如发送应用以供客户机运行并在所请求的网页中嵌入对应用的引用, 此处应用通过可比 基于 URL 的技术包含多得多的数据的 HTTP POST( 张贴 ) 请求提供日志数据。 可通过 web 服务器提供的客户机应用的一个示例是 Microsoft Silverlight 应 用。Microsoft Silverlight 接收网页中对包含在称为 XAP 文件的容器中的应用的引用。 Microsoft Silverlight 提取 XAP 文件并且调用该应用。Microsoft Silverlight 提供具 有沙箱化 (sandboxed) 安全环境的应用, 在应用中该环境运行使得用户的计算机系统受到 保护而免受恶意或错误应用代码损害。Microsoft Silverlight 提供应用可调用的 API 以 将用户的计算机系统和硬件与潜在有害的应用动作相屏蔽的方式来回放媒体并将数据发 送到服务器。因此, Microsoft Silverlight 和其他浏览器插件可提供预期运行客户机数 据捕捉组件 130 的环境的所有功能。
     在一些实施例中, 客户机数据捕捉组件 130 可包括将所接收到的客户机日志数据 作为就像本文中描述的服务器上所引发的其他日志事件的日志事件引发的服务器上组件。 这允许服务器侧的报告逻辑和日志定义将客户机侧日志数据作为要包括在日志目的地中 的字段的一个或多个源来处理。
     报告组件 140 接收所捕捉的服务器和客户机数据并将这些数据提供给一个或多 个报告目的地。例如, 报告组件 140 可基于所捕捉的事件产生标准的 W3C 日志文件。当记 录日志到文件时, 报告组件 140 可在将日志条目写入磁盘之前, 在一段可配置的时间段内 保持这些条目, 从而只有特定窗口内的最新日志张贴才会被写入磁盘—这使得为客户机而 写入磁盘的重复临时数据或可随着累积数据被持续记录的请求最小化。报告组件 140 可将 来自多个源的数据 ( 如, 客户机、 一个或多个服务器模块、 操作系统数据等 ) 聚合成一个或 多个日志条目以供报告。例如, 与单个客户机请求相关的数据可以被记录在一起。报告组
     件 140 可与其他系统通信以提供实时的日志数据。报告组件 140 可直接将数据写入包括一 个或多个字段的数据库, 从而不使用解析来读取数据。可对照这一数据库直接运行很多分 析工具。
     用户界面组件 150 提供用户与系统 100 的组件之间的界面。例如, 用户界面组件 150 可从用户处接收日志定义, 并提供用于编辑日志定义的控件。另外, 用户界面组件 150 可接收管理日志命令, 诸如开始或停止日志记录、 旋转日志文件等的命令。用户界面组件 150 还向用户显示信息, 诸如日志定义的细节以及潜在的实时报告数据。
     在其上实现了系统的计算设备可包括中央处理单元、 存储器、 输入设备 ( 例如, 键 盘和指示设备 )、 输出设备 ( 例如, 显示设备 ), 以及存储设备 ( 例如, 磁盘驱动器或其他非 易失性存储介质 )。存储器和存储设备是可以编码有实现或启用系统的计算机可执行指令 ( 例如, 软件 ) 的计算机可读存储介质。此外, 数据结构和消息结构可以被存储或通过诸如 通信链路上的信号之类的数据传输介质传输。可以使用各种通信链路, 诸如因特网、 局域 网、 广域网、 点对点拨号连接、 蜂窝电话网络等。
     系统的各实施例可以在各种操作环境中实现, 操作环境包括个人计算机、 服务器 计算机、 手持式或膝上型设备、 多处理器系统、 基于微处理器的系统、 可编程消费电子产品、 数码相机、 网络 PC、 小型计算机、 大型计算机、 包括上述系统或设备中的任一个的分布式计 算机环境等。 计算机系统可以是蜂窝电话、 个人数字助理、 智能电话、 个人计算机、 可编程的 消费电子产品、 数码相机等。 可以在由一台或多台计算机或其他设备执行的诸如程序模块之类的计算机可执 行的指令的一般上下文中来描述本系统。一般而言, 程序模块包括执行特定任务或实现特 定抽象数据类型的例程、 程序、 对象、 组件、 数据结构等等。通常, 程序模块的功能可以按需 在各个实施例中进行组合或分布。
     图 2 是示出一个实施例中的灵活的日志记录系统的操作环境的框图。该环境包括 客户机 210 和通过网络边界 920 与之相连的服务器 250。客户机 210 包括提供日志数据的 一个或多个数据源 220, 诸如 Microsoft Silverlight、 浏览器应用及媒体播放器。客户机 数据源 220 跨越网络边界 290 诸如通过使用 HTTP POST 请求 230 向服务器 252 提供数据。 服务器 250 执行一个或多个 web 服务器进程 260。每个进程包括在潜在感兴趣的事件发生 时引发事件 270 的各种日志源 265。日志模块 280 捕捉事件并将它们报告给一个或多个日 志目的地 285, 诸如日志文件或合作数据库。 第三方还可提供捕捉所引发的日志事件并处理 所接收到的日志数据的模块, 诸如自定义模块 275。
     图 3 是示出一个实施例中的该系统接收日志数据的处理的流程图。从系统接收日 志定义的框 310 开始。用户可通过用户界面创建日志定义, 从而系统可在接收到日志事件 时访问日志定义。日志定义描述一个或多个日志, 以及每个日志中用户感兴趣的字段和要 向其提供日志数据的一个或多个目的地。 继续到框 320, 系统接收日志事件。 系统可从服务 器或客户机处同时接收日志事件。服务器事件可涉及对服务器接收到的请求的处理, 而客 户机事件可涉及在客户机上检测到的用户动作 ( 如, 收看视频 )。继续到框 330, 系统判定 所接收到的日志事件是否与任何日志定义相匹配。例如, 事件可包含与日志定义中的源标 识符匹配的源标识符, 或者可包含在日志定义中指定的一个或多个字段。 注意, 系统为每一 个匹配的日志定义执行接下来的步骤, 且相同的日志事件潜在地贡献给多于一个日志。
     继续到判定框 340, 如果该日志事件与日志定义相匹配, 则系统在框 360 继续, 否 则系统跳转至框 350。继续到框 350, 系统忽略该日志事件, 然后继续到框 370。系统可能引 发很多用户不感兴趣的日志事件, 且因此不被包含在任何日志定义中。可使用 web 服务器 来主存很多类型的网站, 且每一类网站可具有变化的日志记录规范。继续到框 360, 该系统 存储日志事件以供报告。例如, 系统可将日志事件存储于日志事件的存储器内列表中。继 续到判定框 370, 如果系统检测到一组相关日志事件是完整的, 则系统继续到框 380, 否则 系统循环到框 320 以接收附加的日志事件。例如, 系统可检测与单个请求相关的所有日志 事件并将它们归组在一起以供统一报告。
     继续到框 380, 该系统将相关的日志事件聚合在一起以供统一报告。例如, 日志定 义可基于特定请求、 应用和虚拟目录等指定特定日志记录, 且该聚合在日志定义的基础上 关联日志事件。继续到框 390, 系统报告所存储的日志事件, 如进一步参考图 4 所述。在框 390 之后, 这些步骤结束。
     图 4 是示出一个实施例中该系统报告所接收到的日志数据的处理的流程图。从框 410 开始, 系统接收指定要存储日志数据的一个或多个目的地的日志定义。例如, 系统可访 问存储于在每个 web 服务器上的 XML 文件中的日志定义, 且该 XML 文件可具有对每个目的 地的分层定义。继续到框 420, 系统接收一个或多个所捕捉的日志事件。例如, 系统可按图 3 的过程接收事件。继续到框 430, 系统从日志定义选择第一个 ( 或下一个 ) 报告目的地。 例如, 系统可枚举报告目的地并遍历它们迭代。
     继续到框 440, 系统将日志定义中的任何字段映射到所接收到的日志事件中的字 段。 字段可包括许多类型的数据, 包括请求首部、 响应首部、 服务器变量和自定义模块数据。 日志事件可包括与特定事件相对应的服务器和客户机侧数据。继续到框 450, 系统向报告 目的地发送日志数据的经映射字段。 例如, 如果报告目的地是文件, 则系统将日志数据的经 映射字段存储到该文件中。如果报告目的地是数据库, 则系统将经映射字段存储为数据库 表格中的列。继续到判定框 460, 如果在日志定义中有更多的报告目的地, 则系统循环到框 430 以选择下一个报告目的地, 否则这些步骤完成。尽管示出为串行, 该系统可并行地处理 多个报告目的地以减少报告等待时间并有效地利用服务器资源。
     在一些实施例中, 灵活的日志记录系统提供实时的或近乎实时的 ( 如, 在五分钟 内 ) 的日志记录。例如, 在系统从各个服务器和 / 或客户机组件接收日志数据时, 系统可向 分析服务器报告该数据, 诸如与报告引擎相关联的数据库。 在数据到达时, 管理员或其他用 户可查看基于该数据的报告, 以使用户具有与对该服务器的请求有关的最新信息。此信息 传递比传统的日志记录到文件、 然后周期性地后处理该文件的模式快得多地进行。 另外, 该 系统可基于特定数据特性分离数据, 诸如将对于同一个站点、 用户、 服务器或虚拟目录的请 求日志记录于同一位置。该数据还可由服务器流水线中的其他 ( 如, 报告 ) 模块消费, 且一 个或多个模块可将该数据推送至数据库或 web 服务以供实时报告并监测。首先向发起请求 的服务器报告日志数据克服了由一些浏览器对向第三方站点发送信息施加的限制。 在这种 情况下, 数据首先去往第一方站点, 其然后将数据转发给第三方站点。
     在一些实施例中, 灵活的日志记录系统允许任何 HTTP 客户机使用标准的 HTTP POST/GET 请求向服务器发送回日志信息。服务器关注提取、 验证该日志信息并将其记录到 合并的日志中或者使其可用于实时报告。 例如, 在媒体情况下, 客户机可邮送回有关回放对话的消费相关信息, 该信息可被用于分析、 QOS 监测或开账单。这可由标准认证 / 授权政策 来提供安全的日志记录。由客户机发送的日志信息是实现相关的, 且服务器实现是灵活的 以容纳自定义字段。
     服务器可向客户机上的应用 ( 如, 基于浏览器应用的 Microsoft Silverlight) 提 供可扩展标记语言 (XML) 或其他格式清单, 这些清单指定请求发送给服务器的客户机日志 记录。以下是一示例客户机清单。
     在本示例中, 清单包含 : “字段” (Fields) 元素, 该元素标识要包括在日志中的客 户机侧字段的名称 ; 以及 “目的地” (Destination) 元素, 该元素标识请求客户机向其发送 日志的 URL( 如, 经由 HTTP POST)。 还要注意, 该示例清单包括两个不同的日志定义, 这两个 不同日志定义由客户机提供给不同的目的地 URL 并且含有不同的信息。日志定义的作者可 将日志数据引导到合适的位置并在到达时分离出有用的信息, 而不是执行无用的后处理。 灵活的日志记录系统还可与将高速缓存的日志数据提交给永久存储器异步和同步地操作。 这对于存储器内高速缓存增长过快且系统存档进程无法跟上传入请求的情形、 以及需要即 时写通过行为的情况, 是有用的。
     在一些实施例中, 灵活的日志记录系统允许管理员或内容提供者指定日志定义中
     的自定义字段。 这个特征允许自定义字段包括 ( 但不限于 )HTTP 请求首部、 HTTP 响应首部、 Web 服务器变量和 Windows 性能计数器。另外, 任何 web 服务器模块可记录任何字段。这些 自定义字段然后对于写入日志文件或其他报告目的地可用。该系统还考虑多个设置, 诸如 专用 / 共享主存, 由此能够共享同一服务器的多个站点的信息可被划分并提供给站点的相 应拥有者。
     在一些实施例中, 灵活的日志记录系统存储哪些字段针对特定日志文件记录以及 服务器配置信息。该配置还可包括策略, 诸如日志翻转、 日志文件名称、 客户机侧日志记录 是否启用等等。该特征允许创建多个日志定义并因此允许日志记录对该日志有用的信息。 场景的示例会是想要日志记录服务质量 (QoS) 和分析法信息的内容传递网络。在内部使用 QoS 时, 分析法信息是之后与其用户共享的信息。在这种情况下, CDN 不必执行后处理, 且仅 可创建两个日志定义并仅将相关的字段添加到每一个日志定义。
     在一些实施例中, 灵活的日志记录系统通过日志定义组件接收过滤规则, 这些过 滤规则根据特定的日志定义限制所记录的数据。例如, 特定的内容提供者可能仅仅对网页 的日志记录请求 ( 如, 包括 *.htm 的请求 ) 而不是图像请求感兴趣。内容提供者可提供指 定要应用于特定日志的过滤器的过滤规则。这样, 内容提供者可减少日志的大小并确保日 志仅包含提供者感兴趣的数据。过滤准则的其他示例包括多用途因特网邮件扩展 (MIME) 类型和所需要的字段。过滤允许系统捕捉较少的数据来进行更快的处理, 不管是现场处理 还是后处理。 在一些实施例中, 灵活的日志记录系统允许安装用于处理客户机日志记录的自定 义模块。 如此处所述, 服务器可在模块中接收客户机日志数据, 该模块引发与其它由服务器 侧日志记录所引发的类似的日志事件。 第三方可选择用自定义模块中的自定义行为替代这 个模块, 自定义模块执行特定站点或网络应用特定的处理。自定义模块允许第三方包括对 所接收到的客户机日志数据的不同处理而不是默认的模块行为。
     在一些实施例中, 灵活的日志记录系统允许安装用于处理所捕捉日志数据的报告 的自定义模块。尽管日志定义提供了关于所记录信息的目的地和类型的灵活性, 一些第三 方仍可选择提供对所捕捉日志数据的附加自定义处理, 且可通过自定义报告模块这样做。 例如, 第三方可实现与第三方数据库连接的模块, 并根据特定的方案将所捕捉的日志数据 输入到数据库行。 多个自定义报告模块可同时操作以出于不同目的用不同方法提供所捕捉 的日志数据。
     当前, 一般的 web 服务器仅允许站点级别的日志记录。在一些实施例中, 灵活的 日志记录系统允许日志记录和为不同级别的配置级别隔离日志, 包括站点、 应用、 虚拟目录 等。例如, 所分享的主存服务可选择向共享的 web 主机的每个虚拟目录提供一个日志, 以使 每个虚拟目录拥有者可检索有关拥有者站点的信息。 如今类似的功能涉及将一个站点日志 拆分为多个文件作为后处理步骤。
     灵活的日志记录系统提供在当前日志记录系统中不可用的日志信息的一个场景 用于渐进下载, 诸如针对现场事件。 渐进下载可包括长时间事件 ( 如, 两小时 ) 的视听数据。 传统的日志记录系统在整个事件完成之后提供有关请求的信息。反之, 灵活的日志记录系 统可在接收到请求时并在整个事件进行中提供日志数据。 管理员设定指定管理员想要检测 的事件类型和所监测数据的目的地的日志定义。 这可向内容提供者提供关于有多少个观看
     者正在收看事件、 正在发生的任何差错、 事件过程中的服务器负载等的较早信息。
     在一些实施例中, 灵活的日志记录系统提供用于向客户开账单的信息。 例如, 特定 客户可基于内容项目被下载的次数或基于用户在时间段内使用的带宽而向内容提供者支 付。内容提供者可设置带有开账单专用的使用信息的日志定义, 以使内容提供者可正确地 向用户收费。
     事件数据结构
     以下是一个实施例中由引发日志事件的服务器侧模块所引发的事件数据结构的 一个示例。
     符合 HTTP_TRACE_EVENT 结构的是以下结构中的一个或多个。
     从前面的描述中可以看出, 可以理解, 此处描述的灵活的日志记录系统的特定实 施例只是为了说明, 但是, 在不偏离本发明的精神和范围的情况下, 可以进行各种修改。例 如, 尽管此处描述了 web 服务器, 其他记录信息的服务器类型可使用此处描述的技术来提 供丰富、 灵活、 实时的日志记录。因此, 本发明仅受所附权利要求书限制。
    

诸如用于WEB服务器的灵活的日志记录.pdf_第1页
第1页 / 共18页
诸如用于WEB服务器的灵活的日志记录.pdf_第2页
第2页 / 共18页
诸如用于WEB服务器的灵活的日志记录.pdf_第3页
第3页 / 共18页
点击查看更多>>
资源描述

《诸如用于WEB服务器的灵活的日志记录.pdf》由会员分享,可在线阅读,更多相关《诸如用于WEB服务器的灵活的日志记录.pdf(18页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 102356390 A (43)申请公布日 2012.02.15 CN 102356390 A *CN102356390A* (21)申请号 201080012721.4 (22)申请日 2010.03.09 12/405,217 2009.03.16 US G06F 17/00(2006.01) G06F 17/30(2006.01) G06F 17/40(2006.01) (71)申请人 微软公司 地址 美国华盛顿州 (72)发明人 V苏德 JE弗里兰德 BE布卢姆 G( 萨姆 )张 (74)专利代理机构 上海专利商标事务所有限公 司 31100 代理人 钱孟清 。

2、(54) 发明名称 诸如用于 Web 服务器的灵活的日志记录 (57) 摘要 本文中描述了一种灵活的日志记录系统, 该 系统与 web 服务器一起操作以用可定制成包括多 个数据字段的方式来提供活动日志, 可将客户机 和服务器日志信息捕捉到单个位置, 并可直接向 分析引擎提供数据以提供近乎实时的报告。该系 统在 web 服务器内捕捉刚发生的事件, 并可在进 行最后的响应之前提供报告。在 web 服务器中的 请求处理过程中, 无论事件在何时发生, 服务器扩 展模块引发日志事件。该系统将所接收到的数据 与日志定义相匹配并将该数据写入任何与之匹配 的日志中。 因此, 该灵活的日志记录系统为内容提 供者。

3、和管理员提供丰富、 灵活、 快速的平台以获得 对其 web 服务器的请求的状态的实时视图。 (30)优先权数据 (85)PCT申请进入国家阶段日 2011.09.15 (86)PCT申请的申请数据 PCT/US2010/026709 2010.03.09 (87)PCT申请的公布数据 WO2010/107626 EN 2010.09.23 (51)Int.Cl. (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书 2 页 说明书 11 页 附图 4 页 CN 102356400 A1/2 页 2 1. 一种用于向一个或多个目的地报告日志数据的计算机实现的方法, 所述方法包括。

4、 : 接收 (410) 指定要存储日志数据的一个或多个报告目的地的日志定义 ; 接收 (420) 一个或多个所捕捉的日志事件 ; 从所述日志定义中所指定的所述一个或多个报告目的地中选择 (430) 一报告目的地 ; 将所述日志定义中的字段映射 (440) 到所接收的日志事件的字段中 ; 将所述日志事件的经映射字段发送 (450) 到所选报告目的地 ; 以及 判定 (460) 所述日志定义是否指定了附加的报告目的地, 且如果为是, 则对每个附加 报告目的地重复选择、 映射和发送的步骤, 其中上述步骤由至少一个处理器来执行。 2. 如权利要求 1 所述的方法, 其特征在于, 接收所捕捉的日志事件包。

5、括接收至少一个 服务器侧事件和至少一个客户机侧事件。 3. 如权利要求 1 所述的方法, 其特征在于, 所述日志定义中的字段选自由以下项目组 成的组 : 一个或多个请求首部、 一个或多个响应首部、 一个或多个服务器变量、 一个或多个 性能计数器, 以及一个或多个自定义模块字段。 4. 如权利要求 1 所述的方法, 其特征在于, 至少一个报告目的地是文件, 其中向所述报 告目的地发送经映射字段包括将所述日志事件的经映射字段存储到所述文件。 5. 如权利要求 1 所述的方法, 其特征在于, 所述至少一个报告目的地是数据库, 其中向 所述报告目的地发送经映射字段包括将所述日志事件的经映射字段存储为数。

6、据库表格中 的列。 6. 如权利要求 1 所述的方法, 其特征在于, 对每一个附加报告目的地重复步骤包括将 字段并行地发送到至少两个报告目的地。 7. 如权利要求 1 所述的方法, 其特征在于, 向所选报告目的地发送所述日志事件的经 映射字段包括将所述日志事件发送到用于基于所述日志事件向客户开账单的数据库中。 8. 如权利要求 1 所述的方法, 其特征在于, 接收一个或多个所捕捉的日志事件包括在 所述请求完整之前, 接收有关渐进下载请求的信息, 其中向报告目的地发送经映射字段包 括近乎实时地提供所接收到的信息。 9. 如权利要求 1 所述的方法, 其特征在于, 所述日志定义是可由管理员定制的,。

7、 以包括 由所述管理员选择的字段。 10. 一种用于提供灵活的 web 服务器日志记录的计算机系统, 所述系统包括 : 处理器和存储器, 所述处理器和存储器被配置成执行软件指令 ; 日志定义组件 (110), 被配置成接收描述一个或多个日志的日志定义, 其中日志由要包 含在所述日志中的数据字段列表以及要存储所述日志的目的地定义 ; 服务器数据捕捉组件(120), 被配置成捕捉由web服务器或扩展web服务器的模块所引 发的事件 ; 客户机数据捕捉组件 (130), 被配置成捕捉 web 服务器的客户机上的事件并将所述事 件发送到所述 web 服务器 ; 以及 报告组件 (140), 被配置成接。

8、收所捕捉的服务器和客户机数据并将所述数据提供给一 个或多个报告目的地。 11. 如权利要求 10 所述的系统, 其特征在于, 与日志相关联的字段列表可根据安装在 权 利 要 求 书 CN 102356390 A CN 102356400 A2/2 页 3 web 服务器上的扩展基于所安装的扩展提供的日志数据来扩展。 12. 如权利要求 10 所述的系统, 其特征在于, 所述服务器数据捕捉组件进一步被配置 成收集任何所引发的事件日志数据并基于所述日志定义将所述数据引导到一个或多个日 志目的地。 13. 如权利要求 10 所述的系统, 其特征在于, 所述服务器数据捕捉组件进一步被配置 成将在特定请。

9、求的过程中引发的每个事件聚合并关联, 以使系统随后可相关来自不同模块 以及 web 服务器自身内的事件, 以提供处理请求的完整记录。 14. 如权利要求 10 所述的系统, 其特征在于, 所述客户机数据捕捉组件进一步被配置 成将日志数据提供给可定制的服务器模块, 所述服务器模块可由第三方替代以执行自定义 客户机数据处理。 15. 如权利要求 10 所述的系统, 其特征在于, 所述报告组件进一步被配置成基于存储 在所述服务器数据和所述客户机数据中的匹配请求标识符来相关涉及同一个请求的所捕 捉的服务器和客户机数据。 权 利 要 求 书 CN 102356390 A CN 102356400 A1/。

10、11 页 4 诸如用于 Web 服务器的灵活的日志记录 0001 背景 0002 Web 服务器一般产生活动日志, 这些日志提供该 web 服务器所接收到的请求以及 所发出的响应的记录。W3C 主张用于 web 服务器日志文件的标准格式 ( 参见, 如 “http:/ www.w3.org/TR/WD-logfile” ), 不过还存在其他的专有格式。大多数的分析工具支持标 准日志文件格式, 不过有关每个服务器事务的信息是固定的 (fixed)。服务器一般将更新 的条目添加在日志文件的尾端, 且服务器可周期性地开始新的日志文件 ( 如, 在当前日志 达到特定大小时或经过一段时期后 )。服务器一。

11、般添加有关请求的信息, 包括客户机 IP 地址、 请求日期 / 时间、 所请求的页面、 HTTP 响应代码、 所提供的字节、 用户代理和推荐者 (referrer)。 该服务器可将这些字段组合到单个文件中, 或者将它们拆分到不同的日志中, 诸如访问日志、 错误日志或推荐者日志。 这些文件一般不能由普通的因特网用户访问, 而仅 能由网站管理员或其他管理员访问。以下是典型的 wen 服务器日志的示例。 0003 #Version : 1.0 0004 #Date : 12-Jan-1996 00:00:00 0005 #Fields : time cs-method cs-uri 0006 00:。

12、34:23 GET/foo/bar.html 0007 12:21:16 GET/foo/bar.html 0008 12:45:52 GET/foo/bar.html 0009 12:57:34 GET/foo/bar.html 0010 网站管理员可使用对 web 服务器日志的统计分析按照一天内的时间、 一周内的 天、 推荐者或用户代理来检验通信量模式。对 Web 服务器日志的分析可有助于有效的网站 管理、 充足的主存资源和销售努力的微调。 Web分析是出于理解和优化网站用途目的的对因 特网数据的测量、 收集、 分析和报告。站点上的 web 分析法测量访问者 ( 一旦 ) 在网站上的 旅程。

13、。 这包括驱动(driver)和会话 ; 例如, 登陆页鼓励人们做出购买, 以及在商业环境中的 网站的性能。此数据通常与组织性能指示符作比较, 并用来改善网站或营销活动的观众响 应。 0011 很多不同的供应商提供站点上的 web 分析法软件与服务。有两种用来收集数据的 主要技术方法。第一种方法即日志文件分析, 读取其中 web 服务器记录其所有事务的日志 文件。第二种方法即页面标签, 在每个页面上使用 JavaScript 来通知第三方服务器何时 web 浏览器呈现了页面。两种方法均收集可被处理以产生 web 通信量报告的数据。 0012 Web日志分析软件(也称为web日志分析器)是简单种。

14、类的web分析法软件, 该软 件解析来自 web 服务器的日志文件, 并基于包含在该日志文件中的值, 得到关于谁、 何时以 及如何访问 web 服务器的指示符。一般报告立即从日志文件产生, 不过替代地, 可将日志文 件解析到数据库中并按要求产生报告。在 1990 年代早期, 网站统计数据主要由向 web 服务 器做出的客户机请求 ( 或点击 (hit) 的计数组成。一开始这是合理的方法, 因为那时每个 网站经常由单个 HTML 文件组成。然而, 随着 HTML 中图像的引入以及跨多个 HTML 文件的网 站的引入, 此计数变得不那么有用。 说 明 书 CN 102356390 A CN 102。

15、356400 A2/11 页 5 0013 Web 高速缓存的广泛使用也提出了关于日志文件分析的问题。如果有人重新访问 页面, 则经常从浏览器高速缓存中取回第二个请求, 所以 web 服务器将接收不到请求。这意 味着这个人通过该站点的路径丢失了。可通过配置该 web 服务器来战胜高速缓存, 不过这 对访问者而言可导致网站的性能下降。Web 分析法供应商通过添加使客户机向日志服务器 报告使用信息的客户机侧逻辑来战胜这个现象, 从而促使更多的日志分析。 0014 Web 日志分析还展现出多个不希望有的问题。首先, 在日志的处理中存在固有延 迟。存在从接收到请求的时间到请求被写入日志的时间之间的延迟。

16、 ( 如, 由于操作系统或 硬件转储清除的延迟磁盘高速缓存 )、 将日志放到将作分析之处的延迟以及在处理日志并 以适于分析的格式 ( 诸如经由数据库中的行 ) 提供数据的延迟。这些延迟中的每一个意味 着内容提供者不能发现有关正在使用的提供者站点的最新信息。对于一些类型的内容而 言, 诸如现场媒体事件, 这可能意味着直到事件结束还没有关于事件成功的有意义分析。 诸 如负载平衡的某些决定可用有关站点使用的更即时信息来改善, 这些更即时信息一般可通 过仅提供过程级别数据 ( 如, 没有访问者或请求信息 ) 的其他方式得到 ( 诸如通过监测性 能计数器 )。 0015 在很多情况下, 记录比标准日志格。

17、式所支持的更多的信息是有用的。对个人数据 发出敏感的站点可能希望省略特定数据的记录。因此, 第二个问题是网站日志文件可能实 际上不包含与内容提供者最相关的数据, 且该 web 服务器可能不支持提供任何超出少数数 据预定义字段之外的数据。对于其他类型的信息, 内容提供者可能不得不为 web 服务器编 写自定义扩展或就是不能获得该数据。有时内容提供者可在客户机处获得附加数据, 不过 接着日志分析软件执行尝试相关客户机与服务器日志以提供关于单个客户机发生了什么 的完整画面的额外步骤。该数据相关也增加了 web 通信量分析的延迟。 发明内容 0016 本文中描述了一种灵活的日志系统, 该系统与 web。

18、 服务器一起操作以用可定制成 包括多个数据字段的方式来提供活动日志, 可将客户机及服务器日志信息捕捉到单个位 置, 并可直接向分析引擎提供数据以提供近乎实时的报告。该灵活的日志系统在 web 服务 器内捕捉刚发生的请求及其他事件, 并可在进行最后响应之前提供报告。该系统从 web 管 理员或其他用户处获得定义管理员想要记录的数据字段以及要存储这些字段的一个或多 个目的地的日志定义。该系统可接收用于不同用途的多个日志定义, 以使一些日志包含不 同的数据并存储于不同的目的地。在 web 服务器中处理请求的过程中, 无论事件何时发生 服务器扩展模块都引发日志记录事件, 针对该事件服务器具有管理员可能。

19、想要记录的数 据。该系统将所接收到的数据与日志定义相匹配并将该数据写入任何相匹配的日志中。日 志目的地除了传统的日志文件之外还可包括数据库, 从而访问该数据库的报告软件可执行 实时报告。因此, 该灵活的日志记录系统为内容提供者和管理员提供丰富、 灵活、 快速的平 台以获得对其 web 服务器的请求的状态的实时视图。 0017 提供本发明内容以便以简化形式介绍将在以下具体实施方式中进一步描述的一 些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征, 也不旨在用于 限制所要求保护主题的范围。 说 明 书 CN 102356390 A CN 102356400 A3/11 页 6 附图。

20、说明 0018 图 1 是示出一个实施例中的灵活日志记录系统的各组件的框图。 0019 图 2 是示出一个实施例中的灵活日志记录系统的操作环境的框图。 0020 图 3 是示出一个实施例中的该系统接收日志数据的处理的流程图。 0021 图 4 是示出一个实施例中的该系统报告所接收到的日志数据的处理的流程图。 具体实施方式 0022 本文中描述了一种灵活的日志记录系统, 该系统与 web 服务器一起操作以用可定 制成包括多个数据字段的方式来提供活动日志, 可将客户机和服务器日志信息捕捉到单个 位置, 并可直接向分析引擎提供数据以提供近乎实时的报告。 该系统还是可扩展的, 从而第 三方研发者可添加。

21、新数据以进行日志记录。 研发者还可通过编写自定义处理应用来扩展该 系统, 这些自定义处理应用接收绑定到日志的相同数据。自定义应用可直接地向数据库或 控制板应用写入数据。在典型的 web 日志中, 当请求结束时 web 服务器作出日志条目。对 于对大媒体文件的请求 ( 如, 一小时长的流传送呈现 ), 这可意味着甚至很长时间内没有日 志信息写入, 比可用于分析的少得多。该灵活的日志系统在 web 服务器内捕捉刚发生的请 求及其他事件, 并可在进行最后响应之前提供报告。该系统从 web 管理员或其他用户处获 得定义管理员想要记录的数据字段以及要存储这些字段的一个或多个目的地的日志定义。 该系统可接。

22、收用于不同用途的多个日志定义, 从而一些日志包含不同的数据且存储于不同 的目的地。在 web 服务器中处理请求的过程中, 无论事件何时发生服务器扩展模块都引发 日志记录事件, 针对该事件服务器具有管理员想要记录的数据。该系统将所接收到的数据 与日志定义相匹配并将该数据写入任何相匹配的日志中。 日志目的地除了传统的日志文件 之外还可包括数据库, 从而访问该数据库的报告软件可执行实时报告。 因此, 该灵活的日志 记录系统为内容提供者和管理员提供丰富、 灵活、 快速的平台以获得对其 web 服务器的请 求的状态的实时视图。 0023 图 1 是示出一个实施例中的灵活的日志记录系统的各组件的框图。灵活。

23、的日志记 录系统 100 包括日志定义组件 110、 服务器数据捕捉组件 120、 客户机数据捕捉组件 130、 报 告组件 140 和用户接口组件 150。此处详细地描述了这些组件中的每一个。 0024 日志定义组件 110 接收描述一个或多个日志的日志定义。日志定义包括要包含在 日志中的字段列表。 管理员或内容提供者通过直接或经由用户接口编辑日志定义来创作日 志定义。 例如, 可将日志定义存储在文件中, 诸如可用文本编辑器或其他编辑器编辑的可扩 展标记语言 (XML) 文件。替代地或附加地, 日志定义组件 110 可调用用户界面组件 150 来 显示例如用户可从中选取字段来包括在日志中的可。

24、用日志字段列表。 日志字段可包括字段 首部、 响应首部、 服务器变量和扩展 web 服务器的功能的模块的模块变量。 0025 服务器数据捕捉组件 120 捕捉由 web 服务器或扩展 web 服务器的模块所引发的事 件。系统 100 定义与 web 浏览器相关联的任何代码可引发的事件类型以提供日志数据。日 志数据可包括模块标识符、 字段名称和具体的日志信息。日志定义可提供模块标识符和 / 或字段名称以标识日志定义作者想要记录的特定字段。对于非模块的日志记录 ( 如, 请求 首部、 响应首部和服务器变量 ), 该事件可提供众所周知的标识符替代模块标识符来辨别这 些类型。服务器数据捕捉组件 120。

25、 收集全部所引发的事件日志数据并基于日志定义将数据 说 明 书 CN 102356390 A CN 102356400 A4/11 页 7 引导至一个或多个日志目的地。一个日志目的地可包括标准 W3C 日志文件, 以使 web 服务 器在更多先进的日志记录目的地并排地持续产生传统的 web 服务器日志。 0026 服务器数据捕捉组件 120 可将特定请求过程中引发的每个事件聚合和关联, 从而 系统 100 随后可相关来自不同模块和 web 服务器自身内的事件, 以提供关于请求处理的完 整记录。例如, 服务器日志和客户机日志均可包含全局唯一标识符 (GUID), 该 GUID 为日志 中与同一事。

26、件(如, 请求、 媒体流等)相关的字段。 在一些情况下, 请求可跨多个服务器。 例 如, 在使用自适应流传送时, 客户机可从服务器场 (farm) 请求媒体文件的部分, 并从不同 服务器得到媒体文件的一些部分。客户机可指定客户机标识符, 该客户机标识符允许系统 100 检测每个客户机请求而不考虑提供该请求的服务器, 然后在日志数据中相关这些请求。 0027 日志目的地可为特定应用、 站点或在数据存储器的其自有目录中的虚拟目录聚合 日志数据, 从而不需要解析默认服务器日志文件就可在与应用特定的位置处获得相关的日 志信息。数据存储器的目录还可具有特定的许可, 从而例如在共享 web 主机上运行应用。

27、的 每个应用作者仅可访问与该作者自己的应用相关的日志信息。 0028 客户机数据捕捉组件 130 捕捉客户机上的事件并将这些事件发送到 web 服务器。 由于服务器将所请求的网页提供给客户机, 因此该服务器对客户机运行的东西具有一些影 响。传统分析法平台在请求透明图像的网页中嵌入 JavaScript, 此处对图像的请求包含 URL中针对服务器的数据。 此方法在一些情况下是有用的, 不过受限于URL长度和数据类型 限制。 客户机侧数据捕捉组件130可使用此技术来操作, 然而, 组件130也可使用其他技术, 诸如发送应用以供客户机运行并在所请求的网页中嵌入对应用的引用, 此处应用通过可比 基于 。

28、URL 的技术包含多得多的数据的 HTTP POST( 张贴 ) 请求提供日志数据。 0029 可通过 web 服务器提供的客户机应用的一个示例是 Microsoft Silverlight 应 用。Microsoft Silverlight 接收网页中对包含在称为 XAP 文件的容器中的应用的引用。 Microsoft Silverlight 提取 XAP 文件并且调用该应用。Microsoft Silverlight 提供具 有沙箱化 (sandboxed) 安全环境的应用, 在应用中该环境运行使得用户的计算机系统受到 保护而免受恶意或错误应用代码损害。Microsoft Silverli。

29、ght 提供应用可调用的 API 以 将用户的计算机系统和硬件与潜在有害的应用动作相屏蔽的方式来回放媒体并将数据发 送到服务器。因此, Microsoft Silverlight 和其他浏览器插件可提供预期运行客户机数 据捕捉组件 130 的环境的所有功能。 0030 在一些实施例中, 客户机数据捕捉组件 130 可包括将所接收到的客户机日志数据 作为就像本文中描述的服务器上所引发的其他日志事件的日志事件引发的服务器上组件。 这允许服务器侧的报告逻辑和日志定义将客户机侧日志数据作为要包括在日志目的地中 的字段的一个或多个源来处理。 0031 报告组件 140 接收所捕捉的服务器和客户机数据并将。

30、这些数据提供给一个或多 个报告目的地。例如, 报告组件 140 可基于所捕捉的事件产生标准的 W3C 日志文件。当记 录日志到文件时, 报告组件 140 可在将日志条目写入磁盘之前, 在一段可配置的时间段内 保持这些条目, 从而只有特定窗口内的最新日志张贴才会被写入磁盘这使得为客户机而 写入磁盘的重复临时数据或可随着累积数据被持续记录的请求最小化。报告组件 140 可将 来自多个源的数据 ( 如, 客户机、 一个或多个服务器模块、 操作系统数据等 ) 聚合成一个或 多个日志条目以供报告。例如, 与单个客户机请求相关的数据可以被记录在一起。报告组 说 明 书 CN 102356390 A CN 。

31、102356400 A5/11 页 8 件 140 可与其他系统通信以提供实时的日志数据。报告组件 140 可直接将数据写入包括一 个或多个字段的数据库, 从而不使用解析来读取数据。可对照这一数据库直接运行很多分 析工具。 0032 用户界面组件 150 提供用户与系统 100 的组件之间的界面。例如, 用户界面组件 150 可从用户处接收日志定义, 并提供用于编辑日志定义的控件。另外, 用户界面组件 150 可接收管理日志命令, 诸如开始或停止日志记录、 旋转日志文件等的命令。用户界面组件 150 还向用户显示信息, 诸如日志定义的细节以及潜在的实时报告数据。 0033 在其上实现了系统的计。

32、算设备可包括中央处理单元、 存储器、 输入设备 ( 例如, 键 盘和指示设备 )、 输出设备 ( 例如, 显示设备 ), 以及存储设备 ( 例如, 磁盘驱动器或其他非 易失性存储介质 )。存储器和存储设备是可以编码有实现或启用系统的计算机可执行指令 ( 例如, 软件 ) 的计算机可读存储介质。此外, 数据结构和消息结构可以被存储或通过诸如 通信链路上的信号之类的数据传输介质传输。可以使用各种通信链路, 诸如因特网、 局域 网、 广域网、 点对点拨号连接、 蜂窝电话网络等。 0034 系统的各实施例可以在各种操作环境中实现, 操作环境包括个人计算机、 服务器 计算机、 手持式或膝上型设备、 多处。

33、理器系统、 基于微处理器的系统、 可编程消费电子产品、 数码相机、 网络 PC、 小型计算机、 大型计算机、 包括上述系统或设备中的任一个的分布式计 算机环境等。 计算机系统可以是蜂窝电话、 个人数字助理、 智能电话、 个人计算机、 可编程的 消费电子产品、 数码相机等。 0035 可以在由一台或多台计算机或其他设备执行的诸如程序模块之类的计算机可执 行的指令的一般上下文中来描述本系统。一般而言, 程序模块包括执行特定任务或实现特 定抽象数据类型的例程、 程序、 对象、 组件、 数据结构等等。通常, 程序模块的功能可以按需 在各个实施例中进行组合或分布。 0036 图 2 是示出一个实施例中的。

34、灵活的日志记录系统的操作环境的框图。该环境包括 客户机 210 和通过网络边界 920 与之相连的服务器 250。客户机 210 包括提供日志数据的 一个或多个数据源 220, 诸如 Microsoft Silverlight、 浏览器应用及媒体播放器。客户机 数据源 220 跨越网络边界 290 诸如通过使用 HTTP POST 请求 230 向服务器 252 提供数据。 服务器 250 执行一个或多个 web 服务器进程 260。每个进程包括在潜在感兴趣的事件发生 时引发事件 270 的各种日志源 265。日志模块 280 捕捉事件并将它们报告给一个或多个日 志目的地285, 诸如日志文件。

35、或合作数据库。 第三方还可提供捕捉所引发的日志事件并处理 所接收到的日志数据的模块, 诸如自定义模块 275。 0037 图 3 是示出一个实施例中的该系统接收日志数据的处理的流程图。从系统接收日 志定义的框 310 开始。用户可通过用户界面创建日志定义, 从而系统可在接收到日志事件 时访问日志定义。日志定义描述一个或多个日志, 以及每个日志中用户感兴趣的字段和要 向其提供日志数据的一个或多个目的地。 继续到框320, 系统接收日志事件。 系统可从服务 器或客户机处同时接收日志事件。服务器事件可涉及对服务器接收到的请求的处理, 而客 户机事件可涉及在客户机上检测到的用户动作 ( 如, 收看视频。

36、 )。继续到框 330, 系统判定 所接收到的日志事件是否与任何日志定义相匹配。例如, 事件可包含与日志定义中的源标 识符匹配的源标识符, 或者可包含在日志定义中指定的一个或多个字段。 注意, 系统为每一 个匹配的日志定义执行接下来的步骤, 且相同的日志事件潜在地贡献给多于一个日志。 说 明 书 CN 102356390 A CN 102356400 A6/11 页 9 0038 继续到判定框 340, 如果该日志事件与日志定义相匹配, 则系统在框 360 继续, 否 则系统跳转至框 350。继续到框 350, 系统忽略该日志事件, 然后继续到框 370。系统可能引 发很多用户不感兴趣的日志事。

37、件, 且因此不被包含在任何日志定义中。可使用 web 服务器 来主存很多类型的网站, 且每一类网站可具有变化的日志记录规范。继续到框 360, 该系统 存储日志事件以供报告。例如, 系统可将日志事件存储于日志事件的存储器内列表中。继 续到判定框 370, 如果系统检测到一组相关日志事件是完整的, 则系统继续到框 380, 否则 系统循环到框 320 以接收附加的日志事件。例如, 系统可检测与单个请求相关的所有日志 事件并将它们归组在一起以供统一报告。 0039 继续到框 380, 该系统将相关的日志事件聚合在一起以供统一报告。例如, 日志定 义可基于特定请求、 应用和虚拟目录等指定特定日志记录。

38、, 且该聚合在日志定义的基础上 关联日志事件。继续到框 390, 系统报告所存储的日志事件, 如进一步参考图 4 所述。在框 390 之后, 这些步骤结束。 0040 图 4 是示出一个实施例中该系统报告所接收到的日志数据的处理的流程图。从框 410 开始, 系统接收指定要存储日志数据的一个或多个目的地的日志定义。例如, 系统可访 问存储于在每个 web 服务器上的 XML 文件中的日志定义, 且该 XML 文件可具有对每个目的 地的分层定义。继续到框 420, 系统接收一个或多个所捕捉的日志事件。例如, 系统可按图 3 的过程接收事件。继续到框 430, 系统从日志定义选择第一个 ( 或下一。

39、个 ) 报告目的地。 例如, 系统可枚举报告目的地并遍历它们迭代。 0041 继续到框 440, 系统将日志定义中的任何字段映射到所接收到的日志事件中的字 段。 字段可包括许多类型的数据, 包括请求首部、 响应首部、 服务器变量和自定义模块数据。 日志事件可包括与特定事件相对应的服务器和客户机侧数据。继续到框 450, 系统向报告 目的地发送日志数据的经映射字段。 例如, 如果报告目的地是文件, 则系统将日志数据的经 映射字段存储到该文件中。如果报告目的地是数据库, 则系统将经映射字段存储为数据库 表格中的列。继续到判定框 460, 如果在日志定义中有更多的报告目的地, 则系统循环到框 430。

40、 以选择下一个报告目的地, 否则这些步骤完成。尽管示出为串行, 该系统可并行地处理 多个报告目的地以减少报告等待时间并有效地利用服务器资源。 0042 在一些实施例中, 灵活的日志记录系统提供实时的或近乎实时的 ( 如, 在五分钟 内 ) 的日志记录。例如, 在系统从各个服务器和 / 或客户机组件接收日志数据时, 系统可向 分析服务器报告该数据, 诸如与报告引擎相关联的数据库。 在数据到达时, 管理员或其他用 户可查看基于该数据的报告, 以使用户具有与对该服务器的请求有关的最新信息。此信息 传递比传统的日志记录到文件、 然后周期性地后处理该文件的模式快得多地进行。 另外, 该 系统可基于特定数。

41、据特性分离数据, 诸如将对于同一个站点、 用户、 服务器或虚拟目录的请 求日志记录于同一位置。该数据还可由服务器流水线中的其他 ( 如, 报告 ) 模块消费, 且一 个或多个模块可将该数据推送至数据库或 web 服务以供实时报告并监测。首先向发起请求 的服务器报告日志数据克服了由一些浏览器对向第三方站点发送信息施加的限制。 在这种 情况下, 数据首先去往第一方站点, 其然后将数据转发给第三方站点。 0043 在一些实施例中, 灵活的日志记录系统允许任何 HTTP 客户机使用标准的 HTTP POST/GET 请求向服务器发送回日志信息。服务器关注提取、 验证该日志信息并将其记录到 合并的日志中。

42、或者使其可用于实时报告。 例如, 在媒体情况下, 客户机可邮送回有关回放对 说 明 书 CN 102356390 A CN 102356400 A7/11 页 10 话的消费相关信息, 该信息可被用于分析、 QOS 监测或开账单。这可由标准认证 / 授权政策 来提供安全的日志记录。由客户机发送的日志信息是实现相关的, 且服务器实现是灵活的 以容纳自定义字段。 0044 服务器可向客户机上的应用(如, 基于浏览器应用的Microsoft Silverlight)提 供可扩展标记语言 (XML) 或其他格式清单, 这些清单指定请求发送给服务器的客户机日志 记录。以下是一示例客户机清单。 0045 。

43、0046 说 明 书 CN 102356390 A CN 102356400 A8/11 页 11 0047 在本示例中, 清单包含 :“字段” (Fields) 元素, 该元素标识要包括在日志中的客 户机侧字段的名称 ; 以及 “目的地” (Destination) 元素, 该元素标识请求客户机向其发送 日志的URL(如, 经由HTTP POST)。 还要注意, 该示例清单包括两个不同的日志定义, 这两个 不同日志定义由客户机提供给不同的目的地 URL 并且含有不同的信息。日志定义的作者可 将日志数据引导到合适的位置并在到达时分离出有用的信息, 而不是执行无用的后处理。 灵活的日志记录系统还。

44、可与将高速缓存的日志数据提交给永久存储器异步和同步地操作。 这对于存储器内高速缓存增长过快且系统存档进程无法跟上传入请求的情形、 以及需要即 时写通过行为的情况, 是有用的。 0048 在一些实施例中, 灵活的日志记录系统允许管理员或内容提供者指定日志定义中 说 明 书 CN 102356390 A CN 102356400 A9/11 页 12 的自定义字段。 这个特征允许自定义字段包括(但不限于)HTTP请求首部、 HTTP响应首部、 Web 服务器变量和 Windows 性能计数器。另外, 任何 web 服务器模块可记录任何字段。这些 自定义字段然后对于写入日志文件或其他报告目的地可用。。

45、该系统还考虑多个设置, 诸如 专用 / 共享主存, 由此能够共享同一服务器的多个站点的信息可被划分并提供给站点的相 应拥有者。 0049 在一些实施例中, 灵活的日志记录系统存储哪些字段针对特定日志文件记录以及 服务器配置信息。该配置还可包括策略, 诸如日志翻转、 日志文件名称、 客户机侧日志记录 是否启用等等。该特征允许创建多个日志定义并因此允许日志记录对该日志有用的信息。 场景的示例会是想要日志记录服务质量 (QoS) 和分析法信息的内容传递网络。在内部使用 QoS 时, 分析法信息是之后与其用户共享的信息。在这种情况下, CDN 不必执行后处理, 且仅 可创建两个日志定义并仅将相关的字段。

46、添加到每一个日志定义。 0050 在一些实施例中, 灵活的日志记录系统通过日志定义组件接收过滤规则, 这些过 滤规则根据特定的日志定义限制所记录的数据。例如, 特定的内容提供者可能仅仅对网页 的日志记录请求 ( 如, 包括 *.htm 的请求 ) 而不是图像请求感兴趣。内容提供者可提供指 定要应用于特定日志的过滤器的过滤规则。这样, 内容提供者可减少日志的大小并确保日 志仅包含提供者感兴趣的数据。过滤准则的其他示例包括多用途因特网邮件扩展 (MIME) 类型和所需要的字段。过滤允许系统捕捉较少的数据来进行更快的处理, 不管是现场处理 还是后处理。 0051 在一些实施例中, 灵活的日志记录系统。

47、允许安装用于处理客户机日志记录的自定 义模块。 如此处所述, 服务器可在模块中接收客户机日志数据, 该模块引发与其它由服务器 侧日志记录所引发的类似的日志事件。 第三方可选择用自定义模块中的自定义行为替代这 个模块, 自定义模块执行特定站点或网络应用特定的处理。自定义模块允许第三方包括对 所接收到的客户机日志数据的不同处理而不是默认的模块行为。 0052 在一些实施例中, 灵活的日志记录系统允许安装用于处理所捕捉日志数据的报告 的自定义模块。尽管日志定义提供了关于所记录信息的目的地和类型的灵活性, 一些第三 方仍可选择提供对所捕捉日志数据的附加自定义处理, 且可通过自定义报告模块这样做。 例如。

48、, 第三方可实现与第三方数据库连接的模块, 并根据特定的方案将所捕捉的日志数据 输入到数据库行。 多个自定义报告模块可同时操作以出于不同目的用不同方法提供所捕捉 的日志数据。 0053 当前, 一般的 web 服务器仅允许站点级别的日志记录。在一些实施例中, 灵活的 日志记录系统允许日志记录和为不同级别的配置级别隔离日志, 包括站点、 应用、 虚拟目录 等。例如, 所分享的主存服务可选择向共享的 web 主机的每个虚拟目录提供一个日志, 以使 每个虚拟目录拥有者可检索有关拥有者站点的信息。 如今类似的功能涉及将一个站点日志 拆分为多个文件作为后处理步骤。 0054 灵活的日志记录系统提供在当前。

49、日志记录系统中不可用的日志信息的一个场景 用于渐进下载, 诸如针对现场事件。 渐进下载可包括长时间事件(如, 两小时)的视听数据。 传统的日志记录系统在整个事件完成之后提供有关请求的信息。反之, 灵活的日志记录系 统可在接收到请求时并在整个事件进行中提供日志数据。 管理员设定指定管理员想要检测 的事件类型和所监测数据的目的地的日志定义。 这可向内容提供者提供关于有多少个观看 说 明 书 CN 102356390 A CN 102356400 A10/11 页 13 者正在收看事件、 正在发生的任何差错、 事件过程中的服务器负载等的较早信息。 0055 在一些实施例中, 灵活的日志记录系统提供用于向客户开账单的信息。 例如, 特定 客户可基于内容项目被下载的次数或基于用户在时间段内使用的带宽而向内容提供者支 付。内容提供者可设置带有开账单专用的使用信息的日志定义, 以使内容提供者可正确地 向用户收费。 0056 事件数据结构 0057 以下是一个实施例中由引发日志事件的服务器侧模块所引发的事件数据结构的 一个示例。 0058 0059。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1