Dagu Cloud

为你的 Dagu 服务器打造的控制平面

将每台自托管 Dagu 服务器连接到 Dagu Cloud。在一个控制台中查看它们的健康状态和运行情况,把告警发到团队常用的地方,无需逐台登录服务器即可重试、停止和审批运行,还能让 ChatGPT 或 Claude 通过一个 MCP 端点操作它们。工作流仍然只在你的服务器上运行,连接由服务器向外发起,不开放任何入站端口。

单台服务器免费。Team 和 Pro 覆盖每台已授权的服务器,并增加运行操作、MCP 和团队协作。监控需要 Dagu v2.19.1 或更高版本(免费方案需要 v2.19.2);运行操作和 MCP 需要 v2.22 或更高版本。

你的服务器

  • prod-eu-1dagu 2.19.0
  • prod-us-2dagu 2.19.0
  • batch-01dagu 2.19.0

工作流在此运行

HTTPS,仅出站,每 60 秒一次
console.dagu.sh从不运行工作流
概览服务器运行告警通知

出现问题时通过邮件、聊天、PagerDuty 或 Webhook 告警,恢复时再通知一次

服务器很多,却没有统一运维的地方

每台 Dagu 服务器都能独立运作,拥有自己的调度器、运行历史和 Web UI。服务器有好几台,也就意味着要查看好几个地方;运行需要人工处理时,还得分别登录好几个地方。

每台服务器各有一个 Web UI

每台服务器只显示自己的运行。要检查 5 台服务器昨晚的失败,就得打开 5 个 Web UI。

没有汇总所有失败的列表

没有任何东西把所有服务器的失败汇集到一处,所以没有人能看到全貌。

问题发现得晚

调度器停止或服务器悄无声息,都不会产生任何错误。定时工作流就这样停止运行,直到有人发现。

告警需逐台服务器配置

要发送失败邮件,每台服务器都需要配置邮件和通知设置,并手动保持一致。

每次处理都要再登录一次

要重试失败的运行或审批等待中的步骤,就得先找到对应的服务器,打开它的 Web UI,再在那里登录。

AI 没有安全的接入方式

要让 ChatGPT 或 Claude 操作防火墙后的服务器,就得开放端口或交出 API 密钥。

一个控制台,管理所有服务器

Dagu 控制台的“监控”部分包含“概览”“服务器”“运行”“告警”“通知”和“洞察”页面,以及每台服务器、每个工作流和每条告警各自的页面。工作区的所有成员都可以查看。

概览:当前需要处理的问题

报告中的服务器、今日(UTC)失败数、进行中的运行,以及最近 7 个 UTC 日的成功率。“需要处理”列出等待人工处理的事项、未解决的告警和今日的失败,每一行都可直接执行相应操作。

  • 报告中断
  • 未签到
  • 离线
  • 调度器已停止
  • 失败中的工作流
  • 事件丢失
  • 监控已关闭
Dagu 控制台“概览”页面,显示报告中的服务器、今日失败数、未解决的告警、7 天成功率,以及列出受影响服务器的“需要处理”列表

服务器:每台服务器及其状态

每台已连接的服务器及其状态、Dagu 版本、最近一次报告、今日(UTC)失败数、7 个 UTC 日的成功率和未解决的告警。

报告中
最近 5 分钟内收到过报告。
报告中断
服务器以前报告过,但最近 5 分钟内没有报告。
未签到
超过 26 小时没有许可证签到。
离线
超过 72 小时没有许可证签到。
监控已关闭
服务器上的监控已被关闭,或 Dagu 控制台中没有该服务器的任何报告。
调度器已停止
最近一次报告中没有正在运行的调度器,因此定时工作流不会启动。
事件丢失
服务器断开连接的时间超过了其事件存储保留事件的时长,因此部分已完成的运行未能发送。
Dagu 控制台中的已连接服务器表格,显示状态为“报告中”和“报告中断”的服务器,以及 Dagu 版本、最近一次报告、今日失败数、成功率和未解决的告警

每台服务器:健康状态与近期历史

每台服务器有一个页面。“概览”显示其健康状态(Dagu 版本、操作系统与架构、进程启动时间、最近一次报告、最近一次签到)、最近一次报告中的服务、未解决的告警,以及最近的失败。“运行”列出其运行。“工作流”按 UTC 日显示每个工作流 14 天内已完成的运行,以及运行数、失败数、成功率、平均时长和最长时长。

Dagu 控制台中某台服务器的“工作流”标签页,显示最近 14 天的每日运行柱状图,以及每个工作流的运行数、失败数、成功率和时长

所有服务器上的运行

进行中的运行排在最前,其后是已完成的运行,按从新到旧排列。每次运行都有指向其各次尝试的永久链接。

可按服务器、工作流、状态(失败、成功、运行中、等待中或排队中)和时间范围(最近 1 小时、24 小时、7 天、14 天,Team 和 Pro 还可选 30 天)筛选。

Dagu 控制台“运行”页面,按从新到旧列出来自多台服务器的已完成运行,并提供服务器、工作流、状态和时间范围筛选器

洞察:7 天、30 天或 90 天的趋势

运行数、失败数和成功率与上一周期的对比、每日运行数,以及每个工作流的 p95 时长及其变化。今日的运行在完成后即计入。

Dagu 控制台中最近 30 天的“洞察”:带变化幅度的运行数、失败数和成功率卡片,每日运行数、成功率,以及列出各工作流 p95 时长及其变化的表格

单个工作流:是在失败,还是在变慢?

每个工作流有一个页面,显示其未解决的告警、每日运行数、成功率,以及 7 天、30 天或 90 天的 p50 和 p95 时长,还有最近的运行和失败所在的步骤。所有者可以在此将其静音。

Dagu 控制台中一个失败工作流的页面,显示其告警、详细信息、带变化幅度的卡片,以及每日运行数、成功率和 30 天内不断上升的 p50 与 p95 时长图表

在控制台中操作,或交给你的 AI

Dagu Cloud 通过服务器主动建立的连接访问每台服务器,因此成员和 MCP 客户端无需入站端口、VPN 或 API 密钥即可操作运行。

在控制台中操作运行

直接在“概览”、运行页面或相应告警中查看失败步骤的日志,重试或停止运行,并批准或拒绝等待人工处理的步骤。

一个 MCP 端点覆盖所有服务器

只需连接一次 ChatGPT、Claude 或其他 MCP 客户端,即可跨工作区的各台服务器读取运行和日志、启动和重试工作流、编辑 DAG,可执行的操作以每位成员的角色为准。

边界由每台服务器设定

每台服务器的管理员负责开启远程访问,并设定允许的最高角色。每次调用都只为该请求单独签名,并同时记录在 Dagu Cloud 和服务器自己的审计日志中。

适用于 Team 和 Pro,或试用期间。需要 Dagu v2.22 或更高版本。

远程访问的工作原理

每个问题一条告警,而不是每次失败一封邮件

一条告警对应一个工作流或一台服务器。它只触发一次,统计之后发生的情况,并在问题结束时自动解决。

工作流失败

一次失败的运行会触发该工作流的告警。之后的失败只累加次数,不再发送消息;下一次成功运行即可将其解决。

服务器停止报告

10 分钟(免费监控为 25 分钟)没有报告就会触发该服务器的告警,宕机的主机或停止的进程不会被忽视。下一次报告即可将其解决。

运行时间远超平常

Team 和 Pro

运行时间超过所属工作流平常耗时的两倍且多出至少 10 分钟时,会在有人发现报表迟迟未出之前触发告警。运行结束时告警自动解决。

Dagu 控制台中的未解决告警:一台停止报告的服务器、一次运行时间过长的运行、一个已确认的失败和一个已静音的工作流,每条都显示邮件发送时间和发送到的通知目标
  • 每条告警都有自己的页面:哪里失败、在哪台服务器上,以及一条时间线,记录它何时触发、每封邮件和每条消息,以及谁确认了它。
  • 工作区的任何成员都可以在告警页面上确认告警,收件人也可以直接在邮件中确认,无需登录。对应的 PagerDuty 事件会一并确认。
  • 在 Team 和 Pro 中,无人确认的告警会每小时、每 4 小时或每天重新发送,最多 6 次。可以将提醒暂停 1 小时、1 天,或暂停到你所在时区的 9:00。
  • 同时触发或解决的告警合并在一封邮件中。每个频道一次最多收到 20 条消息,其余的汇总为一条。
  • 已中止和被拒绝的运行在统计中计为失败,但既不会触发也不会解决告警。
  • 邮件和消息中的时间采用工作区的时区。可以将噪声较多的工作流静音:其告警仍会被记录,但不会通知任何人。

工作流告警需要“健康状态和运行状态”级别。邮件发件人为 no-reply@dagu.sh。

Dagu 控制台中一条已确认的告警,显示其服务器、工作流和失败步骤,以及邮件、发送到 Slack、Teams 和 PagerDuty 的消息和同步到 PagerDuty 的确认组成的时间线

告警发到团队本来就在看的地方

告警邮件发送给所有者和管理员,以及你添加的成员和已验证的外部地址,每封邮件都可一键退订。在 Team 和 Pro 中,告警还可发送到最多 10 个通知目标:Slack、Microsoft Teams、Google Chat、Discord、PagerDuty 和签名 Webhook。

  • 邮件
  • Slack
  • Microsoft Teams
  • Google Chat
  • Discord
  • PagerDuty
  • Webhook

添加通知目标时会发送一条测试消息,每个目标都会记录每条消息及其响应。发送失败的消息会以退避方式重试,最长一天;连续三次拒绝告警的目标会停用并给出提示。

Dagu 控制台的“通知”页面,显示告警邮件以及 Slack、Microsoft Teams、PagerDuty 和 Webhook 通知目标均正常工作、每 4 小时提醒一次,以及可添加的通知目标

面向所有者的每周摘要

Team 和 Pro

每周一按工作区时区的 8:00,每位所有者都会收到一封汇总上周情况的邮件。点击一个链接即可停止接收。

  • 已完成的运行和成功率,并与前一周对比
  • 触发和解决的告警,以及确认和修复的速度
  • 失败最多的工作流,以及变慢的工作流
  • 失联的服务器,以及停止接收告警的通知目标

执行和数据都留在你的服务器上

由你的服务器向 Dagu 控制台发送报告。Dagu 控制台从不连接到你的服务器,也从不运行工作流。

仅出站 HTTPS

报告是从服务器发往 console.dagu.sh 的 HTTPS 请求。不开放任何入站端口,也没有任何连接进入服务器。

工作流从不等待控制台

即使无法访问 Dagu 控制台,工作流也照常运行。服务器会重试,并在控制台恢复后发送错过的运行。

开启前始终关闭

监控默认关闭,由每台服务器的管理员为该服务器选择。连接或升级服务器时,除许可证签到外不会发送任何内容。

三个级别

“仅健康状态”只发送服务器上运行着什么。“健康状态和运行状态”还会发送其运行的状态,工作流告警需要此级别。第三个级别还会发送失败步骤的错误消息,让告警说明运行失败的原因。

哪些数据会离开你的服务器

  • Dagu 版本、操作系统与架构,以及服务器进程的启动时间

    仅健康状态
    发送
    健康状态和运行状态
    发送
  • 正在运行的调度器数量和已注册的协调器数量

    仅健康状态
    发送
    健康状态和运行状态
    发送
  • 每次已完成的顶层运行:DAG 名称、运行 ID、尝试 ID、状态、触发方式,以及排队、开始和结束时间

    仅健康状态
    不发送
    健康状态和运行状态
    发送
  • 运行中失败步骤的名称,最多 50 个

    仅健康状态
    不发送
    健康状态和运行状态
    发送
  • 排队中、运行中或等待中的运行,每次报告最多 200 个

    仅健康状态
    不发送
    健康状态和运行状态
    发送
  • 日志、输出、参数、环境变量、步骤命令、DAG YAML 和密钥值

    仅健康状态
    从不发送
    健康状态和运行状态
    从不发送

与许可证签到一样,每次报告还会携带服务器的许可证 ID、服务器 ID 和心跳密钥。DAG 名称和步骤名称仅在发送运行状态时发送;如果你认为它们属于敏感信息,请选择“仅健康状态”。失败步骤的错误消息只在第三个级别“健康状态、运行状态和错误消息”下发送:每条错误的末尾部分,已声明的密钥会被遮盖。

三步完成设置

需要 Dagu v2.19.1 或更高版本(免费监控需要 v2.19.2 或更高版本),并且服务器必须能通过 HTTPS 访问 https://console.dagu.sh。

  1. 01

    将服务器连接到 Dagu 控制台

    在 Dagu 中打开“套餐与功能”并选择“连接到 Dagu Console”,或运行 dagu license activate,或使用服务器密钥启动服务器。使用离线许可证的服务器不会报告。

  2. 02

    选择要报告的内容

    在“套餐与功能”的“监控”部分选择“开启”,然后选择“健康状态和运行状态”或“仅健康状态”。所选设置立即生效,无需重启。

    对于以代码方式管理的服务器,可在配置文件中设置级别,或设置 DAGU_CLOUD_REPORT=runs:

    cloud:
      report: runs   # off, health, or runs
    
  3. 03

    在 Dagu 控制台中查看

    服务器每 60 秒报告一次;当运行失败或进行中的运行发生变化时,会在约 5 秒内报告。服务器会出现在 Dagu 控制台的“监控”下。

阅读完整的设置指南

方案、保留期限与限制

每个方案涵盖的范围、Dagu Cloud 保留服务器报告数据的时长,以及每天的存储量。

方案

每个工作区可免费监控一台服务器,限制较低:每 5 分钟报告一次,每天存储 100 次运行,保留 7 天运行历史,告警邮件发送给所有者和管理员。Team 和 Pro 覆盖每台已授权的服务器,提供 30 天运行历史、聊天、PagerDuty 和 Webhook 通知目标、提醒、运行时间过长告警以及每周摘要。

比较方案

保留期限

已完成的运行
30 天
每个工作流的每日汇总
13 个月
已解决的告警
解决后 90 天
未解决的告警
直到解决

免费监控显示最近 7 天已完成的运行,试用显示最近 14 天。30 天未发送报告的服务器将从监控中移除,其每日统计和告警也会一并删除。

每日运行数上限

每个工作区每个 UTC 日最多存储 500 次已完成的运行(免费监控为 100 次)。超出上限的运行仍计入每日汇总,也仍会触发和解决告警,但不会添加到运行列表中。存储在 00:00 UTC 恢复。

需要更多?联系我们

在一处运维所有 Dagu 服务器

阅读设置指南,或打开 Dagu 控制台并连接你的第一台服务器。单台服务器免费;Team 或 Pro 可以先开始试用。