通知与告警
OneBots 的“通知与告警”配置由常驻管理服务独立保存,不属于网关的 config.yaml。网关停止时仍可打开管理台查看渠道、规则与投递记录。管理服务自身停止或崩溃无法由它自己发出可靠告警,请另接外部存活监控。
配置步骤
- 在管理台“通知与告警 → 渠道”添加 Webhook、邮件或 Bark 渠道。邮件先添加 SMTP 发件配置和收件组;一个 Bark 渠道可添加多个设备 Key,服务地址既可为官方
https://api.day.app,也可为自建服务。 - 保存渠道后使用“发送测试”验证目标与凭据。
- 在“事件规则”勾选事件、全部或指定账号、目标渠道,然后保存。新账号自动匹配“全部账号”规则。一个事件命中多个规则时,同一渠道只投递一次。
- 在“投递记录”查看结果;目标暂时不可用时会持久排队、退避重试,可手动重试。
默认只允许公网 HTTPS Webhook/Bark 目标;需要自建内网或本机 HTTP 时,在该渠道中显式开启。SMTP 密码、Webhook 密钥和 Bark 设备 Key 不会从读取接口回传;编辑时显示掩码,保留掩码即保留原值。
事件与时序
- 结构化服务故障:网关异常退出或启动失败、运行版本激活失败、配置应用失败。普通 error 日志不触发告警。
- 账号首次上线、故障后恢复在线、离线,以及明确由适配器上报的连接中断。连接中断不从一般
pending状态推断;当前 ICQQ、IRCv3、Slack Socket Mode、Discord Gateway、KOOK Gateway、Heychat、邮件 IMAP、Zulip Event Queue、Telegram polling、Mattermost WebSocket 和 Twitch EventSub WebSocket 会显式上报。 - 登录等待扫码或设备验证。每个新挑战单独通知;二维码、短信码、平台令牌不写入投递队列。目标渠道选择“附验证材料”后,Webhook 会附有效挑战的二维码图片或平台链接,邮件会附图片或链接;输入字段、答案及适配器私有数据不会外发。Bark 只附受保护的管理台链接,不直接发送二维码。管理台链接需要设备会话授权,外部访问 URL 必须使用 HTTPS。启用 Bark 登录通知前必须配置此 URL。
账号状态变化立即写入告警记录,向同一渠道投递前最多等待 30 秒,以合并多个账号的同类变化。离线后 30 秒内恢复会合成“短暂离线并恢复”并附持续时间。登录交互不参与合并,立即投递。主动停止或切换网关导致的离线也按普通离线处理。
通用 Webhook 契约
Webhook 以 POST 发送 JSON,顶层包含 version: 1、汇总 event 和原始 events 数组。可选认证为无、Bearer Token 或 HMAC-SHA256。HMAC 模式发送 X-OneBots-Timestamp 和 X-OneBots-Signature: sha256=<hex>;签名正文为 UTF-8 的 <timestamp>.<原始 JSON 报文>。目标必须返回 2xx;重定向不会自动跟随。
队列按指数退避重试,最长保留 72 小时的自动重试资格;已失效的登录挑战不会补发。历史中的失败记录可以手动重试。待投递队列有容量上限;若达到上限,管理台会显示未能排队的计数。不要把管理服务控制口直接暴露到公网,仍需按管理端登录与恢复配置授权。
Bark 多设备推送若只有部分设备成功,记录为失败并停止自动重试,避免成功设备重复收到告警;手动重试整组设备前请先检查投递记录。