使用 IIS 用户访问日志记录分析客户端使用数据

作者:Robert McMurray

用户访问日志记录 (UAL) 是 Windows Server 2012 的一项内置功能,让管理员能够收集有关客户端使用情况的数据。

概述

用户访问日志记录 (UAL) 是 Windows Server 2012 的一项内置功能,让管理员能够收集有关客户端使用情况的数据。可在以下文章中找到关于 UAL 的更多信息:

用户访问日志记录概述
https://technet.microsoft.com/library/hh849634.aspx

Internet Information Services 8 附带了命令行工具 IISUAL.EXE,它可帮助网络管理员分析其 Web 服务器的 W3C 日志数据,来确定其网站上经过身份验证的用户数量和匿名用户数量。 IISUAL.EXE 实用工具会将它收集的用户访问信息提供给 Windows Server 2012 中的 UAL API,以便可使用通过 WMI 和 PowerShell 提供的 UAL 方法获得这些数据。

注意

根据设计,IISUAL.EXE 实用工具仅用于 W3C 格式的日志文件;它不适用于 NCSA、IIS 或 ODBC 格式的日志文件。

也就是说,由于日志文件分析可能占用大量 CPU,因此建议不要在生产服务器上分析日志数据;上面列出的文章包含以下说明:

注意

不建议在直接连接到 Internet 的服务器(如可访问 Internet 的地址空间中的 Web 服务器),或在极高性能是服务器主要功能的应用场景下(如在 HPC 工作负荷环境中)使用 UAL。 UAL 主要用于小型、中型和企业 Intranet 应用场景,这些场景期望高容量,但并不像 Windows Server 2012 很多定期服务于面向 Internet 的流量部署那么高。

使用 IISUAL.EXE 实用工具

可在以下目录中找到 IISUAL.EXE 实用工具:

%SystemRoot%\System32\inetsrv

在没有命令行开关的情况下运行 IISUAL.EXE 实用工具时,它将返回以下帮助消息:

HTTP User Access Logging v1.0
Date: Monday, December 21, 2012 9:12:00 PM

Usage: IISUAL.exe -logfile <logfile path> -outputpostfix <string>
Example: IISUAL.exe -logfile c:\inetpub\logs\LogFiles\W3SVC1\sample.log -outputpostfix output

如示例所示,IISUAL.EXE 支持两个命令行开关:

  • logfile - 此开关定义了要分析的特定 W3C 日志文件的名称。
  • outputpostfix - 此开关指定一个字符串,该字符串将追加到输入 W3C 日志文件名,以便创建输出统计信息。

例如,如果指定以下选项:

IISUAL.EXE -logfile u_ex130319.log -outputpostfix UAL

IISUAL.EXE 将分析名为“u_ex130319.log”的 W3C 日志文件来获取客户端使用数据,并将统计信息写入名为“u_ex130319_UAL.log”的文件。

注意

出于性能原因,IISUAL.EXE 旨在与单个 W3C 日志文件一起使用;IISUAL.EXE 不可使用通配符。 例如,以下命令将返回错误:

IISUAL.EXE -logfile *.log -outputpostfix UAL

如果需要处理多个日志文件,可以使用以下批处理文件遍历目录中的所有日志文件:

@echo off

for /f "usebackq delims=|" %%a in (`dir /b *.log`) do (
    iisual.exe -logfile "%%a" -outputpostfix UAL
)

检查 IISUAL.EXE 结果

使用 IISUAL.EXE 分析 W3C 日志文件时,它将搜索所有日志文件条目,并使用“cs-username”和“c-ip”字段中的信息来生成将写入到格式如下所示的输出文件的统计信息:

HTTP User Access Logging v1.0
Date: Monday, December 21, 2012 9:12:00 PM

Total requests in IIS log:                                              6440
Total requests with authenticated users and valid IP:                   6430 (99.84%)
Total successful UAL API calls for authenticated users with valid IP:   6430 (100% successful)
Total anonymous requests with valid IP:                                 10 (0.16%)
Total successful UAL API calls for anonymous users with valid IP:       10 (100% successful)

在此用户访问日志记录信息中,管理员可找到 W3C 日志文件定义的时间段内有关经过身份验证的用户和匿名用户的统计信息。 如前所述,此信息对于小型、中型和企业场景非常有用;在这些场景中,管理员有兴趣跟踪访问 Intranet 网站的用户数。