Grafana Alerting 入门 - 第 2 部分
Grafana Alerting 入门 - 第 2 部分
Grafana Alerting 入门教程第 2 部分是 Grafana Alerting 入门教程第 1 部分的延续。
在本指南中,我们将深入探讨 Grafana Alerting 更复杂但同样重要的元素:告警实例和通知策略。
在介绍完每个组件后,您将学习如何
- 配置返回多个告警实例的告警规则
- 创建将触发中的告警实例路由到不同联系点的通知策略
- 使用标签匹配告警实例和通知策略
了解告警实例和通知策略非常有用,特别是当您的组织有多个联系点,或者当您的告警规则返回一系列指标,您希望通过将每个告警实例路由到特定的联系点来单独处理这些指标时。本教程将介绍每个概念,然后说明如何在实际场景中应用这两个概念。
开始之前
您可以通过不同方式跟随本教程进行操作。
Grafana Cloud
- 作为 Grafana Cloud 用户,您无需安装任何东西。创建您的免费账户。
继续阅读 告警实例。
交互式学习环境
- 另外,您可以在我们的交互式学习环境中尝试这个示例:Grafana Alerting 入门 - 第 2 部分。这是一个已完全配置好的环境,所有依赖项都已安装。
Grafana OSS
如果您选择在本地运行 Grafana Stack,请确保已安装以下应用程序
Docker Compose(包含在 macOS 和 Windows 上的 Docker Desktop 中)
设置 Grafana Stack (OSS 用户)
为了演示使用 Grafana Stack 观测数据,请下载并运行以下文件。
克隆 教程环境仓库。
git clone https://github.com/grafana/tutorial-environment.git
切换到您克隆仓库的目录
cd tutorial-environment
运行 Grafana Stack
docker compose up -d
首次运行
docker compose up -d
时,Docker 会下载本教程所需的所有资源。这可能需要几分钟,具体取决于您的互联网连接速度。注意
如果您的系统上已经运行了 Grafana、Loki 或 Prometheus,您可能会看到错误,因为 Docker 镜像试图使用您本地安装已占用的端口。如果是这种情况,请停止这些服务,然后再次运行该命令。
告警实例
告警实例(alert instance)是与告警规则查询返回的指标匹配的事件。
让我们考虑一个使用 Grafana 监控网站流量的场景。您已设置一个告警规则,如果在特定时间段内(例如,过去 5
分钟内)页面浏览量超过某个阈值(超过 1000
次页面浏览),则触发一个告警实例。
如果查询返回多个时间序列,每个时间序列代表一个不同的被监控指标或方面。在这种情况下,告警规则会单独应用于每个时间序列。

在此场景中,每个时间序列都会独立地对照告警规则进行评估。这将为每个时间序列创建一个告警实例。与桌面页面浏览量相对应的时间序列达到阈值,因此会生成一个处于触发中(Firing)状态的告警实例,并发送告警通知。移动端告警实例状态保持为正常(Normal)。
通知策略
通知策略(Notification policies)将告警路由到不同的通信渠道,减少告警噪音,并控制何时以及如何发送告警。例如,您可以使用通知策略确保关于服务器停机的关键告警立即发送给值班工程师。另一个用例可能包括将性能告警路由到开发团队进行审查和处理。
主要特点
- 通过使用标签匹配告警和策略来路由告警通知
- 管理何时发送通知

在上述图中,告警实例和通知策略通过标签匹配。例如,标签 team=operations
将告警实例“Pod stuck in CrashLoop”和“Disk Usage -80%”匹配到发送告警通知到特定联系点(operations@grafana.com)的子策略。
创建通知策略
如果您想通过将每个告警实例路由到特定的联系点来单独处理告警规则返回的指标,请创建通知策略。
在您的浏览器中,登录您的 Grafana Cloud 账户。
OSS 和交互式学习环境用户:要登录,请访问 https://:3000,这是 Grafana 应运行的地址。
导航到 Alerts & IRM > Alerting > Notification policies。
在默认策略中,点击 + 新建子策略。
在标签(Label)字段中输入
device
,在值(Value)字段中输入desktop
。从联系点(Contact point)下拉菜单中,选择 Webhook。
注意
如果您没有任何联系点,请添加一个联系点。
点击保存策略(Save Policy)。
这个新的子策略将匹配标签
device=desktop
的告警路由到 Webhook 联系点。重复上述步骤创建一个新的子策略以匹配另一个告警实例。使用标签:
device=mobile
。联系点使用 Webhook 集成。另外,您可以尝试使用不同的 Webhook 端点或不同的集成方式。
创建返回告警实例的告警规则
您即将创建的告警规则旨在监控网站流量页面浏览量。目的是探索什么是告警实例以及如何利用标签匹配器和通知策略路由单个告警实例。
创建告警规则
- 导航到 Alerts & IRM > Alerting > Alert rules。
- 点击新建告警规则(New alert rule)。
输入告警规则名称
使其简短且具有描述性,因为这会显示在您的告警通知中。例如,web-traffic
。
定义查询和告警条件
在本节中,我们将使用 Grafana 管理的告警规则创建的默认选项。默认选项允许我们定义查询、一个表达式(用于处理数据——界面中的 WHEN 字段),以及触发告警必须满足的条件(在默认模式下是阈值)。
Grafana 包含一个测试数据源(test data source),用于创建模拟时间序列数据。此数据源包含在本教程的演示环境中。如果您正在使用 Grafana Cloud 或您自己的本地 Grafana 实例,可以通过连接(Connections)菜单添加该数据源。
从下拉菜单中选择 TestData 数据源。
从场景(Scenario)选择 CSV 内容(CSV Content)。
复制以下 CSV 数据
device,views desktop,1200 mobile,900
上述 CSV 数据模拟了一个返回多个时间序列的数据源,每个时间序列都会为此特定时间序列创建一个告警实例。请注意,返回的数据与告警实例部分中的示例匹配。
在告警条件(Alert condition)部分
- 将最后(Last)保留作为归约函数(WHEN)的值,并将
1000
作为阈值。这是触发告警规则的上限值。
- 将最后(Last)保留作为归约函数(WHEN)的值,并将
点击预览告警规则条件(Preview alert rule condition)运行查询。
它应该返回两个系列:desktop
处于触发中(Firing)状态,而 mobile
处于正常(Normal)状态。值 1
和 0
表示条件为 true
或 false
。

添加文件夹和标签
- 在文件夹(Folder)中,点击 + 新建文件夹(+ New folder)并输入名称。例如:
web-traffic-alerts
。此文件夹包含我们的告警规则。
设置评估行为
在告警实例的生命周期中,当不满足告警条件(阈值)时,告警实例状态为正常(Normal)。类似地,当条件被违反(持续时间超过待处理期,在本教程中为 0)时,告警实例状态会切换回告警中(Alerting),这意味着告警规则状态为触发中(Firing),并发送通知。
设置评估行为
- 在评估组和间隔(Evaluation group and interval)中,重复上述步骤创建一个新的评估组。将其命名为
1m
(指“1 分钟”)。 - 选择一个评估间隔(Evaluation interval)(告警评估的频率)。选择
1m
。 - 将待处理期(pending period)设置为
0s
(零秒),以便在满足条件时立即触发告警规则。
配置通知
在本节中,您可以选择如何路由告警实例。由于我们希望通过通知策略进行路由,因此需要确保标签与告警实例匹配。
选择使用通知策略(Use notification policy)。
点击预览路由(Preview routing)。根据现有标签,您应该看到与告警匹配的策略预览。应该有两个告警实例匹配之前在每个通知策略中设置的标签:
device=desktop
和device=mobile
。这些类型的标签由数据源查询生成,可以用来匹配我们的通知策略,而无需手动将它们添加到告警规则中。
匹配的通知策略路由预览 注意
即使两个标签都匹配策略,只有处于触发中(Firing)状态的告警实例才会生成告警通知。
点击保存规则并退出(Save rule and exit)。
现在我们已经设置好告警规则,是时候检查告警通知了。
接收告警通知
配置好告警规则后,当告警触发和解决时,您应该在联系点收到告警通知。在我们的示例中,由于我们配置了标签以匹配通知策略,每个告警实例应该被单独路由。评估间隔结束后(1m),您应该在 Webhook 端点收到告警通知。

告警通知详情显示,对应于桌面设备网站浏览量的告警实例已通过通知策略正确路由到 Webhook 联系点。通知还显示实例处于触发中(Firing)状态,并且包含标签 device=desktop
,这使得告警实例的路由成为可能。
您可以随意更改告警规则中的 CSV 数据,以触发匹配标签 device=mobile
的告警实例的路由。
总结
在本教程中,您学习了 Grafana Alerting 如何使用数据源查询生成的标签路由单个告警实例,并将这些标签与通知策略匹配,从而将告警通知路由到特定的联系点。
如果您遇到任何问题,欢迎在我们的 Grafana 社区论坛中提问。
在 Grafana Alerting 第 3 部分学习更多
提示
在 Grafana Alerting 入门 - 第 3 部分中,您将学习如何有效地对告警通知进行分组。