你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍:
- 可以为此服务收集的监视数据的类型。
- 分析这些数据的方法。
注意
如果已熟悉此服务和/或Azure Monitor并只想了解如何分析监视数据,请参阅本文末尾附近的 Analyze 部分。
如果关键应用程序和业务流程依赖于Azure资源,则需要监视并获取系统的警报。 Azure Monitor服务从系统的每个组件收集并聚合指标和日志。 Azure Monitor提供可用性、性能和复原能力视图,并通知你问题。 可以使用 Azure 门户、PowerShell、Azure CLI、REST API 或客户端库来设置和查看监视数据。
- 有关Azure Monitor的详细信息,请参阅 Azure Monitor 概述。
- 有关如何总体上监控 Microsoft Azure 资源的详细信息,请参阅 使用 Azure Monitor 监控 Azure 资源。
负载均衡器提供其他监控数据,方式如下:
Insights
Azure 中的某些服务在 Azure 门户中具有内置的监视仪表板,可以从此入手来监视服务。 这些仪表板称为 insights,可以在 Azure 门户中的 Azure Monitor Insights Hub 中找到它们。
负载均衡器分析提供:
- 函数依赖关系视图
- 指标仪表板
- 概述选项卡
- “前端和后端可用性”选项卡
- “数据吞吐量”选项卡
- 流分发
- 连接监视器
- 指标定义
有关负载均衡器洞察的详细信息,请参阅 使用洞察来配置和监视 Azure 负载均衡器。
资源类型
Azure使用资源类型和 ID 的概念来标识订阅中的所有内容。 资源类型也是Azure中运行的每个资源的资源 ID 的一部分。 例如,虚拟机的一种资源类型为 Microsoft.Compute/virtualMachines。 有关服务及其关联资源类型的列表,请参阅资源提供程序。
Azure Monitor同样将核心监视数据组织成基于资源类型的指标和日志,也称为namespaces。 不同的指标和日志可用于不同的资源类型。 服务可能与多种资源类型关联。
有关负载均衡器的资源类型的详细信息,请参阅 Azure 负载均衡器 监视数据参考。
数据存储
对于 Azure Monitor:
- 指标数据存储在Azure Monitor指标数据库中。
- 日志数据存储在Azure Monitor日志存储中。 Log Analytics是Azure门户中可以查询此存储的工具。
- Azure活动日志是一个单独的存储区,其自己的接口位于Azure门户中。
可以选择性地将指标和活动日志数据路由到Azure Monitor日志存储。 然后,可以使用Log Analytics查询数据并将其与其他日志数据相关联。
许多服务可以使用诊断设置将指标和日志数据发送到Azure Monitor之外的其他存储位置。 示例包括 Azure 存储、托管的合作伙伴系统,以及通过使用事件中心的非 Azure 合作伙伴系统。
有关如何Azure Monitor存储数据的详细信息,请参阅 Azure Monitor 数据平台。
Azure Monitor平台指标
Azure Monitor为大多数服务提供平台指标。 这些指标是:
- 针对每个命名空间单独定义。
- 存储在Azure Monitor时序指标数据库中。
- 设计轻便,并能够支持近实时的警报。
- 用于跟踪资源随时间推移的性能变化。
Collection: Azure Monitor自动收集平台指标。 不需要任何配置。
Routing:还可以将某些平台指标路由到Azure Monitor日志/Log Analytics,以便可以使用其他日志数据查询它们。 检查每个指标的DS 导出设置,以查看是否可以使用诊断设置将指标路由到 Azure Monitor 日志或 Log Analytics。
- 有关详细信息,请参阅指标诊断设置。
- 若要配置服务的诊断设置,请参阅 在 Azure Monitor 中创建诊断设置。
有关在 Azure Monitor 中可以收集的所有资源的指标列表,请参阅 Azure Monitor 支持的指标。
可以通过在 Azure Monitor 菜单中打开 Metrics,利用指标资源管理器分析 负载均衡器 的指标及来自其他 Azure 服务的指标。 有关使用此工具的详细信息,请参阅 使用 Azure Monitor 指标资源管理器进行分析。
有关负载均衡器可用指标的列表,请参阅 Azure 负载均衡器 监视数据参考。
Azure Monitor资源日志
资源日志提供有关由Azure资源执行的操作的见解。 日志是自动生成的,但必须将日志路由到Azure Monitor日志以保存或查询日志。 日志按类别进行组织。 给定的命名空间可能具有多个资源日志类别。
收集:在创建诊断设置并将日志路由到一个或多个位置之前,不会收集和存储资源日志。 创建诊断设置时,请指定要收集的日志类别。 可通过多种方式创建和维护诊断设置,包括Azure门户、编程方式以及Azure Policy。
Routing:建议的默认值是将资源日志路由到Azure Monitor日志,以便可以使用其他日志数据对其进行查询。 也可使用其他位置(例如 Azure 存储、Azure 事件中心和某些 Microsoft 监视合作伙伴)。 有关详细信息,请参阅 Azure 资源日志和 resource 日志目标。
有关收集、存储和路由资源日志的详细信息,请参阅 Azure Monitor 中的 诊断设置。
有关 Azure Monitor 中所有可用资源日志类别的列表,请参阅 Azure Monitor 中受支持的资源日志。
Azure Monitor 中的所有资源日志具有相同的标头字段,之后是服务特定字段。 通用架构在 Azure Monitor 资源日志架构中概述。
有关可用的资源日志类别、其关联的Log Analytics表和负载均衡器的日志架构,请参阅 Azure 负载均衡器 监视数据参考。
创建诊断设置
在创建诊断设置并将其路由到一个或多个位置之前,不会收集和存储资源日志。 可以使用Azure门户、Azure PowerShell或Azure CLI创建诊断设置。
若要使用 Azure 门户和常规指南,请参阅 创建诊断设置以收集 Azure 中的平台日志和指标。 若要使用 PowerShell 或Azure CLI,请参阅以下部分。
创建诊断设置时,请指定要收集的日志类别。 负载均衡器的类别为 AllMetrics。
PowerShell
登录到Azure PowerShell:
Connect-AzAccount
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活动日志
活动日志包含订阅级事件,用于跟踪从该资源外部查看的每个Azure资源的操作;例如,创建新资源或启动虚拟机。
Collection:活动日志事件会在单独的存储中自动生成和收集,以便在 Azure 门户中查看。
Routing: 可以将活动日志数据发送到Azure Monitor日志,以便可以与其他日志数据一起分析。 也可使用其他位置(例如 Azure 存储、Azure 事件中心和某些 Microsoft 监视合作伙伴)。 有关如何路由活动日志的详细信息,请参阅Azure活动日志的 Overview。
注意
负载均衡器活动日志不包括对基于 NIC 的后端池的更新。 要监视和警报基于网卡的后端池的负载均衡器后端池更新,我们建议收集网卡资源级别或资源组级别的日志。
分析监视数据
有许多工具可用于分析监视数据。
Azure Monitor工具
Azure Monitor支持以下基本工具:
Metrics 资源管理器,Azure门户中的一个工具,可用于查看和分析Azure资源的指标。 有关详细信息,请参阅使用 Azure Monitor 指标资源管理器分析指标。
Log Analytics,Azure门户中的一个工具,可用于使用 Kusto 查询语言(KQL)查询和分析日志数据。 有关详细信息,请参阅 在 Azure Monitor 中开始日志查询。
活动日志在 Azure 管理门户中具有用户界面,允许用户查看和进行基本搜索。 若要进行更深入的分析,必须将数据路由到Azure Monitor日志并在Log Analytics中运行更复杂的查询。
支持更复杂可视化效果的工具包括:
- Dashboards,使你能够将不同类型的数据合并到Azure门户中的单个窗格中。
- Workbooks,可以在Azure门户中创建的可自定义报表。 工作簿可以包括文本、指标和日志查询。
- Grafana,它是一个适用于操作仪表板的开放平台工具。 可以使用 Grafana 创建仪表板,其中包含来自除Azure Monitor以外的多个源的数据。
- Power BI,这是一项业务分析服务,用于跨各种数据源提供交互式可视化效果。 可以将Power BI配置为从Azure Monitor自动导入日志数据,以利用这些可视化效果。
Azure Monitor的导出工具
可以使用以下方法将数据从Azure Monitor中获取到其他工具:
Metrics: 使用 REST API 从 Azure Monitor 指标数据库中提取指标数据。 API 支持使用筛选表达式优化检索到的数据。 有关详细信息,请参阅 Azure Monitor REST API 参考。
日志:使用 REST API 或关联的客户端库。
另一个选项是工作区数据导出。
若要开始使用适用于Azure Monitor的 REST API,请参阅Azure监视 REST API 演练。
使用 VNet 流日志分析负载均衡器流量
虚拟网络流日志是一项Azure 网络观察程序功能,用于记录流经虚拟网络的 IP 流量的相关信息。 虚拟网络流日志中的流数据将发送到Azure 存储。 从那里,你可以访问数据并将其导出到任何可视化工具、安全信息和事件管理 (SIEM) 解决方案或入侵检测系统 (IDS)。
有关创建和管理虚拟网络流日志的一般指南,请参阅管理虚拟网络流日志。 创建虚拟网络流日志后,可以访问 Log Analytics 工作区上的数据,还可以在其中查询和筛选数据,以确定流经负载均衡器的流量。 有关虚拟网络流日志架构的更多详细信息,请参阅流量分析架构和数据聚合。
创建虚拟网络流日志时,还可以启用流量分析,该日志日志提供流日志数据的见解和可视化效果,例如流量分布、流量模式、已利用的应用程序端口以及虚拟网络中的顶级通信器。
VNet 流日志的 Log Analytics 查询
若要查看连接到特定负载均衡器的入流量日志:
NTANetAnalytics
| where DestLoadBalancer == '<Subscription ID>/<Resource Group name>/<Load Balancer name>'
在Log Analytics工作区中使用上述查询,并使用负载均衡器的有效值更新字符串。 若要详细了解如何使用 Log Analytics,请参阅 Log Analytics 教程。
若要查看连接的源 IP,将填充
SrcIp或SrcPublicIps列。 源自公共非恶意或Azure服务拥有的 IP 地址的所有流量将显示在SrcPublicIps中,所有其他源 IP 将显示在SrcIP中。 如果需要有关流量类型的更多详细信息,可以使用FlowType列筛选流中涉及的不同类型的 IP 地址。 有关流量分析架构和数据聚合说明 中的字段定义,请参阅。 通过下列任何列标识入站连接中使用的后端池实例:
DestIP、MacAddress、DestVM、TargetResourceID、DestNic。通过这些日志,您可以收集有关通过负载均衡器的连接的更多详细信息,例如端口信息、协议,以及通过从目的地和源地发送的数据包和字节数的流量大小。
Kusto 查询
可以使用 Kusto 查询语言(KQL)在 Azure Monitor 日志/Log Analytics 存储中分析监视数据。
重要
从门户中的服务菜单中选择Logs时,Log Analytics打开,并将查询范围设置为当前服务。 此范围意味着日志查询将仅包含来自该资源类型的数据。 如果要运行包含来自其他Azure服务的数据的查询,请从 Azure Monitor 菜单中选择 Logs。 有关详细信息,请参阅 Azure Monitor Log Analytics 中的日志查询范围和时间范围。
有关任何服务的常见查询列表,请参阅 Log Analytics 查询接口。
警报
Azure Monitor警报会在监视数据中找到特定条件时主动通知你。 有了警报,你就可以在客户注意到你的系统中的问题之前找出和解决问题。 有关详细信息,请参阅 Azure Monitor 警报。
Azure资源有许多常见警报来源。 有关Azure资源的常见警报示例,请参阅 Sample 日志警报查询。 Azure Monitor基线警报(AMBA)站点提供了实现重要平台指标警报、仪表板和指南的半自动化方法。 该网站适用于不断扩展的Azure服务的子集,包括属于Azure登陆区域(ALZ)的所有服务。
统一警报模式以标准化 Azure Monitor 警报通知的使用。 有关详细信息,请参阅常见警报架构。
警报类型
可以在Azure Monitor数据平台中针对任何指标或日志数据源发出警报。 警报具有许多不同类型,具体取决于要监视的服务以及要收集的监视数据。 不同类型的警报各有优缺点。 有关详细信息,请参阅选择正确的监视警报类型。
以下列表描述了可以创建的Azure Monitor警报的类型:
- 指标警报会定期评估资源指标。 指标可以是平台指标、自定义指标、Azure Monitor转换为指标或 Application Insights 指标的日志。 指标警报还可以应用多个条件和动态阈值。
- Log 警报允许用户使用Log Analytics查询以预定义的频率评估资源日志。
- 当发生匹配所定义条件的新活动日志事件时,会触发活动日志警报。 资源运行状况警报和服务运行状况警报是报告您的服务和资源运行状况的活动日志警报。
某些Azure服务还支持 智能检测警报、Prometheus 警报或 建议的警报规则。
对于某些服务,可以通过将相同的指标警报规则应用于同一Azure区域中存在的多个同一类型的资源来大规模监视。 将为每个受监视的资源发送单独通知。 有关支持的 Azure 服务和云服务,请参阅 使用一个警报规则监控多个资源。
注意
如果要创建或运行在服务上运行的应用程序,Azure Monitor application insights可能会提供更多类型的警报。
负载均衡器警报规则
下表列出了负载均衡器的一些建议警报规则。 这些警报只是示例。 可以为Azure 负载均衡器监视数据引用中列出的任何指标、日志条目或活动日志条目设置警报。
| 警报类型 | 条件 | 说明 |
|---|---|---|
| 由于虚拟机不可用,导致负载均衡规则不可用 | 如果数据路径可用性按前端 IP 地址和前端端口(所有已知和未来值)拆分等于零,或者在辅助独立警报中的运行状况探测状态等于零,则触发警报 | 这些警报有助于确定任何已配置的负载均衡规则的数据路径可用性是否因已配置的运行状况探测正在探测关联后端池中的所有 VM 而无法为流量提供服务。 查看 Azure 负载均衡器 的支持和故障排除文档 以调查潜在的根本原因。 |
| VM 可用性非常低 | 如果按后端 IP 和后端端口拆分的运行状况探测状态等于用户定义的总池大小的探测百分比(即向上探测到 25%),则触发警报 | 此警报确定可用于处理流量的 VM 数量是否不足以满足所需的 VM 数量。 |
| 与互联网端点的出站连接失败 | 如果筛选为“连接状态 = 失败”的 SNAT 连接计数大于零,则触发警报 | 当 SNAT 端口耗尽且 VM 无法启动出站连接时,将触发此警报。 |
| 接近于 SNAT 资源耗尽 | 如果已用 SNAT 端口数大于用户定义的数量,则触发警报 | 此警报需要静态出站配置,其中始终分配相同数量的端口。 使用已分配端口的一定百分比时,就会触发此警报。 |
顾问建议
对于某些服务,如果在资源操作期间出现严重情况或即将发生变化,则门户中的服务“概述”页面上会显示一个警报。 可以在左侧菜单“监视”下的“顾问建议”中找到警报的详细信息和建议补丁。 在正常操作期间,不会显示任何顾问建议。
有关Azure 顾问的详细信息,请参阅 Azure 顾问 概述。
相关内容
- 有关为负载均衡器创建的指标、日志和其他重要值的参考,请参阅 Azure 负载均衡器监视数据参考。
- 有关使用 Azure Monitor 监视 Azure 资源的一般详细信息,请参阅 监视 Azure 资源与 Azure Monitor。