概述
本文档主题专为支持 Grafana 10.x 版本的 Grafana 工作区而设计。
对于支持 Grafana 9.x 版本的 Grafana 工作区,请参阅 使用 Grafana 版本 9。
对于支持 Grafana 8.x 版本的 Grafana 工作区,请参阅 使用 Grafana 版本 8。
无论您是刚开始使用 Grafana Alerting,还是经验丰富的用户,都可以了解有助于您创建、管理和响应警报的基础知识和可用功能;以及如何提高团队快速解决问题的能力。
原则
在基于 Prometheus 的警报系统中,警报生成器负责创建警报,警报接收器负责接收警报。例如,Prometheus 是一个警报生成器,负责评估警报规则,而 Alertmanager 是一个警报接收器,负责分组、抑制、静默和发送有关触发和已解决警报的通知。
Grafana Alerting 基于 Prometheus 警报系统的设计模型而构建。该系统有一个内部警报生成器,负责调度和评估警报规则,以及一个内部警报接收器,负责分组、抑制、静默和发送通知。Grafana 并不使用 Prometheus 作为其警报生成器,因为除了 Prometheus 之外,Grafana Alerting 还需要处理许多其他数据来源。而是使用 Alertmanager 作为其警报接收器。
警报被发送到警报接收器,在那里进行路由、分组、抑制、静默和通知。在 Grafana Alerting 中,默认的警报接收器是嵌入在 Grafana 中的 Alertmanager,称为 Grafana Alertmanager。但您也可以使用其他 Alertmanager,这些被称为外部 Alertmanager。
基础知识
以下内容概述了 Grafana Alerting 的不同组成部分。
警报规则
警报规则是一组确定何时触发警报的标准。由一个或多个查询和表达式、需要满足的条件、确定评估警报规则频率的间隔以及必须满足条件才能触发警报的持续时间组成。
警报规则在其间隔内进行评估,每个警报规则一次可以触发零个、一个或任意数量的警报。警报规则的状态取决于其最 severe
的警报,可以是“正常”、“待处理”或“触发”。例如,如果警报规则中至少有一个警报触发,则该警报规则也会触发。警报规则的运行状况取决于其最新评估的状态。可以是“正常”、“错误”和“无数据”。
警报规则的一个非常重要的特征是其支持自定义注释和标签。这样,您可以为警报添加摘要和描述等附加元数据,并添加附加标签,以便将警报路由到特定的通知策略。
提醒
警报由一组名为 Labels 的键/值对唯一标识。每个键都是一个标签名称,每个值都是一个标签值。例如,一个警报具有标签 foo=bar
,而另一个警报具有标签 foo=baz
。一个警报可以有多个标签(例如 foo=bar,bar=baz
),但不能有两个相同的标签(例如 foo=bar,foo=baz
)。两个警报的标签也不能相同,如果两个警报的标签相同(例如 foo=bar,bar=baz
和 foo=bar,bar=baz
),那么其中一个警报将被丢弃。当不再满足警报规则中的条件或删除警报规则时,警报即得到解决。
在 Grafana 管理的警报中,警报可以处于“正常”、“待处理”、“警报”、“无数据”或“错误”状态。在数据来源管理的警报(例如 Mimir 和 Loki)中,警报可以处于“正常”、“待处理”和“警报”状态,但不能是“无数据”或“错误”。
联系点
联系点决定了通知的发送位置。例如,您有一个联系点,负责向电子邮件地址、Slack、事件管理系统(IRM)(如 Grafana OnCall 或 Pagerduty)或 Webhook 发送通知。
您可以使用通知模板自定义从联系点发送的通知。还可以使用通知模板来更改通知的标题、消息和结构。通知模板并不特定于单个集成或联系点。
通知策略
通知策略将警报分组,然后路由到联系点。这些策略决定了何时发送通知,以及重复发送通知的频率。
使用标签匹配程序将警报与通知策略匹配。这些是人类可读的表达式,用于断言警报的标签是否完全匹配、不完全匹配、包含或不包含某些预期文本。例如,匹配程序 foo=bar
匹配带有标签 foo=bar
的警报,而匹配程序 foo=~[a-zA-Z]+
则匹配带有任何名为 foo 的标签,且其值匹配正则表达式 [a-zA-Z]+
的警报。
默认情况下,一个警报只能匹配一个通知策略。但是,使用 continue
功能,警报可以同时匹配任意数量的通知策略。有关通知策略的更多信息,请参阅通知策略。
静默和静音定时
您可以通过静默和静音定时暂停特定警报,甚至暂停整个通知策略。使用静默可临时暂停通知,例如在修复警报时;使用静音定时可定期暂停通知,例如在定期维护窗口期间。