Skip to content

关于本页

本页介绍更夫所基于的开源内核 Keep 的通用能力。更夫在其上提供国内化增强:钉钉/企业微信/飞书通知、国产大模型接入、LDAP 认证与值班管理。部署与上手请看快速上手。

TIP

Grafana 目前支持拉取/推送告警和拉取拓扑图。我们将很快添加查询和通知功能。

认证 ​

此提供商需要身份验证。

  • token: Token(必需:True,敏感:True)
  • host: Grafana 主机(必需:True,敏感:False)
  • datasource_uid: 数据源 UID(必需:False,敏感:False)

某些范围可能需要才能通过提供商执行特定操作或查询。以下是相关范围及其用例的摘要:

  • alert.rules:read: 在文件夹及其子文件夹中读取 Grafana 警报规则。(强制)(文档)
  • alert.provisioning:read: 通过配置 API 读取所有 Grafana 警报规则、通知策略等。(文档)
  • alert.provisioning:write: 通过配置 API 更新所有 Grafana 警报规则、通知策略等。(文档)

在工作流中 ​

此提供商不能用作工作流中的"步骤"或"操作"。如果您想使用它,请通过在 GitHub 仓库 创建问题告诉我们。

拓扑 ​

此提供商向 Keep 拉取拓扑。可用于关联和映射,并作为警报和事件的上下文。

通过 Webhook 连接(双向) ​

此提供商支持 webhook。

如果您的 Grafana 无法从 Keep 访问,您可以使用以下 webhook URL 配置 Grafana 将警报发送到 Keep:

1. 在 Grafana 中,转到 Grafana 仪表板中的"警报"选项卡。
2. 点击左侧边栏中的"联系人"并创建一个新的。
3. 为其命名并选择 Webhook 作为联系人类型,webhook URL 为 KEEP_BACKEND_URL/alerts/event/grafana。
4. 添加 'X-API-KEY' 作为请求头 {api_key}。
5. 保存 webhook。
6. 点击左侧边栏中的"通知策略"
7. 在"默认策略"下点击"新建子策略"
8. 删除所有匹配器,直到看到以下内容:"如果未指定匹配器,此通知策略将处理所有警报实例。"
9. 选择您刚在联系人下创建的 webhook 联系人,然后点击"保存策略"

传统告警与统一告警 ​

Keep 支持 Grafana 的传统告警系统和较新的统一告警系统。以下是主要区别:

传统告警 ​

  • 使用通知渠道传递告警。
  • 在仪表板级别配置。
  • 使用不同的 API 端点(/api/alerts 和 /api/alert-notifications)。
  • 设置更简单但功能较少。
  • 告警与仪表板面板紧密耦合。

统一告警(Grafana 9.0 起默认) ​

  • 使用告警规则和联系点。
  • 在告警部分集中配置。
  • 使用较新的 /api/v1/alerts 端点。
  • 更强大的功能,包括基于标签的路由。
  • 支持在单个告警规则中使用多个数据源。

::: note 如果您使用的是 Grafana 8.x 或更早版本,或者在新版本中明确启用了传统告警,请确保使用传统告警配置相应地配置 Keep。 :::

连接 Provider ​

要连接到 Grafana,您需要创建一个 API 令牌:

  1. 登录您的 Grafana 账户。
  2. 进入 Service Accounts 页面(cmd+k -> service)。
  3. 点击 Add service account 按钮并为您的服务账户提供一个名称。
  4. 授予 "alerting" 权限:
  1. 现在生成 Service Account Token:
  1. 在 Grafana Provider 配置的 authentication 部分使用令牌值。

安装后验证 ​

您可以通过测试 Keep 的联系点(通过 webhook 集成安装)来检查 Grafana Provider 是否正常工作。

  1. 进入 Contact Points(cmd k -> contact)。
  2. 找到 keep-grafana-webhook-integration:
  1. 点击 View contact point:
  1. 点击 Test:
  1. 进入 Keep - 您应该会看到来自 Grafana 的告警!

替代验证方法(当 Keep 无法从外部访问时):

如果 Keep 无法从外部访问且无法创建 webhook,您可以使用以下方法手动验证 Grafana provider 设置:

  1. 在 Grafana 中手动测试告警:

    • 在 Grafana 中创建一个手动测试告警。
    • 在 Grafana 中设置一个通常会向 Keep 发送告警的联系点。
    • 触发告警并检查 Grafana 的日志以获取错误或确认告警已发送。
  2. 检查 Grafana 中的日志:

    • 访问 Grafana 的日志文件或使用 Explore 功能查询与告警机制相关的日志。
    • 确保没有与 webhook 集成相关的错误,并且告警被正确处理。
  3. 验证集成状态:

    • 导航到 Grafana 中的 Alerting 部分。
    • 确认集成状态显示为活跃或正常运行。
    • 监控任何出站 HTTP 请求,以验证 Grafana 正在尝试与 Keep 通信。
  4. 网络和连接检查:

    • 使用网络监控工具确保 Grafana 可以到达 Keep 或为告警配置的任何替代端点。

::: note 拓扑图是从 Tempo 收集的追踪生成的。 要获取 Datasource UID,请进入:

  1. Connections > Data Sources。
  2. 点击正在从 Tempo 抓取数据的 Prometheus 实例 > 您的 URL 格式为 https://host/connections/datasources/edit/<DATASOURCE_UID>。
  3. 复制该 DATASOURCE_UID 并在安装 provider 时使用它。 :::

Webhook 集成修改 ​

Webhook 集成将 Keep 添加为 Grafana 实例中的联系点。此集成可以在 "Contact Points" 部分找到。Keep 还可以访问以下范围:

  • alert.provisioning:read
  • alert.provisioning:write

基于 MIT 协议开源的 Keep · 由更夫社区维护