Azure 负载均衡器的 Log Analytics

可以在 Azure 中使用不同类型的日志对负载均衡器进行管理和故障排除。 可通过门户访问其中某些日志。 可从 Azure Blob 存储提取所有日志并在 Excel 和 PowerBI 等各种工具中查看。 可从下表了解有关各种类型日志的详细信息。

  • 审核日志:可以使用 Azure 审核日志(旧称为“运行日志”)查看提交到 Azure 订阅的所有操作及其状态。 默认情况下,审核日志已启用,并可在 Azure 门户中查看。
  • 警报事件日志:可以使用此日志查看负载均衡器引发的警报。 每隔五分钟收集一次负载均衡器的状态。 仅在引发了负载均衡器警报事件的情况下,才会向此日志写入相关内容。
  • 运行状况探测日志:可以使用此日志查看运行状况探测器检测到的问题,例如后端池中由于运行状况探测失败未从负载均衡器接收请求的实例数。 当运行状况探测状态发生更改时,将写入此日志。

Important

Log Analytics 当前仅适用于面向 Internet 的负载均衡器。 日志仅适用于 Resource Manager 部署模型中部署的资源。 不能将日志用于经典部署模型中的资源。 有关部署模型的详细信息,请参阅了解 Resource Manager 部署和经典部署

启用日志记录

每个 Resource Manager 资源都会自动启用审核日志记录。 需启用事件和运行状况探测日志记录才能开始收集通过这些日志提供的数据。 使用以下步骤启用日志记录。

登录到 Azure 门户。 如果还没有负载均衡器,请先创建负载均衡器,然后再继续。

  1. 在门户中,单击“浏览” 。
  2. 选择“负载均衡器” 。

    门户 - 负载均衡器

  3. 选择现有的负载均衡器,然后单击“所有设置”。

  4. 在负载均衡器名称下的对话框右侧,滚动到“监视”,然后单击“诊断”。

    门户 - 负载均衡器 - 设置

  5. 在“诊断”窗格中,在“状态”下选择“开”。

  6. 单击“存储帐户”。
  7. 在“日志”下,选择现有存储帐户或创建新存储帐户。 使用滑块来确定事件数据值得在事件日志中存储的天数。
  8. 单击“保存” 。

    门户 - 诊断日志

Note

审核日志不需要单独的存储帐户。 使用存储来记录事件和运行状况探测需支付服务费用。

审核日志

默认生成审核日志。 日志在 Azure 的事件日志存储区中保留 90 天。 通过阅读查看事件和审核日志一文可了解有关这些日志的详细信息。

警报事件日志

只有基于每个负载均衡器启用了此日志,才会生成此日志。 事件以 JSON 格式记录,并存储在启用日志记录时指定的存储帐户中。 下面是事件的示例。

{
    "time": "2016-01-26T10:37:46.6024215Z",
    "systemId": "32077926-b9c4-42fb-94c1-762e528b5b27",
    "category": "LoadBalancerAlertEvent",
    "resourceId": "/SUBSCRIPTIONS/XXXXXXXXXXXXXXXXX-XXXX-XXXX-XXXXXXXXX/RESOURCEGROUPS/RG7/PROVIDERS/MICROSOFT.NETWORK/LOADBALANCERS/WWEBLB",
    "operationName": "LoadBalancerProbeHealthStatus",
    "properties": {
        "eventName": "Resource Limits Hit",
        "eventDescription": "Ports exhausted",
        "eventProperties": {
            "public ip address": "40.117.227.32"
        }
    }
}

JSON 输出中显示的 eventname 属性将说明负载均衡器创建警报的原因。 在本示例中,生成警报是因为源 IP NAT 限制 (SNAT) 导致 TCP 端口耗竭。

运行状况探测日志

只有你按照上述详细步骤基于每个负载均衡器启用了该日志,才会生成该日志。 数据存储在你启用日志记录时指定的存储帐户中。 创建了名为“insights-logs-loadbalancerprobehealthstatus”的容器并记录了以下数据:

{
    "records":[
    {
        "time": "2016-01-26T10:37:46.6024215Z",
        "systemId": "32077926-b9c4-42fb-94c1-762e528b5b27",
        "category": "LoadBalancerProbeHealthStatus",
        "resourceId": "/SUBSCRIPTIONS/XXXXXXXXXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX/RESOURCEGROUPS/RG7/PROVIDERS/MICROSOFT.NETWORK/LOADBALANCERS/WWEBLB",
        "operationName": "LoadBalancerProbeHealthStatus",
        "properties": {
            "publicIpAddress": "40.83.190.158",
            "port": "81",
            "totalDipCount": 2,
            "dipDownCount": 1,
            "healthPercentage": 50.000000
        }
    },
    {
        "time": "2016-01-26T10:37:46.6024215Z",
        "systemId": "32077926-b9c4-42fb-94c1-762e528b5b27",
        "category": "LoadBalancerProbeHealthStatus",
        "resourceId": "/SUBSCRIPTIONS/XXXXXXXXXXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX/RESOURCEGROUPS/RG7/PROVIDERS/MICROSOFT.NETWORK/LOADBALANCERS/WWEBLB",
        "operationName": "LoadBalancerProbeHealthStatus",
        "properties": {
            "publicIpAddress": "40.83.190.158",
            "port": "81",
            "totalDipCount": 2,
            "dipDownCount": 0,
            "healthPercentage": 100.000000
        }
    }]
}

JSON 输出在属性字段显示了探测运行状况的基本信息。 dipDownCount 属性显示在后端因探测响应失败而收不到网络流量的实例的总数。

查看和分析审核日志

你可以使用任何以下方法查看和分析审核日志数据:

查看和分析运行状况探测和事件日志

你需要连接到你的存储帐户并检索事件和运行状况探测日志的 JSON 日志项。 下载 JSON 文件后,你可以将它们转换为 CSV 并在 Excel、PowerBI 或任何其他数据可视化工具中查看。

Tip

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

其他资源

后续步骤

了解负载均衡器探测