Grafana OnCall 外发 Webhook 配置与使用指南

Grafana OnCall 外发 Webhook 配置与使用指南

oncall grafana/oncall: Grafana OnCall 是 Grafana Labs 推出的一款开源事件响应与排班调度工具,可以帮助团队管理和跟踪故障处理情况,提高 SRE 团队的工作效率。 oncall 项目地址: https://gitcode.com/gh_mirrors/onc/oncall

前言

在现代运维体系中,告警通知的自动化处理是提高运维效率的关键。Grafana OnCall 作为一款专业的告警管理工具,其外发 Webhook 功能能够将告警信息灵活地推送到各类系统,实现告警信息的自动化流转和处理。本文将详细介绍 Grafana OnCall 中外发 Webhook 的配置方法、使用场景以及高级技巧。

外发 Webhook 概述

外发 Webhook 是 Grafana OnCall 向外部系统发送数据的机制,它支持通过 HTTP 请求将告警信息推送到指定 URL。该功能具有以下特点:

  1. 事件驱动:可根据不同类型的事件触发
  2. 高度可定制:支持 Jinja2 模板引擎处理数据
  3. 灵活集成:可与各类第三方系统对接

版本兼容性说明

对于 v1.3.11 之前版本创建的 Webhook,系统会标记为 (Legacy)。这些 Webhook 仍能正常工作,但无法直接编辑。如需修改,需使用"Make a copy"功能创建新 Webhook 并更新相关配置。

Webhook 创建步骤

  1. 导航至 Outgoing Webhooks 页面
  2. 点击 + Create 按钮
  3. 选择预设模板或创建自定义 Webhook
  4. 配置各项参数(详见下文)
  5. 保存配置

核心配置参数详解

基础配置

| 参数名 | 说明 | 必填 | 支持模板 | 默认值 | |--------|------|------|----------|--------| | 名称 | Webhook 显示名称 | 是 | 否 | 空 | | 启用状态 | 控制 Webhook 是否生效 | 是 | 否 | True | | 所属团队 | 设置 Webhook 的可见范围 | 否 | 否 | 空 |

触发条件

| 参数名 | 说明 | 必填 | 支持模板 | 默认值 | |--------|------|------|----------|--------| | 触发类型 | 决定哪些事件会触发 Webhook | 是 | 否 | 无 | | 集成限制 | 限制仅特定集成的事件触发 | 否 | 否 | 无 |

请求配置

| 参数名 | 说明 | 必填 | 支持模板 | 默认值 | |--------|------|------|----------|--------| | HTTP 方法 | 请求使用的 HTTP 方法 | 是 | 否 | POST | | Webhook URL | 目标 URL(需完整域名) | 是 | 是 | 空 | | 请求头 | 自定义请求头 | 否 | 是 | 空 | | 认证信息 | 基础认证或授权头 | 否 | 部分 | 空 |

数据配置

| 参数名 | 说明 | 必填 | 支持模板 | 默认值 | |--------|------|------|----------|--------| | 触发模板 | 动态判断是否执行 Webhook | 否 | 是 | 空 | | 数据体 | 请求主体内容 | 否 | 是 | 空 | | 转发全部 | 发送完整 Webhook 负载 | 否 | 否 | False |

事件类型详解

Grafana OnCall 支持多种触发事件类型:

  1. 手动或升级步骤:作为升级链中的一步触发
  2. 个人通知:用户收到通知时触发
  3. 告警组创建:新告警组产生时触发
  4. 已确认:告警被确认时触发
  5. 已解决:告警被解决时触发
  6. 静默/取消静默:告警静默状态变化时触发
  7. 未解决/未确认:告警状态回退时触发
  8. 状态变更:任何状态变化时触发

模板引擎使用指南

Grafana OnCall 使用 Jinja2 模板引擎处理数据,支持在多个字段中使用模板变量。模板可访问的数据结构包括:

核心数据结构

{
  "event": {},       // 事件信息
  "user": {},        // 用户信息
  "alert_group": {}, // 告警组详情
  "alert_payload": {}, // 告警内容
  "integration": {}, // 集成信息
  "responses": {}    // 其他 Webhook 响应
}

常用模板示例

  1. 基础告警信息提取
{
  "alert_name": "{{ alert_payload.labels.alertname }}",
  "description": "{{ alert_payload.annotations.description }}"
}
  1. 条件判断
{% if alert_group.state == 'resolved' %}
  "status": "已解决"
{% else %}
  "status": "待处理"
{% endif %}
  1. 循环处理
"notified_users": [
  {% for user in notified_users %}
    "{{ user.email }}"{% if not loop.last %},{% endif %}
  {% endfor %}
]

高级应用技巧

响应数据复用

通过 responses 对象可以访问同一告警组中其他 Webhook 的响应数据,实现工作流串联:

"ticket_id": "{{ responses['WHP936BM1GPVHQ'].content.ticket_id }}"

UID 获取方法

各类对象的 UID 可通过以下方式获取:

  • Webhook:表格中的信息图标
  • 集成:集成名称旁的信息图标
  • 路由:集成详情页中的信息图标
  • 告警组:浏览器地址栏中的 URL
  • 用户:用户详情页 URL

最佳实践建议

  1. 超时控制:确保目标系统在4秒内响应,避免超时
  2. 错误处理:在模板中添加默认值处理,如 {{ value|default('N/A') }}
  3. 日志检查:定期查看 Webhook 执行记录,监控成功率
  4. 版本管理:对重要 Webhook 配置进行版本备份

常见问题解答

Q: Webhook 执行失败怎么办? A: 检查"Last Run"中的响应信息,确认目标 URL 可达且返回正确格式

Q: 如何测试 Webhook? A: 可通过创建测试告警或使用集成中的"Send Demo Alert"功能

Q: 模板语法错误如何排查? A: 系统会标记模板错误位置,建议先在简单字段测试复杂模板

通过本文介绍,您应该已经掌握了 Grafana OnCall 外发 Webhook 的核心配置方法和使用技巧。合理利用这一功能,可以大幅提升告警处理的自动化程度和响应效率。

oncall grafana/oncall: Grafana OnCall 是 Grafana Labs 推出的一款开源事件响应与排班调度工具,可以帮助团队管理和跟踪故障处理情况,提高 SRE 团队的工作效率。 oncall 项目地址: https://gitcode.com/gh_mirrors/onc/oncall

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

余印榕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值