你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

设置 Log Analytics 工作区的每日上限

Log Analytics 工作区的每日上限允许你通过在达到指定阈值时停止收集剩余 24 小时内分析或基本表计划中表的可计费日志数据来减少数据引入费用的意外增加。 辅助表计划中的表不受任何每日上限的限制。

本文介绍每日上限的工作原理以及如何在工作区中配置该上限。

重要

设置每日上限时应谨慎,因为当数据收集停止时,对资源运行状况的观察和接收警报能力将受到影响。 这还会影响其功能依赖于工作区中提供的最新数据的其他 Azure 服务和解决方案。 你的目标不应该是定期达到每日限制,而是将其用作一种不经常使用的方法,以避免因收集的数据量意外增加而产生计划外费用。

有关降低 Azure Monitor 成本的策略,请参阅成本优化和 Azure Monitor

所需的权限

操作 所需的权限或角色
设置 Log Analytics 工作区的每日上限 对你设置每日上限的 Log Analytics 工作区具有 Microsoft.OperationalInsights/workspaces/write 权限,例如,Log Analytics 参与者内置角色所提供的权限。
设置经典 Application Insights 资源的每日上限 对你设置每日上限的经典 Application Insights 资源具有 microsoft.insights/components/CurrentBillingFeatures/write 权限,例如,Application Insights 组件参与者内置角色所提供的权限。
在达到 Log Analytics 工作区的每日上限时创建警报 microsoft.insights/scheduledqueryrules/write 权限,例如,监视参与者内置角色所提供的权限
在达到经典 Application Insights 资源的每日上限时创建警报 microsoft.insights/activitylogalerts/write 权限,例如,监视参与者内置角色所提供的权限
查看每日上限的效果 对你查询的 Log Analytics 工作区具有 Microsoft.OperationalInsights/workspaces/query/*/read 权限,例如,Log Analytics 读者内置角色所提供的权限。

每日上限的工作原理

每个工作区都有一个每日上限,用于定义其自己的数据量限制。 达到每日上限时,选定 Log Analytics 工作区的页面顶部会显示警告横幅,同时会将一个操作事件发送到“LogManagement”类别下的“操作”表。 可以选择创建警报规则,以在创建此事件时发送警报。

用于每日上限的数据大小是客户定义的数据转换后的大小。 (详细了解数据收集规则中的数据转换。)

数据收集在重置时间恢复,对于每个工作区来说,这是一天中不同的时间。 无法配置此重置时间。 可以选择创建警报规则,以在创建此事件时发送警报。

注意

每日上限无法在精确指定的上限级别停止数据收集,且可能出现某些多余的数据。 如果工作区接收的数据速率较高,超出每日上限的数据集合可能会特别大。 如果收集的数据超过上限,仍会纳入计费。 请参阅查看每日上限的效果,了解有助于研究每日上限行为的查询。

何时使用每日上限

每日上限通常由特别注重成本的组织使用。 这不应用作降低成本的方法,而应用作确保你不超过特定预算的预防措施。

当数据收集停止时,你实际上将无法监视依赖于该工作空间的功能和资源。 可以创建警报规则,以在数据收集达到每日上限之前的某个级别时通知你,而不是仅仅依靠每日上限。 通知使你可以在数据收集关闭之前解决任何增加的问题,甚至可以暂时禁用不太关键资源的收集。

Application Insights

应为 Application Insights 和 Log Analytics 配置每日上限设置,以限制服务引入的遥测数据量。 对于基于工作区的 Application Insights 资源,每日有效上限是两个设置中的最小值。 对于经典 Application Insights 资源,仅应用 Application Insights 每日上限,因为它们的数据不驻留在 Log Analytics 工作区中。

提示

如果担心 Application Insights 收集的可计费数据量,应配置采样以将其数据量调整到所需级别。 使用每日上限作为一种安全方法,以防应用程序意外开始发送大量遥测数据。

除非为高流量应用程序请求了更高的最大值,否则 Application Insights 经典资源的最大上限是 1,000 GB/天。 在 Azure 门户中创建资源时,每日上限设置为 100 GB/天。 在 Visual Studio 中创建资源时,默认值很小(只有 32.3 MB/天)。 设置每日上限默认值,以便进行测试。 可预期用户在将应用部署到生产环境之前,会提高每日上限。

注意

如果使用连接字符串通过区域引入终结点将数据发送到 Application Insights,则 Application Insights 和 Log Analytics 每日上限设置将按区域生效。 如果仅使用检测密钥 (ikey) 通过全局引入终结点将数据发送到 Application Insights,则 Application Insights 每日上限设置可能跨区域无效,但 Log Analytics 每日上限设置仍将适用。

对于具有无法用于 Application Insights 的额度的某些订阅类型,我们已去除此限制。 以前,如果订阅有支出限制,“每日上限”对话框将提供如何去除此限制,并使每日上限提高到超过 32.3 MB/天的说明。

确定每日上限

为了帮助你确定适合工作区的每日上限,请参阅 Azure Monitor 成本和使用情况了解数据引入趋势。 还可以查看分析 Log Analytics 工作区中的使用情况,它提供了更详细地分析工作区使用情况的方法。

使用 Microsoft Defender for Cloud 的工作区

重要

从 2023 年 9 月 18 日起,Azure Monitor 将对所有计费数据类型设置上限
当满足每日上限时。 在工作区上启用 Microsoft Defender for Servers 时,任何数据类型都没有特殊行为。 此更改可提高你完全控制高于预期的数据引入成本的能力。 如果在启用了 Microsoft Defender for Servers 的工作区上设置了每日上限,请确保上限足够高,以适应此更改。 此外,请务必设置警报(如下所示),以便在满足每日上限后立即收到通知。

在 2023 年 9 月 18 日以前,如果工作区在 2017 年 6 月 19 日之后启用了 Microsoft Defenders for Servers 解决方案,则尽管已配置任何每日上限,仍然会为 Microsoft Defender for Cloud 或 Microsoft Sentinel 收集一些与安全相关的数据类型。 以下数据类型将受到每日上限中特殊例外的约束:WindowsEvent、SecurityAlert、SecurityBaseline、SecurityBaselineSummary、SecurityDetection、SecurityEvent、WindowsFirewall、MaliciousIPCommunication、LinuxAuditLog、SysmonEvent、ProtectionStatus、Update、UpdateSummary、CommonSecurityLog 和 Syslog

设置每日上限

Log Analytics 工作区

在 Azure 门户中设置或更改 Log Analytics 工作区的每日上限:

  1. 从“Log Analytics 工作区”菜单中,选择你的工作区,然后选择“使用情况和预估成本”。
  2. 选择页面顶部的“每日上限”。
  3. 选择“打开”,然后设置数据量限制(以 GB/天为单位)。

Log Analytics 配置数据限制

注意

将显示工作区的重置时间,但无法进行配置。

要使用 Azure 资源管理器配置每日上限,请按照工作区 - 创建或更新中的说明设置 WorkspaceCapping 下的 dailyQuotaGb 参数。

经典 Application Insights 资源

在 Azure 门户中设置或更改经典 Application Insights 资源的每日上限:

  1. 从“监视”菜单中,选择“应用程序”(你的应用程序),然后选择“使用情况和预估成本”。
  2. 选择页面顶部的“数据上限”。
  3. 设置数据量限制(以 GB/天为单位)。
  4. 如果希望在达到每日限制时向订阅管理员发送电子邮件,请选择该选项。
  5. 以数据量限制的百分比设置每日上限警告级别。
  6. 如果希望在达到每日上限警告级别时向订阅管理员发送电子邮件,请选择该选项。

Application Insights 配置数据限制

要使用 Azure 资源管理器配置每日上限,请按照工作区 - 创建或更新中的说明设置 dailyQuotadailyQuotaResetTimewarningThreshold 参数。

达到每日上限时发出警报

当达到 Log Analytics 工作区的每日上限时,Azure 门户中会显示一个横幅,并将一个事件写入工作区中的“操作”表。 应创建一条警报规则,以便在发生这种情况时主动通知你。

要在达到每日上限时收到警报,请创建一条包含以下详细信息的日志搜索警报规则

设置
范围
目标作用域 选择 Log Analytics 工作区。
条件
信号类型 日志
信号名称 自定义日志搜索
查询 _LogOperation | where Category =~ "Ingestion" | where Detail contains "OverQuota"
度量 度量值:表行
聚合类型:Count
聚合粒度:5 分钟
警报逻辑 运算符:大于
阈值:0
评估频率:5 分钟
操作 选择或添加一个操作组,以便在超过阈值时通知你。
详细信息
严重性 警告
警报规则名称 达到每日数据限制

经典 Application Insights 资源

当达到经典 Application Insights 资源的每日上限时,会在 Azure 活动日志中使用以下信号名称创建一个事件。 还可以选择在达到上限和达到每日上限的指定百分比时向订阅管理员发送电子邮件。

  • 已达到 Application Insights 组件的每日上限警告阈值
  • 已达到 Application Insights 组件的每日上限

要在达到每日上限时创建警报,请创建一条包含以下详细信息的日志警报规则

设置
范围
目标作用域 选择自己的应用程序。
条件
信号类型 活动日志
信号名称 已达到 Application Insights 组件的每日上限

已达到 Application Insights 组件的每日上限警告阈值
严重性 警告
警报规则名称 达到每日数据限制

查看每日上限的效果

以下查询可用于跟踪每日上限重置之间 Log Analytics 工作区受每日上限约束的数据量。 在此示例中,工作区的重置时间为 14:00。 更改 DailyCapResetHour 以匹配你的工作区的重置小时数,可在“每日上限”配置页上看到该小时数。

let DailyCapResetHour=14;
Usage
| where TimeGenerated > ago(32d)
| extend StartTime=datetime_add("hour",-1*DailyCapResetHour,StartTime)
| where StartTime > startofday(ago(31d))
| where IsBillable
| summarize IngestedGbBetweenDailyCapResets=sum(Quantity)/1000. by day=bin(StartTime , 1d) // Quantity in units of MB
| render areachart  

当工作区上未运行更新管理解决方案或者启用了解决方案目标设定时,将 UpdateUpdateSummary 数据类型添加到 where Datatype 行(了解详细信息。)

后续步骤