监视负载均衡器

当你的关键应用程序和业务流程依赖于 Azure 资源时,你需要监视这些资源的可用性、性能和操作。

本文介绍负载均衡器生成的监视数据。 负载均衡器使用 Azure Monitor。 如果你不熟悉所有 Azure 服务普遍使用的 Azure Monitor 功能,请参阅使用 Azure Monitor 监视 Azure 资源

负载均衡器见解

Azure 中的某些服务在 Azure 门户中有一个特殊且醒目的预生成仪表板,提供监视你的服务的入手点。 这些特殊仪表板称为“见解”。

负载均衡器见解提供以下内容:

  • 函数依赖关系视图
  • 指标仪表板
  • 概述选项卡
  • “前端和后端可用性”选项卡
  • “数据吞吐量”选项卡
  • 流分发
  • 连接监视器
  • 指标定义

有关负载均衡器见解的详细信息,请参阅使用见解来监视和配置 Azure 负载均衡器

监视数据

负载均衡器收集与监视 Azure 资源中的数据中所述的其他 Azure 资源相同的监视数据。

有关负载均衡器创建的指标和日志指标的详细信息,请参阅监视负载均衡器数据参考

负载均衡器通过以下方式提供额外的监视数据:

收集和路由

平台指标和活动日志会自动收集和存储,但你可以使用诊断设置将其路由到其他位置。

在创建诊断设置并将其路由到一个或多个位置之前,不会收集和存储资源日志。

创建诊断设置

可以使用 Azure 门户、PowerShell 或 Azure CLI 来创建诊断设置。

有关一般指南,请参阅创建诊断设置以收集 Azure 中的平台日志和指标

创建诊断设置时,请指定要收集的日志类别。 负载均衡器类别为 AllMetrics

门户

  1. 登录 Azure 门户

  2. 在门户顶部的搜索框中,输入“负载均衡器”。

  3. 在搜索结果中选择“负载均衡器”。

  4. 选择你的负载均衡器。 此示例中使用 myLoadBalancer。

  5. 在“myLoadBalancer”的“监视”部分,选择“诊断设置” 。

  6. 在“诊断设置”中,选择“+ 添加诊断设置” 。

  7. 在“诊断设置”中,输入或选择以下信息。

    设置
    诊断设置名称 为诊断设置输入一个名称。
    类别详细信息
    指标 选择“AllMetrics”。
  8. 选择“目标详细信息”。 部分目标选项为:

    • 发送到 Log Analytics
      • 选择“订阅”和“Log Analytics 工作区” 。
    • 存档到存储帐户
      • 选择“订阅”和“存储帐户” 。
    • 流式传输到事件中心
      • 选择“订阅”、“事件中心命名空间”、“事件中心名称(可选)”和“事件中心策略名称”
  9. 选择“保存”。

PowerShell

登录到 Azure PowerShell:

Connect-AzAccount -Environment AzureChinaCloud 

Log Analytics 工作区

若要将资源日志发送到 Log Analytics 工作区,请输入以下命令。 将换括号中的值替换为自己的值:

## Place the load balancer in a variable. ##
$lbpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-load-balancer-name>
}
$lb = Get-AzLoadBalancer @lbpara

## Place the workspace in a variable. ##
$wspara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-log-analytics-workspace-name>
}
$ws = Get-AzOperationalInsightsWorkspace @wspara

## Enable the diagnostic setting. ##
Set-AzDiagnosticSetting `
    -ResourceId $lb.id `
    -Name <your-diagnostic-setting-name> `
    -Enabled $true `
    -MetricCategory 'AllMetrics' `
    -WorkspaceId $ws.ResourceId

存储帐户

若要将资源日志发送到存储帐户,请输入以下命令。 将换括号中的值替换为自己的值:

## Place the load balancer in a variable. ##
$lbpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-load-balancer-name>
}
$lb = Get-AzLoadBalancer @lbpara

## Place the storage account in a variable. ##
$storpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-storage-account-name>
}
$storage = Get-AzStorageAccount @storpara

## Enable the diagnostic setting. ##
Set-AzDiagnosticSetting `
    -ResourceId $lb.id `
    -Name <your-diagnostic-setting-name> `
    -StorageAccountId $storage.id `
    -Enabled $true `
    -MetricCategory 'AllMetrics'

事件中心

若要将资源日志发送到事件中心命名空间,请输入以下命令。 将换括号中的值替换为自己的值:

## Place the load balancer in a variable. ##
$lbpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-load-balancer-name>
}
$lb = Get-AzLoadBalancer @lbpara

## Place the event hub in a variable. ##
$hubpara = @{
    ResourceGroupName = <your-resource-group-name>
    Name = <your-event-hub-name>
}
$eventhub = Get-AzEventHubNamespace @hubpara

## Place the event hub authorization rule in a variable. ##    
$hubrule = @{
    ResourceGroupName = 'myResourceGroup'
    Namespace = 'myeventhub8675'
}
$eventhubrule = Get-AzEventHubAuthorizationRule @hubrule

## Enable the diagnostic setting. ##
Set-AzDiagnosticSetting `
    -ResourceId $lb.Id `
    -Name 'myDiagSetting-event'`
    -EventHubName $eventhub.Name `
    -EventHubAuthorizationRuleId $eventhubrule.Id `
    -Enabled $true `
    -MetricCategory 'AllMetrics'

Azure CLI

登录到 Azure CLI:

az login

Log Analytics 工作区

若要将资源日志发送到 Log Analytics 工作区,请输入以下命令。 将换括号中的值替换为自己的值:

lbid=$(az network lb show \
    --name <your-load-balancer-name> \
    --resource-group <your-resource-group> \
    --query id \
    --output tsv)

wsid=$(az monitor log-analytics workspace show \
    --resource-group <your-resource-group> \
    --workspace-name <your-log-analytics-workspace-name> \
    --query id \
    --output tsv)

az monitor diagnostic-settings create \
    --name <your-diagnostic-setting-name> \
    --resource $lbid \
    --metrics '[{"category": "AllMetrics","enabled": true}]' \
    --workspace $wsid

存储帐户

若要将资源日志发送到存储帐户,请输入以下命令。 将换括号中的值替换为自己的值:

lbid=$(az network lb show \
    --name <your-load-balancer-name> \
    --resource-group <your-resource-group> \
    --query id \
    --output tsv)

storid=$(az storage account show \
        --name <your-storage-account-name> \
        --resource-group <your-resource-group> \
        --query id \
        --output tsv)

az monitor diagnostic-settings create \
    --name <your-diagnostic-setting-name> \
    --resource $lbid \
    --metrics '[{"category": "AllMetrics","enabled": true}]' \
    --storage-account $storid

事件中心

若要将资源日志发送到事件中心命名空间,请输入以下命令。 将换括号中的值替换为自己的值:

lbid=$(az network lb show \
    --name <your-load-balancer-name> \
    --resource-group <your-resource-group> \
    --query id \
    --output tsv)

az monitor diagnostic-settings create \
    --name myDiagSetting-event \
    --resource $lbid \
    --metrics '[{"category": "AllMetrics","enabled": true}]' \
    --event-hub-rule /subscriptions/<your-subscription-id>/resourceGroups/<your-resource-group>/providers/Microsoft.EventHub/namespaces/<your-event-hub-namespace>/authorizationrules/RootManageSharedAccessKey

以下部分将讨论可以收集的指标和日志。

分析指标

可以从“Azure Monitor”菜单中打开“指标”,使用指标资源管理器根据来自其他 Azure 服务的指标分析负载均衡器的指标 。 有关使用此工具的详细信息,请参阅 Azure 指标资源管理器入门

有关为负载均衡器收集的平台指标列表,请参阅监视负载均衡器数据参考指标

若要参考,可以查看 Azure Monitor 中所有受支持的资源指标列表。

分析日志

Azure Monitor 日志中的数据以表形式存储,每个表具有自己独有的属性集。

活动日志是一种平台日志,可用于深入了解订阅级别的事件。 你可以单独查看它或将它路由到 Azure Monitor 日志,然后便可以在其中使用 Log Analytics 执行复杂得多的查询。

如需查看 Azure Monitor 日志使用并可通过 Log Analytics 查询的表列表,请参阅监视负载均衡器数据参考

警报

在监视数据中发现重要情况时,Azure Monitor 警报会主动通知你。 有了警报,你就可以在客户注意到你的系统中的问题之前确定和解决它们。 可以在指标日志活动日志上设置警报。 不同类型的警报各有优缺点

如果要创建或运行在负载均衡器上运行的应用程序,Azure Monitor Application Insights 提供了其他类型的警报。

下表列出了对负载均衡器常用和建议使用的警报规则。

警报类型 条件 说明
VM 不可用导致负载均衡规则不可用 如果数据路径可用性按前端 IP 地址和前端端口(所有已知和未来值)拆分等于零,并且在辅助警报中,如果运行状况探测状态等于零,则触发警报 这些警报有助于确定任何已配置的负载均衡规则的数据路径可用性是否因已配置的运行状况探测正在探测关联后端池中的所有 VM 而无法为流量提供服务。 查看负载均衡器故障排除指南,调查潜在根本原因。
VM 可用性非常低 如果按后端 IP 和后端端口拆分的运行状况探测状态等于用户定义的总池大小的探测百分比(即向上探测到 25%),则触发警报 此警报确定可用于提供流量的 VM 是否少于所需 VM
与 Internet 终结点的出站连接失败 如果筛选为“连接状态 = 失败”的 SNAT 连接计数大于零,则触发警报 当 SNAT 端口耗尽且 VM 无法启动出站连接时,将触发此警报。
接近 SNAT 耗尽 如果已用 SNAT 端口数大于用户定义的数量,则触发警报 此警报需要静态出站配置,其中始终分配相同数量的端口。 使用已分配端口的一定百分比时,就会触发此警报。

后续步骤