在 Azure Monitor 中使用 Log Analytics 代理收集 IIS 日志
Internet Information Services (IIS) 会将用户活动存储在日志文件中,这些日志文件由 Log Analytics 代理收集并存储在 Azure Monitor 日志中。
重要
本文介绍如何使用 Log Analytics 代理收集 IIS 日志,该代理将于 2024 年 8 月弃用。 请务必在 2024 年 8 月之前迁移到 Azure Monitor 代理,这样才能继续引入数据。 有关使用 Azure Monitor 代理收集 IIS 日志的详细信息,请参阅使用 Azure Monitor 代理收集 IIS 日志(预览版)。
配置 IIS 日志
Azure Monitor 会从 IIS 创建的日志文件中收集条目,因此,必须配置 IIS 以进行日志记录。
Azure Monitor 仅支持以 W3C 格式存储的 IIS 日志文件,不支持自定义字段或 IIS 高级日志记录。 它不会收集 NCSA 或 IIS 本机格式的日志。
在 Azure Monitor 中通过 Log Analytics 代理的代理配置菜单配置 IIS 日志。 只需选择“收集 W3C 格式 IIS 日志文件”,即可完成配置。
数据收集
每次日志时间戳更改时,Azure Monitor 都会从每个代理收集 IIS 日志条目。 每 5 分钟读取一次日志。 如果由于任何原因,IIS 在创建新文件时未在滚动更新时间之前更新时间戳,则会在创建新文件后收集条目。
新文件创建的频率由 IIS 站点的“日志文件滚动更新计划”设置控制。 默认情况下,该设置为每天一次。 如果设置为“每小时”,则 Azure Monitor 每小时收集一次日志。 如果设置为“每日”,则 Azure Monitor 每 24 小时收集一次日志。
重要
建议将“日志文件滚动更新计划”设置为“每小时一次”。 如果将其设置为“每天一次”,则可能会遇到数据峰值,因为每天只收集一次。
IIS 日志记录属性
IIS 日志记录的类型为 W3CIISLog,并具有下表中显示的属性:
属性 | 说明 |
---|---|
Computer | 从中收集事件的计算机的名称。 |
cIP | 客户端的 IP 地址。 |
csMethod | 请求的方法,如 GET 或 POST。 |
csReferer | 用户通过链接转到当前站点的来源站点。 |
csUserAgent | 客户端的浏览器类型。 |
csUserName | 访问服务器的经身份验证的用户名称。 匿名用户会以连字符表示。 |
csUriStem | 请求的目标,例如网页。 |
csUriQuery | 客户端正在尝试执行的查询(如果有的话)。 |
ManagementGroupName | Operations Manager 代理的管理组的名称。 对于其他代理,此名称是 AOI-<工作区 ID>。 |
RemoteIPCountry | 客户端 IP 地址的国家/地区。 |
RemoteIPLatitude | 客户端 IP 地址的纬度。 |
RemoteIPLongitude | 客户端 IP 地址的经度。 |
scStatus | HTTP 状态代码。 |
scSubStatus | 子状态错误代码。 |
scWin32Status | Windows 状态代码。 |
sIP | Web 服务器的 IP 地址。 |
SourceSystem | OpsMgr。 |
sPort | 客户端连接到的服务器上的端口。 |
sSiteName | IIS 站点的名称。 |
TimeGenerated | 记录条目的日期和时间。 |
TimeTaken | 处理请求的时间长度(以毫秒为单位)。 |
csHost | 主机名。 |
csBytes | 服务器接收的字节数。 |
使用 IIS 日志的日志查询
下表显示了检索 IIS 日志记录的日志查询的不同示例:
查询 | 说明 |
---|---|
W3CIISLog | 所有 IIS 日志记录。 |
W3CIISLog | where scStatus==500 | 返回状态为 500 的所有 IIS 日志记录。 |
W3CIISLog | summarize count() by cIP | 按客户端 IP 地址的 IIS 日志条目计数。 |
W3CIISLog | where csHost=="www.contoso.com" | summarize count() by csUriStem | 按主机的 URL www.contoso.com 的 IIS 日志条目的计数。 |
W3CIISLog | summarize sum(csBytes) by Computer | take 500000 | 每台 IIS 计算机接收的总字节数。 |