快速入门

阅读时长约 5 分钟 | 从注册到收到第一条告警通知的完整流程

概述

1Duty 是一站式智能告警与值班管理平台。它可以将来自 Prometheus、Grafana、Zabbix、Datadog、CloudWatch、Elasticsearch 等 20+ 监控平台的告警统一汇聚,通过五重智能降噪引擎(聚合、排除、静默、抖动检测、超时自动关闭)减少 90% 以上的告警噪音,再结合灵活排班和多渠道通知(短信、电话、邮件、钉钉、飞书、企业微信),确保每一条关键告警都被正确的人及时处理。

本文将引导您完成以下操作:

  1. 注册并登录 1Duty
  2. 创建集成并获取 Webhook URL
  3. 配置监控系统将告警发送到 1Duty
  4. 创建值班团队
  5. 配置排班规则
  6. 设置分派策略
  7. 发送测试告警验证流程

注册与登录

  1. 访问 1Duty 注册页面,输入邮箱和密码完成账号注册。
  2. 注册成功后,系统将引导您创建企业。输入企业名称即可完成创建。
  3. 创建企业后,您将自动成为该企业的管理员,拥有完整的管理权限。

免费版支持最多 5 个 License,无需绑定信用卡,注册即可使用。

步骤一:创建集成与 Webhook

集成是 1Duty 接收外部监控系统告警的入口。每个集成会生成一个唯一的 Webhook URL,监控系统通过该 URL 将告警推送到 1Duty。

  1. 登录后进入控制台,在左侧导航栏点击 告警接入
  2. 点击 创建集成 按钮。
  3. 选择集成类型。1Duty 支持 20+ 种集成类型,包括:
    • Prometheus -- AlertManager Webhook
    • Grafana -- Grafana Alerting Webhook
    • Zabbix -- Zabbix Webhook Media Type
    • Datadog -- Datadog Webhook Integration
    • CloudWatch -- SNS 订阅
    • Elasticsearch -- Watcher Webhook
    • 以及 Nightingale、Open Falcon、PagerDuty、自定义 Webhook 等
  4. 填写集成名称(例如 "生产环境 Prometheus"),点击 确认
  5. 系统将生成一个 Webhook URL,格式类似:
    https://api.1duty.com/webhook/{integration_id}/{webhook_key}
  6. 复制该 URL,后续步骤中将配置到您的监控系统。

步骤二:配置监控系统

以 Prometheus AlertManager 为例,演示如何将告警发送到 1Duty。

配置 AlertManager

编辑 AlertManager 的配置文件 alertmanager.yml,添加 1Duty 作为 Webhook 接收器:

global:
  resolve_timeout: 5m

route:
  receiver: '1duty'
  group_by: ['alertname', 'instance']
  group_wait: 30s
  group_interval: 5m
  repeat_interval: 4h

receivers:
  - name: '1duty'
    webhook_configs:
      - url: 'https://api.1duty.com/webhook/{integration_id}/{webhook_key}'
        send_resolved: true

配置说明:

保存配置后,重新加载 AlertManager:

# 发送 SIGHUP 信号重新加载配置
kill -HUP $(pidof alertmanager)

# 或通过 HTTP API 重新加载
curl -X POST http://localhost:9093/-/reload

其他监控系统的接入方式请参考 告警接入 文档,其中包含每种集成类型的详细配置指南。

步骤三:创建值班团队

值班团队是 1Duty 中告警分派的基本单位。告警通过分派策略路由到团队,再由团队的排班规则决定通知哪位值班人。

  1. 在左侧导航栏点击 团队管理,然后点击 创建团队
  2. 输入团队名称(例如 "SRE 值班组")。
  3. 添加团队成员。您可以:
    • 从企业已有成员中选择添加
    • 通过邮箱邀请新成员加入企业
  4. 点击 确认 完成团队创建。

建议每个团队至少添加 2 名成员,以便配置轮换排班,避免单点值班。

步骤四:配置排班规则

排班规则决定了团队中的成员如何轮换值班。

  1. 进入已创建的团队详情页,切换到 排班管理 标签。
  2. 点击 创建排班
  3. 配置排班参数:
    • 轮换周期 -- 支持按小时、天、周、月四种周期轮换。例如选择"按天",每位成员值班一天后自动轮换到下一位。
    • 生效时间 -- 设置排班的起止日期。
    • 时间限制(可选)-- 可限定每日或每周的值班时段,例如仅在工作日 09:00-18:00 生效。
    • 值班人员顺序 -- 拖拽调整成员的轮换顺序。
  4. 点击 确认 保存排班规则。

配置完成后,系统会根据排班规则自动计算每个时间段的值班人。您可以在排班日历视图中查看排班结果。

步骤五:设置分派策略

分派策略定义了告警如何路由到值班团队。您可以根据告警的来源、级别、标签等条件,将告警分派到不同的团队。

  1. 在左侧导航栏点击 分派策略,然后点击 创建策略
  2. 配置分派规则:
    • 匹配条件 -- 设置告警需要满足的条件,例如集成来源、告警级别(严重/警告/信息)、标签匹配等。
    • 目标团队 -- 选择告警要分派到的值班团队。
    • 通知方式 -- 选择通知渠道,如短信、电话、邮件、钉钉、飞书、企业微信等。
    • 升级策略(可选)-- 配置超时未认领时的升级规则,例如 5 分钟未认领自动升级通知团队负责人。
  3. 点击 确认 保存分派策略。

分派策略按优先级从高到低匹配。告警将被分派到第一个匹配的策略对应的团队。建议将范围更小、条件更精确的策略放在前面。

验证

完成以上配置后,您可以发送一条测试告警来验证整个流程是否正常工作。

方式一:通过监控系统触发

在 Prometheus 中创建一条测试告警规则:

groups:
  - name: test
    rules:
      - alert: TestAlert
        expr: vector(1)
        for: 1m
        labels:
          severity: warning
        annotations:
          summary: "1Duty 测试告警"
          description: "这是一条用于验证 1Duty 接入的测试告警"

等待约 1 分钟后,AlertManager 会将该告警通过 Webhook 发送到 1Duty。

方式二:通过 curl 直接调用

使用 curl 命令直接向 Webhook URL 发送一条模拟告警:

curl -X POST 'https://api.1duty.com/webhook/{integration_id}/{webhook_key}' \
  -H 'Content-Type: application/json' \
  -d '{
    "alerts": [
      {
        "status": "firing",
        "labels": {
          "alertname": "TestAlert",
          "severity": "warning",
          "instance": "test-server-01"
        },
        "annotations": {
          "summary": "1Duty 测试告警",
          "description": "验证告警接入流程"
        }
      }
    ]
  }'

验证结果

发送测试告警后,请检查以下内容:

  1. 在 1Duty 控制台的 事件管理 页面中,应能看到新创建的事件,状态为"待处理"。
  2. 当前排班的值班人应收到告警通知(通过您配置的通知渠道)。
  3. 值班人可以在控制台中认领事件,状态变为"处理中"。
  4. 处理完毕后关闭事件,状态变为"已关闭"。

如果一切正常,恭喜您已成功完成 1Duty 的基础配置!

下一步

完成快速入门后,您可以继续探索 1Duty 的更多功能: