Skip to content

接收外部消息 ​

把其他系统的告警、通知推到 DStatus,再按你在「通知管理」里设好的渠道发出去。两种入口:

  • Webhook 入口:对方系统能发 HTTP 请求(JSON 或表单)就能接入;宝塔面板有现成选项。
  • 心跳入口:定时任务(备份、同步等)每次跑完访问一次地址;到点没收到就告警,恢复上报后再发一条恢复。

入口在 后台 → 通知管理 → 接收。所有用户都可以使用。

接收入口列表

新建入口 ​

  1. 点「新建入口」,选「通用 JSON」或「定时任务」,填名称。

    新建入口:选类型、填名称

  2. 心跳入口再设截止(每天几点前,或每隔多久)和宽限,可选关联一台服务器:这台服务器掉线期间不判超时,避免和掉线通知重复。

    心跳入口:截止、宽限与关联服务器

  3. 创建后会显示专属地址。把地址填到对方系统,发一条测试消息,这里会从「等待首条消息」变成「已接收」。

    创建后显示专属地址

地址里带一串随机令牌,拿到地址就能往这里推消息。地址只给可信的系统;泄露了在入口详情里点「重新生成地址」,旧地址立即失效。

Webhook 入口怎么发 ​

向地址发 POST 请求,正文为 JSON:

字段说明
title标题。缺省显示「消息」
content内容,可选。也认 message、msg、text、body、description
levelinfo、warning、critical,缺省 info。也认 error、warn 等常见写法
key可选。同一件事的告警与恢复用同一个 key,面板会配对
statusfiring(告警)或 resolved(恢复),只在带 key 时生效

其余字段原样保留,在详情里可以看到。表单编码(application/x-www-form-urlencoded)同样支持,字段名相同。

curl:

bash
curl -X POST '<你的入口地址>' \
  -H 'Content-Type: application/json' \
  -d '{"title":"数据库备份失败","content":"上传对象存储失败","level":"critical","key":"backup-db"}'

Python:

python
import requests
requests.post("<你的入口地址>", json={"title": "数据库备份失败", "level": "critical", "key": "backup-db"})

恢复时把同一个 key 配上 status: "resolved" 再发一次。

收到后返回 200 和一个消息编号。常见返回:400 正文不是 JSON 或没有标题与内容;413 超过 64 KB;429 发得太快(每个入口每分钟 60 条、每天 2000 条);404 地址不对或入口已停用。

接入宝塔面板 ​

新建入口时选「宝塔面板」,然后在宝塔里:

  1. 打开 设置 → 告警通知 → 告警设置,在「自定义消息通道」那一行点「配置」,再点「添加」。

  2. 名称随意,URL 填 DStatus 给的入口地址;请求方式 POST,参数格式 application/json,证书校验「开启」,点「确定」。宝塔会立即发一条「消息通道配置提醒」做测试,DStatus 收到后入口状态变为「已接收」。

    宝塔自定义消息通道配置

  3. 回到「告警列表」添加任务(计划任务失败、磁盘告警等),告警方式选这个自定义通道。

    宝塔添加告警任务,告警方式选自定义通道

    宝塔告警列表,各项都走 DStatus 通道

宝塔消息的标题就是通知标题,正文是宝塔原文去掉格式符号;标题含「失败」「异常」「告警」等字样的按警告级别发。

心跳入口怎么用 ​

在定时任务末尾加一行:

bash
curl -fsS '<你的入口地址>'

GET、POST 都可以,正文不看。规则:

  • 截止是「每天几点前必须收到一次」或「每隔多久必须收到一次」,到点再等一个宽限期仍没收到就告警。
  • 一次告警只发一条,直到下一次上报才发恢复。
  • 关联了服务器的入口,服务器掉线期间暂停判定;重新在线后再给一次宽限,仍没收到才告警。

消息去了哪里 ​

  • 发到哪些渠道,由「通知管理 → 规则」里的内置规则「接收消息」「心跳超时」决定,和其他规则一样可以改渠道、停用或设免打扰。
  • 带 key 的告警在未恢复前重复发同一个 key,只记次数不重复通知。
  • 入口详情里能看到最近的消息、投递状态和最近一条的原文,排查对方字段对不上时用。

入口详情:最近消息与原文

相关 ​

  • 配置通知:渠道、默认发到、内置规则与免打扰

DStatus 文档