我有一个关于Azure日志分析警报的问题,因为我不太明白在基于聚合值设置警报的上下文中,时间框架是如何工作的。
我有下面的代码:
Event | where Source == "EventLog" and EventID == 6008 | project TimeGenerated, Computer | summarize AggregatedValue = count(TimeGenerated) by Computer, bin_at(TimeGenerated,24h, datetime(now()))
For time window : 24/03/2019, 09:46:29 - 25/03/2019, 09:46:29
在上面的警报配置界面中,我添加了bin_at(TimeGenerated,24h, datetime(now()))
,所以我添加了函数,传递了24小时时间段的参数。如果你已经添加了这个,那么时间段的意义是什么?
基本上,我希望的结果是在24小时内捕获此事件,并在事件计数超过2时发出警报。我不明白为什么在此基础上还需要时间窗口,因为我只希望每五分钟运行一次代码,并在检测到此事件的两个以上示例时发出警报。
有人能帮我吗?
2条答案
按热度按时间r7s23pms1#
AFAIK您可以使用如下所示的查询来完成在24小时内捕获所需事件的要求。
此示例查询中的“1 s”是聚合日志分析工作区资料档案库并从中获取输出的时间范围。有关详细信息,请参阅https://learn.microsoft.com/en-us/azure/kusto/query/summarizeoperator
要创建警报,您可能必须转到Azure门户-〉YOURLOGANALYTICSWORKSPACE -〉监视磁贴-〉警报-〉管理器警报规则-〉新建警报规则-〉添加条件-〉自定义日志搜索-〉在“搜索查询”部分下粘贴上述任何查询-〉在“警报逻辑”部分的“阈值”参数下键入“2”-〉单击“完成”-〉在“操作组“部分,选择现有操作组或创建一个新的操作组,如下面提到的文章中所述-〉更新”警报详细信息“-〉单击”创建警报规则“。
https://learn.microsoft.com/en-us/azure/azure-monitor/platform/action-groups
希望这对你有帮助!!干杯!!:)
0yycz8jy2#
为了回答你在评论部分的问题,是的,警报坚持要添加bin函数,这就是为什么我提供了相关的查询沿着bin函数,并试图在我以前的回答中解释它。
如果将“1 s”放入bin函数,则将通过聚合1秒时间跨度内任何EventID的值来从日志分析获取输出。因此,输出将如下所示,其中aaaaaaa被视为VM名称,x被视为特定时间。
如果在bin函数中放置“24 h”而不是“1 s,”则将通过聚合24小时时间跨度内任何EventID的值来从日志分析获取输出。因此,输出将如下所示,其中aaaaaaa被视为VM名称,x被视为特定时间。
所以在这种情况下我们不应在bin函数中将'24 h'与'any'聚合沿着使用,因为如果使用它,我们将在24小时的时间跨度中只看到一次输出,这无助于您使用上面提供的具有'any'聚合的查询来查找事件发生计数。如果您希望具有'24 h',则可以使用'count'聚合而不是'any'那么这个查询看起来就像下面这样
此查询的输出如下所示,其中aaaaaaa被视为虚拟机名称,x被视为特定时间,y和z被视为一些数字。
另一个注意事项是,所有上述查询和输出都是在基于聚合值设置警报的上下文中进行的,即,在基于部分的警报逻辑下选择“度量测量”时设置警报。换句话说,当您在基于节的预警逻辑下选择“度量度量”时,预警查询中需要aggregatedvalue列。但当您说“您获取事件计数”时这意味着如果我没猜错的话,您可能在基于节的警报逻辑下选择了“结果数”,这将不需要查询中的任何聚合列。
希望这能澄清!!干杯!!