Grafana 报警入门 - 第 1 部分

Grafana 报警入门 - 第 1 部分

在本指南中,我们将带您逐步完成在几分钟内设置第一个警报的过程。您将亲眼见证警报使用实时数据起作用,以及发送警报通知。

在本教程中,您将

  • 创建一个联系人。
  • 设置警报规则。
  • 在公共 Webhook 中接收触发和解决警报通知。

提示

在您深入研究之前,请记住您可以 在本指南的第二部分探索警报实例和通知路由等高级主题

在您开始之前

Grafana Cloud 用户

作为 Grafana Cloud 用户,您无需安装任何内容。

继续 创建联系人

Grafana OSS 用户

为了在本地运行 Grafana 堆栈,请确保已安装以下应用程序。

  • Docker Compose(包含在适用于 macOS 和 Windows 的 Docker for Desktop 中)
  • Git

设置 Grafana 堆栈(OSS 用户)

为了演示使用 Grafana 堆栈观察数据,请将文件下载到您的本地机器。

  1. 克隆 教程环境存储库

    git clone https://github.com/grafana/tutorial-environment.git
  2. 更改到您克隆存储库的目录

    cd tutorial-environment
  3. 运行 Grafana 堆栈

    docker compose up -d

    第一次运行 docker compose up -d 时,Docker 会下载教程所需的所有资源。这可能需要几分钟,具体取决于您的互联网连接。

    注意

    如果您已经在系统上运行了 Grafana、Loki 或 Prometheus,您可能会看到错误,因为 Docker 镜像尝试使用本地安装正在使用的端口。如果是这种情况,请停止服务,然后再次运行命令。

    提示

    或者,您可以在我们的交互式学习环境中尝试此示例:Grafana 报警入门

    这是一个完全配置的环境,其中所有依赖项都已安装。

    Interactive

    Grafana Killercoda 存储库 中提供反馈、报告错误并提出问题。

创建联系人

除了是一个开源可观察性工具之外,Grafana 还有自己的内置报警服务。这意味着,您可以在数据中发生任何感兴趣的事件时收到通知,甚至可以在可视化中看到这些事件的图形化表示。

在这一步中,我们将设置一个新的 联系人。此联系人将使用 webhooks 集成。为了使此方法有效,我们还需要一个用于 webhook 集成接收警报的端点。我们将使用 Webhook.site 快速设置该测试端点。这样,我们可以确保警报实际上正在将通知发送到某个地方。

  1. 在您的浏览器中,**登录**到您的 Grafana Cloud 帐户。

    OSS 用户:要登录,请导航到 https://127.0.0.1:3000,Grafana 运行的位置。

  2. 在另一个选项卡中,访问 Webhook.site

  3. 复制您的唯一 URL。

您的 webhook 端点现在正在等待第一个请求。

接下来,让我们在 Grafana 的警报 UI 中配置一个联系人,以将通知发送到我们的 webhook 端点。

  1. 返回 Grafana。在 Grafana 的侧边栏中,将鼠标悬停在 **警报**(铃铛)图标上,然后单击 **联系人**。

  2. 单击 **+ 添加联系人**。

  3. 在 **名称** 中,写入 **Webhook**。

  4. 在 **集成** 中,选择 **Webhook**。

  5. 在 **URL** 中粘贴您的webhook端点的地址。

  6. 点击 **测试**,然后点击 **发送测试通知**,将测试警报发送到您的webhook端点。

  7. 返回到 Webhook.site。在左侧,现在有一个 POST / 条目。点击它查看Grafana发送了哪些信息。

    A POST entry in Webhook.site
    Webhook.site 中的POST条目
  8. 返回Grafana并点击 **保存联系点**。

我们已经创建了一个虚拟的Webhook端点,并在Grafana中创建了一个新的警报联系点。现在,我们可以创建一个警报规则,并将其链接到这个新的集成。

创建警报

接下来,我们将建立一个 警报规则,在Grafana警报中,当警报规则触发和解决时通知我们。

  1. 在Grafana中,**导航到警报** > **警报规则**。点击 **新建警报规则**。

  2. 为您的警报规则输入警报规则名称。使其简短且具有描述性,因为这将出现在您的警报通知中。例如,**database-metrics**

定义查询和警报条件

在本节中,我们定义查询、表达式(用于操作数据)以及触发警报必须满足的条件。

  1. 从下拉菜单中选择 **Prometheus** 数据源。

  2. 在查询编辑器中,通过点击右侧的按钮切换到 **代码** 模式。

  3. 输入以下查询

    promql
    vector(1)

    在Prometheus中,vector(1) 是一种特殊的PromQL查询类型,它生成一个常量向量。这在测试和查询操作中非常有用,您可能需要一个常量值用于计算或比较。此查询将允许您创建一个始终触发的警报规则。

  4. 删除‘B’ **缩减表达式**(点击垃圾桶图标)。缩减表达式默认存在,在本例中,不需要,因为查询到的数据已经缩减。请注意,阈值表达式现在是您的 **警报条件**。

  5. 在‘C’ **阈值表达式** 中

    • 将 **输入** 更改为 **‘A’** 以选择数据源。
    • 输入 0 作为阈值。这是触发警报规则的阈值。
  6. 点击 **预览** 运行查询。

    它应该返回一个包含当前时间戳的值为1的单个样本。并且,由于 1 大于 0,所以警报条件已满足,警报规则状态为 Firing

    A preview of a firing alert
    正在触发的警报的预览

设置评估行为

一个 评估组 定义了警报规则何时触发,它基于两个设置

  • **评估组**:警报规则评估的频率。
  • **评估间隔**:条件必须满足多长时间才能开始触发。这允许您的数据在触发警报之前有时间稳定,有助于减少不必要的通知频率。

要设置评估

  1. 在 **文件夹** 中,点击 **+ 新建文件夹** 并输入一个名称。例如:metric-alerts。此文件夹将包含我们的警报。
  2. 在 **评估组** 中,重复上述步骤以创建一个新的评估组。我们将将其命名为 1m-evaluation
  3. 选择一个 **评估间隔**(警报将以多长时间间隔评估)。例如,每 1m(1分钟)。
  4. 将待处理时间设置为 0s(零秒),以便在满足条件的瞬间触发警报规则。

配置标签和通知

选择您希望接收警报通知的联系点。

  1. 在 **联系点** 下,从下拉菜单中选择 **Webhook**。
  2. 点击右上角的 **保存规则并退出**。

触发和解决警报

现在警报规则已经配置完成,您应该在警报触发和解决时在联系点接收警报 通知

触发警报

由于您创建的警报规则已配置为始终触发,因此在评估间隔结束时,您应该在Webhook端点收到警报通知。

Firing alert notification details
正在触发的警报通知详细信息

警报通知详细信息显示警报规则状态为Firing,并且包含使规则触发并超过警报规则条件阈值的价值。通知还包括查看警报规则详细信息的链接,以及另一个链接,用于添加一个 静默

解决警报

要查看已解决的警报通知的外观,您可以修改当前的警报规则阈值。

要编辑警报规则

  1. **导航到警报** > **警报规则**。
  2. 点击 metric-alerts 文件夹以显示您之前创建的警报
  3. 点击屏幕右侧的 **编辑** 按钮
  4. 将阈值表达式增加到1。
  5. 点击 **保存规则并退出**。

通过增加阈值,条件不再满足,并且在评估间隔结束(大约1分钟)后,您应该收到一个状态为 **“已解决”** 的警报通知。

了解更多

提示

通过探索 警报实例和通知路由,在学习之旅的第2部分中提升您的技能。