你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

应用程序网关诊断日志

应用程序网关日志提供有关与资源及其操作相关的事件的详细信息。 这些日志可用于访问、活动、防火墙和性能等事件(仅适用于 V1)。 使用此原始数据排查问题或生成分析仪表板时,日志中的精细信息非常有用。

日志可用于应用程序网关的所有资源;但是,要使用它们,必须在所选的存储位置启用其集合。 Azure 应用程序网关中的日志记录由 Azure Monitor 服务启用。 建议使用 Log Analytics 工作区,因为可以轻松使用其预定义的查询,并根据特定的日志条件设置警报。

资源日志的类型

可在 Azure 中使用不同类型的日志来对应用程序网关进行管理和故障排除。

注意

日志仅适用于在 Azure 资源管理器部署模型中部署的 Azure 资源。 你不能将日志用于经典部署模型中的资源。 若要更好地了解两种模型,请参阅了解 Resource Manager 部署和经典部署一文。

使用工作区转换优化访问日志的示例

示例 1:列的选择性投影:假设你的应用程序网关访问日志包含 20 列,但你只想分析 6 个特定列中的数据。 通过工作区转换,可以将这 6 列投影到工作区中,从而有效地排除其他 14 列。 即使不会存储这些已排除列中的原始数据,但它们的空占位符仍然会出现在“日志”边栏选项卡中。 此方法优化了存储并确保仅保留相关数据进行分析。

注意

在“日志”边栏选项卡中,选择“试用新的 Log Analytics”选项可以更好地控制用户界面中显示的列

示例 2:重点关注特定的状态代码:在分析访问日志时,无需处理所有日志条目,而可以编写一个查询来仅检索具有特定 HTTP 状态代码(例如 4xx 和 5xx)的行。 由于在理想情况下,大多数请求都属于 2xx 和 3xx 类别(表示成功的响应),因此重点关注有问题的状态代码可以缩小数据集的范围。 这种有针对性的方法使你能够提取最相关和可操作的信息,因此既可以带来便利,也可以产生经济效益。

从 Azure 诊断过渡到资源特定的表的建议策略

  1. 评估当前数据保留期:确定 Azure 诊断表中当前保留数据的持续时间(例如:假设诊断表将数据保留 15 天)。
  2. 建立资源特定的保留:使用资源特定的表实现新的诊断设置。
  3. 并行数据收集:在临时性的一段时间内,在 Azure 诊断和资源特定的设置中并行收集数据。
  4. 确认数据准确度:验证两种设置中的数据收集是否准确且一致。
  5. 删除 Azure 诊断设置:删除 Azure 诊断设置以防止重复进行数据收集。

其他存储位置:

  • Azure 存储帐户:如果日志存储时间较长并且希望能根据需要随时查看,最好使用存储帐户。
  • Azure 事件中心:要集成其他安全信息和事件管理 (SIEM) 工具以获取资源警报,最好使用事件中心。
  • Azure Monitor 合作伙伴集成

详细了解 Azure Monitor 的诊断设置目标

通过 PowerShell 启用日志记录

每个 Resource Manager 资源都会自动启用活动日志记录。 必须启用访问和性能日志记录才能开始收集通过这些日志提供的数据。 若要启用日志记录,请执行以下步骤:

  1. 记下存储帐户的资源 ID,其中存储日志数据。 此值的形式为:/subscriptions/<subscriptionId>/resourceGroups/<资源组名称>/providers/Microsoft.Storage/storageAccounts/<存储帐户名称>。 可以使用订阅中的任何存储帐户。 可使用 Azure 门户查找此信息。

    存储帐户终结点的屏幕截图

  2. 记下为其启用日志记录的应用程序网关的资源 ID。 此值的形式为:/subscriptions/<subscriptionId>/resourceGroups/<资源组名称>/providers/Microsoft.Network/applicationGateways/<应用程序网关名称>。 可以使用门户查找以下信息。

    应用网关属性的屏幕截图

  3. 使用以下 PowerShell cmdlet 启用诊断日志记录:

    Set-AzDiagnosticSetting  -ResourceId /subscriptions/<subscriptionId>/resourceGroups/<resource group name>/providers/Microsoft.Network/applicationGateways/<application gateway name> -StorageAccountId /subscriptions/<subscriptionId>/resourceGroups/<resource group name>/providers/Microsoft.Storage/storageAccounts/<storage account name> -Enabled $true     
    

提示

活动日志不需要单独的存储帐户。 使用存储来记录访问和性能需支付服务费用。

通过 Azure 门户启用日志记录

  1. 在 Azure 门户中找到资源,然后选择“诊断设置”。

    对于应用程序网关,提供 3 种日志:

    • 访问日志
    • 性能日志
    • 防火墙日志
  2. 若要开始收集数据,请选择“启用诊断”。

    启用诊断

  3. “诊断设置” 页提供用于诊断日志的设置。 本示例使用 Log Analytics 存储日志。 也可使用事件中心和存储帐户保存诊断日志。

    启动配置过程

  4. 键入设置的名称,确认设置,然后选择“保存”。

若要查看和分析活动日志数据,请参阅“分析监视数据”。

查看并分析访问、性能和防火墙日志

Azure Monitor 日志可从 Blob 存储帐户收集计数器和事件日志文件。 有关详细信息,请参阅“分析监视数据”。

还可以连接到存储帐户并检索访问和性能日志的 JSON 日志条目。 下载 JSON 文件后,可以将其转换为 CSV 并在 Excel、Power BI 或任何其他数据可视化工具中查看。

提示

如果你熟悉 Visual Studio 和更改 C# 中的常量和变量值的基本概念,则可以使用 GitHub 提供的日志转换器工具

后续步骤