使用日志搜索警报对应用程序中的事件发出警报

已完成

你可以使用 Azure Monitor 从日志文件中捕获重要信息。 应用程序、操作系统、其他硬件或 Azure 服务可以创建这些日志文件。

作为解决方案架构师,你想要了解在客户受到影响之前监视日志数据检测出问题的方法。 你知道 Azure Monitor 支持使用日志数据。

在此单元中,你将了解日志数据可以如何用来提高系统的复原能力。

何时使用日志搜索警报

日志搜索警报会使用日志数据来评估规则逻辑,并且在必要时触发警报。 该数据可以来自任何 Azure 资源:服务器日志、应用程序服务器日志或应用程序日志。

从本质上讲,日志数据是历史数据,因此它的使用侧重于分析和趋势。

可以使用这些类型的日志来评估在过去 30 分钟内是否有任何服务器超出了其 CPU 利用率的给定阈值。 或者,可评估过去一小时内在 Web 应用程序服务器上发布的响应代码。

日志搜索警报的工作原理

日志搜索警报的行为方式与其他警报机制略有不同。 日志搜索警报的第一部分定义了日志搜索规则。 该规则定义它应该运行的频率、待评估的时间段和要运行的查询。

当日志搜索结果为正时,它会创建警报记录并触发任何关联的操作。

日志搜索规则的组合

每个日志搜索警报都有一个具有以下组成部分的关联搜索规则:

  • 日志查询:在每次触发警报规则时都会运行的查询。
  • 时间段:查询的时间范围。
  • 频率:应运行查询的频率。
  • 阈值:创建警报的触发点。

日志搜索结果有两种类型:记录数或指标度量。

记录数

在处理事件或事件驱动的数据时,考虑使用记录数类型的日志搜索。 例如,syslog 和 Web 应用响应。

当搜索结果中的记录数达到或超过记录数值(阈值)时,这种日志搜索将返回单个警报。 例如,当搜索规则的阈值大于或等于 5 时,查询结果必须在警报触发之前返回 5 行或更多行的数据。

指标度量

指标度量日志提供与指标警报日志相同的基本功能。

与记录数搜索日志不同,指标度量日志需要设置进一步的条件:

  • 聚合函数:要对结果数据进行的计算。 例如,count 或 average。 函数的结果称为 AggregatedValue。
  • 分组字段:指示应如何对结果进行分组。 此条件与聚合值结合使用。 例如,你可以指定将平均值按计算机进行分组。
  • 间隔:聚合数据的时间间隔。 例如,如果指定 10 分钟,则会为 10 分钟的每个聚合块创建警报记录。
  • 阈值:由聚合值和违规总数定义的点。

当需要对找到的结果添加一定程度的容忍度时,考虑使用这种类型的警报。 此类警报的一个用途是,如果发现特定的趋势或模式,就进行响应。 例如,如果违规数是 5 次,并且在给定的时间段内,组中的任何服务器都有 5 次以上超过 85% 的 CPU 使用率,则会触发警报。

如你所见,指标度量方法极大地减少了生成警报的数量。 在设置阈值参数时仍然需要仔细考虑,以避免丢失关键警报。

日志搜索警报的无状态性质

在评估日志搜索警报的使用时,一个主要的考虑因素是它们是无状态的(有状态日志搜索警报目前处于预览阶段)。 无状态日志搜索警报会在每次触发规则条件时生成新的警报,而不管之前是否记录了警报。