排查 Azure Monitor 中不再收集数据的原因
本文介绍如何检测 Azure Monitor 中的数据收集何时已停止,以及用于解决数据收集问题的详细步骤。
重要
如果要对使用数据收集规则 (DCR)(例如 Azure Monitor 代理或日志引入 API)的方案进行数据收集故障排除,请参阅 Azure Monitor 中的 DCR 数据收集监控和故障排除,以获取其他故障排除信息。
达到每日上限
每日上限限制 Log Analytics 工作区在一天内可以收集的数据量。 达到每日上限时,数据收集将会停止,直到重置。 你可以等待收集自动重启,或者提高每日数据量限制。
检查 Log Analytics 工作区数据收集状态
当 Log Analytics 工作区中的数据收集停止时,会在工作区中创建一个类型为“操作”的事件。 运行以下查询以检查你是否达到每日限制和缺少数据:
Operation | where OperationCategory == 'Data Collection Status'
当数据收集停止时,OperationStatus 为 Warning。 当数据收集启动时,OperationStatus 为 Succeeded。
若要在数据收集停止时收到通知,请使用达到每日上限时发出警报部分中所述的步骤。 若要为警报规则配置电子邮件、Webhook 或 Runbook 操作,请使用创建操作组中所述的步骤。
达到引入量速率限制
在每个工作区中,使用诊断设置从 Azure 资源发送的数据的默认引入量速率上限约为每分钟 6 GB。 这是一个近似值,因为实际大小在数据类型之间可能会有所不同,具体取决于日志长度及其压缩率。 此限制不适用于从代理或日志引入 API 发送的数据。
如果以更高速率将数据发送到单个工作区,则某些数据将丢弃,并且在继续超过阈值的情况下,每 6 小时将向工作区中的“操作”表发送一个事件。 如果引入量继续超过速率限制,或者可能很快达到该限制,则可以通过向 LAIngestionRate@microsoft.com 发送电子邮件或提交支持请求来请求提高工作区的限制。
检查工作区是否已达到其数据引入速率限制
使用此查询检索指示已达到数据引入速率限制的记录。
Operation
| where OperationCategory == "Ingestion"
| where Detail startswith "The rate of data crossed the threshold"
达到旧的免费定价层每日引入限制
如果你的 Log Analytics 工作区位于旧的免费定价层,并且在一天内收集了超过 500 MB 的数据,则该天的剩余时间会停止数据收集。 等到下一天收集自动重启,或者更改为付费定价层。
Azure Monitor 代理未发送数据
Azure Monitor 代理从虚拟机收集数据,并将数据发送到 Azure Monitor。 在各种情况下,代理可能会停止向 Log Analytics 工作区发送数据。 例如,当 Azure Site Recovery 在灾难恢复方案中恢复虚拟机时,该计算机的资源 ID 会发生变化,因而需要在该计算机上重新安装 Azure Monitor 代理。
检查向工作区发送数据的代理的运行状况
在向 Log Analytics 工作区发送数据的所有虚拟机上安装的 Azure Monitor 代理实例每隔一分钟就会向检测信号表发送一次检测信号。
运行此查询以列出过去五分钟内未报告检测信号的 VM:
Heartbeat
| where TimeGenerated > ago(24h)
| summarize LastCall = max(TimeGenerated) by Computer, _ResourceId
| where LastCall < ago(5m)
Azure 订阅已暂停
由于以下原因之一,你的 Azure 订阅可能处于暂停状态:
- 免费试用已结束
- Azure 许可已过期
- 已达到每月支出限制(例如,在 MSDN 或 Visual Studio 订阅上)
其他 Log Analytics 工作区限制
还有其他 Log Analytics 限制,其中一些依赖于 Log Analytics 定价层。 有关详细信息,请参阅 Azure 订阅和服务限制、配额与约束。
后续步骤
- 请参阅分析 Log Analytics 工作区中的使用情况,了解有关分析工作区中的数据以确定任何高于预期的使用情况的来源以及减少收集数据量的机会的详细信息。