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"
对于 Period
和 Frequency
让我们设置 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
分钟间隔 延迟进入的日志。这个假设是否正确?如果是这样,这就很奇怪了——那么我们应该如何配置 Period
和 Frequency
值呢?如果我设置 Period > Frequency
(例如 Period = 30
和 Frequency = 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.
更新:
实际问题和我描述的不一样。一旦我们解决了这个问题,我将提供 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"
对于 Period
和 Frequency
让我们设置 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
分钟间隔 延迟进入的日志。这个假设是否正确?如果是这样,这就很奇怪了——那么我们应该如何配置 Period
和 Frequency
值呢?如果我设置 Period > Frequency
(例如 Period = 30
和 Frequency = 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.