警报编辑

警报功能允许您定义规则,这些规则可以检测不同 Kibana 应用中的复杂条件,并在满足这些条件时触发操作。警报功能与 可观测性安全地图机器学习 集成。它可以从 堆栈管理 集中管理,并提供一组内置的 连接器规则 供您使用。

Rules UI

要确保您可以访问警报和操作,请参阅 设置和先决条件 部分。

警报功能通过按计划运行检查来检测由规则定义的条件。当满足条件时,规则会将其跟踪为警报,并通过触发一个或多个操作来响应。操作通常涉及与 Kibana 服务或第三方集成的交互。连接器使操作能够与这些服务和集成进行通信。本节介绍所有这些元素以及它们如何协同工作。

规则编辑

规则指定在 Kibana 服务器上运行的后台任务,以检查特定条件。Kibana 提供两种类型的规则:内置于 Kibana 中的堆栈规则和由 Kibana 应用注册的规则。有关更多信息,请参阅 规则类型

规则由三个主要部分组成

  • 条件:需要检测什么?
  • 计划:检测检查应该何时/多久运行一次?
  • 操作:检测到条件时会发生什么?

例如,在监控一组服务器时,规则可能会

  • 检查过去两分钟内每台服务器的平均 CPU 使用率是否 > 0.9(条件)。
  • 每分钟检查一次(计划)。
  • 通过 SMTP 发送主题为 {{server}} 上的 CPU 过高 的警告电子邮件(操作)。
Three components of a rule

以下部分更详细地描述了规则的每个部分。

条件编辑

在底层,Kibana 规则通过在 Kibana 服务器上运行 JavaScript 函数来检测条件,这使其能够灵活地支持各种条件,从简单的 Elasticsearch 查询结果到涉及来自多个来源或外部系统的数据的繁重计算。

这些条件被打包并作为规则类型公开。规则类型隐藏了条件的底层细节,并公开了一组参数来控制要检测的条件的细节。

例如,索引阈值规则类型 允许您指定要查询的索引、聚合字段和时间窗口,但底层 Elasticsearch 查询的细节是隐藏的。

有关 Kibana 提供的规则以及它们如何表达其条件,请参阅 规则类型

计划编辑

规则计划定义为后续检查之间的间隔,范围可以从几秒到几个月不等。

Kibana 中规则检查的间隔是近似的。它们的时间安排受任务认领频率和系统任务负载等因素的影响。有关更多信息,请参阅 警报生产注意事项

操作编辑

当满足规则条件时,操作将在 Kibana 服务器上作为后台任务运行。同样,当不再满足规则条件时,恢复操作也会运行。它们通过连接 Kibana 内部的服务或与第三方系统集成来发送通知。

在规则中定义操作时,您需要指定

  • 连接器
  • 操作频率
  • 规则值到该操作类型公开的属性的映射

Kibana 使用 连接器 简化了操作设置,而不是重复输入每个操作的连接信息和凭据。例如,如果四个规则通过相同的 SMTP 服务发送电子邮件通知,则它们都可以引用相同的 SMTP 连接器。

操作频率定义了操作运行的时间(例如,仅当警报状态更改或以特定时间间隔运行)。每个规则类型还有一组操作组,它们会影响操作运行的时间(例如,达到阈值时或警报恢复时)。如果您希望在不影响及时性的情况下减少收到的通知数量,请将操作频率设置为警报摘要。您将在您首选的时间间隔收到汇总新警报、正在进行的警报和已恢复警报的通知。

某些类型的规则允许您进一步细化操作运行的条件。例如,您可以指定操作仅在特定时间范围内发生警报或与 KQL 查询匹配时才运行。

因此,每个操作定义都是一个模板:提供了调用服务所需的所有参数,但只有在检测到规则条件时才知道的特定值除外。

在服务器监控示例中,使用了 email 连接器类型,并将 server 映射到电子邮件正文,使用模板字符串 {{server}} 上的 CPU 过高

当规则检测到条件时,它会创建一个包含条件详细信息的警报。

警报编辑

在检查条件时,规则可能会识别到多个出现的条件。Kibana 会分别跟踪每个警报。根据操作频率,每个警报或在指定的警报摘要间隔会发生操作。

使用服务器监控示例,平均 CPU > 0.9 的每台服务器都被跟踪为一个警报。这意味着,每当警报状态更改时,都会为超过阈值的每台服务器发送单独的电子邮件。

Kibana tracks each detected condition as an alert and takes action on each alert

汇总编辑

规则由条件、操作和计划组成。当满足条件时,将创建警报以呈现操作并调用它们。为了更容易地设置和更新操作,操作使用连接器来集中用于连接 Kibana 服务和第三方集成的信息。以下示例将这些概念联系在一起

Rules
  1. 每当满足规则的条件时,就会创建一个警报。此示例检查平均 CPU > 0.9 的服务器。三台服务器满足条件,因此创建了三个警报。
  2. 警报根据操作频率创建操作,只要它们没有被静音或限制。创建操作时,其属性将填充实际值。在此示例中,当达到阈值时,将创建三个操作,并且模板字符串 {{server}} 将替换为每个警报的相应服务器名称。
  3. Kibana 运行操作,通过使用第三方集成(如电子邮件服务)发送通知。
  4. 如果第三方集成具有连接参数或凭据,Kibana 会从相应的连接器中获取这些参数或凭据。

与 Watcher 的区别编辑

Watcher 和 Kibana 警报功能都用于检测条件,并且可以触发操作以进行响应,但它们是完全独立的警报系统。

本节将阐明这两个系统在功能和意图方面的一些重要区别。

在功能上,警报功能的不同之处在于

  • 计划检查在 Kibana 而不是 Elasticsearch 上运行
  • Kibana 规则通过规则类型隐藏检测条件的细节,而 Watcher 则提供对输入、条件和转换的低级控制。
  • Kibana 规则通过警报跟踪和持久化每个检测到的条件的状态。这使得静音和限制单个警报以及检测状态更改(如解决)成为可能。
  • 操作链接到警报。操作针对检测到的条件的每次出现触发,而不是针对整个规则触发。

在更高的层次上,警报功能允许跨用例进行丰富的集成,例如 APM指标安全正常运行时间。预先打包的规则类型简化了设置并隐藏了复杂的、特定于域的检测的细节,同时在 Kibana 中提供了一致的界面。