使用 Azure Monitor 代理收集 IIS 日志

IIS 日志是数据收集规则 (DCR) 中使用的数据源之一。 有关创建 DCR 的详细信息,请参阅使用 Azure Monitor 代理收集数据。 本文提供有关 Windows 事件数据源类型的其他详细信息。

Internet Information Services (IIS) 会将用户活动存储在日志文件中,这些日志文件可由 Azure Monitor 代理收集并发送到 Log Analytics 工作区中。

先决条件

在客户端上配置 IIS 日志收集

在从计算机收集 IIS 日志之前,必须确保 IIS 日志记录已启用并已正确配置。

  • IIS 日志文件必须采用 W3C 格式并存储在运行代理的计算机的本地驱动器上。
  • 必须使用行尾来描述日志文件中的每个条目。
  • 日志文件不得使用循环日志记录,这会覆盖旧条目。
  • 日志文件不得使用重命名,这会移动一个文件并打开一个同名的新文件。

IIS 日志文件的默认位置为 C:\inetpub\logs\LogFiles\W3SVC1。 验证日志文件是否正在写入到此位置,或检查 IIS 配置以确定备用位置。 检查日志文件的时间戳以确保它们是最新的。

代理计算机上 IIS 日志记录配置对话框的屏幕截图。

配置 IIS 日志数据源

按照使用 Azure Monitor 代理收集数据中的说明,创建数据收集规则。 在“收集和传递”步骤中,从“数据源类型”下拉列表中选择“IIS 日志”。 如果日志文件存储在与 IIS 中配置的位置不同的位置,则只需指定文件模式来标识日志文件所在的目录。 在大多数情况下,可以将此值留空。

Azure 门户窗体的屏幕截图,用于在数据收集规则中选择客户性能计数器。

目标

IIS 日志数据可以发送到以下位置。

目标 表/命名空间
Log Analytics 工作区 W3CIISLog

示例 IIS 日志查询

  • 按主机的 URL www.contoso.com 统计 IIS 日志条目的数量。

    W3CIISLog 
    | where csHost=="www.contoso.com" 
    | summarize count() by csUriStem
    
  • 查看每个 IIS 计算机接收的总字节数。

    W3CIISLog 
    | summarize sum(csBytes) by Computer
    
  • 标识任何返回状态为 500 的记录。

    W3CIISLog 
    | where scStatus==500
    | summarize AggregatedValue = count() by Computer, bin(TimeGenerated, 15m)
    

注意

目前不支持 X-Forwarded-For 自定义字段。 如果这是关键字段,你可以将 IIS 日志作为自定义文本日志来收集。

故障排除

如果没有从预期的 JSON 日志中收集到数据,请执行以下步骤。

  • 验证是否在指定的位置创建了 IIS 日志。
  • 验证 IIS 日志是否已配置为 W3C 格式。
  • 请参阅验证操作,以验证代理是否正在运行,以及是否正在接收数据。

后续步骤

了解有关以下方面的详细信息: