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 令牌:
- 登录您的 Grafana 账户。
- 进入 Service Accounts 页面(cmd+k -> service)。
- 点击 Add service account 按钮并为您的服务账户提供一个名称。
- 授予 "alerting" 权限:
- 现在生成 Service Account Token:
- 在 Grafana Provider 配置的
authentication部分使用令牌值。
安装后验证
您可以通过测试 Keep 的联系点(通过 webhook 集成安装)来检查 Grafana Provider 是否正常工作。
- 进入 Contact Points(cmd k -> contact)。
- 找到 keep-grafana-webhook-integration:
- 点击 View contact point:
- 点击 Test:
- 进入 Keep - 您应该会看到来自 Grafana 的告警!
替代验证方法(当 Keep 无法从外部访问时):
如果 Keep 无法从外部访问且无法创建 webhook,您可以使用以下方法手动验证 Grafana provider 设置:
在 Grafana 中手动测试告警:
- 在 Grafana 中创建一个手动测试告警。
- 在 Grafana 中设置一个通常会向 Keep 发送告警的联系点。
- 触发告警并检查 Grafana 的日志以获取错误或确认告警已发送。
检查 Grafana 中的日志:
- 访问 Grafana 的日志文件或使用 Explore 功能查询与告警机制相关的日志。
- 确保没有与 webhook 集成相关的错误,并且告警被正确处理。
验证集成状态:
- 导航到 Grafana 中的 Alerting 部分。
- 确认集成状态显示为活跃或正常运行。
- 监控任何出站 HTTP 请求,以验证 Grafana 正在尝试与 Keep 通信。
网络和连接检查:
- 使用网络监控工具确保 Grafana 可以到达 Keep 或为告警配置的任何替代端点。
::: note 拓扑图是从 Tempo 收集的追踪生成的。 要获取 Datasource UID,请进入:
- Connections > Data Sources。
- 点击正在从 Tempo 抓取数据的 Prometheus 实例 > 您的 URL 格式为
https://host/connections/datasources/edit/<DATASOURCE_UID>。 - 复制该 DATASOURCE_UID 并在安装 provider 时使用它。 :::
Webhook 集成修改
Webhook 集成将 Keep 添加为 Grafana 实例中的联系点。此集成可以在 "Contact Points" 部分找到。Keep 还可以访问以下范围:
alert.provisioning:readalert.provisioning:write