Azure Monitor 自定义日志搜索查询 - 了解周期和频率

Azure Monitor Custom log search Query - understanding Period and Frequency

更新:

实际问题和我描述的不一样。一旦我们解决了这个问题,我将提供 update/edit 到这张票。可以在此线程中找到更多详细信息 - https://techcommunity.microsoft.com/t5/Azure-Log-Analytics/Reliably-trigger-alerts-for-Log-Analytics-log-entries/m-p/319315/highlight/false#M1224

原题:

我们使用 Azure Monitor 根据 Log Analytics 中的日志创建警报。为此,我们选择我们的 Log Analytics 帐户作为 "RESOURCE",然后为 "CONDITION" 选择 "Custom log search" 信号名称。警报逻辑 - "Number of results greater than 0".

示例查询:

search *
| where ResourceProvider == "MICROSOFT.DATAFACTORY" and status_s == "Failed"

对于 PeriodFrequency 让我们设置 15 分钟。一切看起来都很简单,但是...

问题:上述设置不起作用(有时有效),因为警报仅有时触发,很多他们被错过了,这是完全不能接受的行为。

如果我们设置 Period = Frequency = 5 分钟,我们基本上会错过几乎所有事件。 Period = Frequency = 15 分钟效果更好,但仍然缺少很多事件。 Period = Frequency = 30 效果更好,但这一切看起来很奇怪。

重要通知 - 日志从 Data Factory V2 收集到 Log Analytics。我怀疑警报未命中是由于日志传送到 Log Analytics 有一些延迟(最多几分钟)。因此,当 Azure Monitor 评估最后 15 分钟 (Period=15) 的警报查询时,可能是大多数重新发送的日志条目仍然不在 Log Analytics 中。当下一次查询评估在 15 分钟 后执行时,它将错过以前一个 15 分钟间隔 延迟进入的日志。这个假设是否正确?如果是这样,这就很奇怪了——那么我们应该如何配置 PeriodFrequency 值呢?如果我设置 Period > Frequency(例如 Period = 30Frequency = 5,,这意味着 "evaluate expression every 5 minutes, take data for last 30 minutes from current time"),那么我们会收到多个重复的警报,因为 Period 大于 Frequency 所以日志搜索查询很有可能每 5 分钟返回相同的日志条目 - 这是非常不受欢迎的行为。

问题恰好与 ARM 模板创建警报的错误行为有关。感谢 Stanislav Zhelyazkov,它已被确定并解决 - 我现在使用替代 ARM API,它似乎工作正常。有关该主题的更多详细信息,请参见此处 - https://techcommunity.microsoft.com/t5/Azure-Log-Analytics/Reliably-trigger-alerts-for-Log-Analytics-log-entries/m-p/309610.