本文介绍如何使用 Azure 负载均衡器健康状况事件日志监视和发出警报。 这些日志可以帮助你识别和排查影响负载均衡器资源健康状况的持续问题。 这些健康状况事件日志通过 Azure Monitor 资源日志类别 LoadBalancerHealthEvent 提供。
重要
Azure 负载均衡器的 LoadBalancerHealthEvent 日志目前为预览版,可在所有 Azure 公共区域使用。 在预览版中时,此功能的日志结构、事件类型和发布行为等方面可能会根据反馈而更改。
此预览版在提供时没有附带服务级别协议,不建议将其用于生产工作负荷。 某些功能可能不受支持或者受限。 有关详细信息,请参阅 Microsoft Azure 预览版补充使用条款。
先决条件
- Azure 订阅。 如果没有 Azure 订阅,请创建一个试用版版订阅。
- Azure 负载均衡器资源。 若要了解如何创建负载均衡器资源,请参阅《快速入门:创建公共标准负载均衡器》。
- Azure Monitor Log Analytics 工作区。 若要了解如何创建 Log Analytics 工作区,请参阅《快速入门:创建 Log Analytics 工作区》。
通过配置诊断设置来收集 LoadBalancerHealthEvent 日志
在本部分中,你将了解如何通过配置诊断设置来收集 LoadBalancerHealthEvent 日志并将日志存储在 Log Analytics 工作区中。
重要
建议将日志发送到 Log Analytics 工作区,以便控制访问、日志数据保留和存档设置等。 若要详细了解如何配置 Log Analytics 工作区,请参阅《Log Analytics 工作区概述 - Azure Monitor》。
在 Azure 门户中,导航到负载均衡器资源。
在负载均衡器资源的“概述”页中,选择“监视”>“诊断设置”。
选择“+ 添加诊断设置”。
在“诊断设置”窗口中,选择或输入以下设置:
设置 值 诊断设置名称 为诊断设置输入一个名称。 日志 类别组 选择“LoadBalancerHealthEvent”或“负载均衡器健康状况事件”。 度量值 保持未选中状态。 目标详细信息 选择“发送到 Log Analytics 工作区”
选择你的订阅和 Log Analytics 工作区。注意
选择“AllLogs”将导致负载均衡器资源的所有新日志类别在受支持时被自动收集。 如果不希望使用此选项,请仅选择要收集的日志类别。 在这种情况下,选择“负载均衡器健康状况事件”日志。
选择“保存”并关闭“诊断设置”窗口。
注意
配置诊断设置后,日志最多可能需要 90 分钟才能开始显示。 如果没有影响负载均衡器的健康状况事件,则你可能不会看到任何日志。
配置日志查询
本部分介绍如何在 Log Analytics 工作区中查询 LoadBalancerHealthEvent 日志。 在此示例中,你查询过去一天的最新 SnatPortExhaustion 健康状况事件,并根据负载平衡器的资源 ID 和前端 IP 配置汇总这些事件。
在 Azure 门户中,导航到负载均衡器资源。
从负载均衡器资源的“概述”页中,选择“监视”>“日志”。
在“查询”窗口中,在搜索栏中输入“最新 SNAT 端口”。
在结果中,选择“每个 LB 前端的最新 SNAT 端口耗尽”下的“加载到编辑器”。
以下代码显示在查询编辑器中:
// Latest Snat Port Exhaustion Per LB Frontend // List the latest SNAT port exhaustion event per load balancer Frontend IP ALBHealthEvent | where TimeGenerated > ago(1d) | where HealthEventType == "SnatPortExhaustion" | summarize arg_max(TimeGenerated, *) by LoadBalancerResourceId, FrontendIP
选择“运行”以执行查询。
如果要修改和保存查询,请在更改查询后选择“保存”>“另存为查询”。
在“保存查询”窗口中,输入查询的名称、其他可选信息,然后选择“保存”。
基于 LoadBalancerHealthEvent 日志创建警报
在本部分中,你将了解如何创建在过去 5 分钟内任何时间记录 SnatPortExhaustion 事件就会发送电子邮件的警报。 可以根据日志查询创建警报,以便在生成健康状况事件日志(表示对负载均衡器资源存在潜在影响)时立即收到通知。
在 Azure 门户中,导航到负载均衡器资源。
从负载均衡器资源的“概述”页中,选择“监视”>“警报”。
在“警报”页上,选择“创建自定义警报规则”。
在“创建警报规则”页上,选择“信号名称”下的“自定义日志搜索”。
在 Log Analytics 的“日志”窗口中,输入以下查询并选择“运行”:
ALBHealthEvent | where TimeGenerated > ago(5m) | where HealthEventType == "SnatPortExhaustion" | summarize arg_max(TimeGenerated, *) by LoadBalancerResourceId, FrontendIP
选择“继续编辑警报”。
在“条件”选项卡上,在“警报逻辑”中将“阈值”设置为 0。
选择“下一步:操作”>或“操作”选项卡。
在“选择操作组”页上,选择“+ 创建操作组”。
在“基本信息”选项卡上输入以下设置,然后选择“下一步:通知”:
设置 值 项目详细信息 订阅 选择订阅。 资源组 选择包含 Log Analytics 工作区的资源组。 区域 选择操作组的区域。 实例详细信息 操作组名称 为操作组输入名称。 显示名称 输入操作组的显示名称。 在“通知”选项卡上,输入以下设置:
设置 值 通知类型 选择“电子邮件/短信/推送/语音”。
输入接收警报的电子邮件地址。
选择“确定”。Name 输入通知的名称。 依次选择“查看 + 创建”、“创建”以创建操作组。
在“创建警报规则”页上,选择“下一步:详细信息”或“详细信息”选项卡。
在“详细信息”选项卡上,输入以下设置:
-
设置 值 严重性 选择警报的严重性级别。 警报规则名称 为警报规则输入一个名称。 警报规则说明 为警报规则输入说明。 严重性 选择警报的严重性级别。 区域 选择警报规则的区域。 依次选择“查看 + 创建”、“创建”以创建警报规则。
后续步骤
本文介绍了如何使用这些日志收集、分析和创建警报。
有关 Azure 负载均衡器健康状况事件日志和健康状况事件类型的详细信息,以及如何对每个健康状况事件类型进行故障排除,请参阅: