在使用 Synology Surveillance Station 搭建监控系统时,传统的 “登录 NAS 查看监控记录” 模式难以满足 “实时异常提醒” 需求 —— 比如摄像头检测到运动、设备离线或触发报警时,管理员无法第一时间知晓,易错过关键事件。而通过 Synology Surveillance 创建 Webhooks,可将监控事件数据(如设备名称、事件类型、发生时间、快照链接)自动推送至微信企业号、钉钉、Slack 等常用聊天平台,实现 “秒级提醒”,大幅提升监控响应效率。本文基于 Synology 官方技术指南,针对 Surveillance Station 8.2 及以上版本(Webhooks 功能稳定支持版本)、DSM 7.0+,全面讲解 Webhooks 从创建到集成聊天平台的全流程,帮助用户零门槛实现监控数据实时推送。

一、环境准备:配置前必须确认的 3 项核心前提

Webhooks 的创建与数据推送依赖 “Surveillance Station 版本、DSM 环境、聊天平台权限” 三大基础,任何一项不满足都会导致配置失败,需逐一验证:

1. 确认软件版本兼容性(核心门槛)

Synology 仅在特定版本中支持 Webhooks 功能,且不同版本的操作路径存在差异,版本要求如下表:
组件
最低支持版本
推荐稳定版本
版本查看路径
Synology Surveillance Station
8.2.0-6480
9.0.0-7600(最新版,支持更多事件类型)
NAS 端:打开 Surveillance Station→点击右上角「设置」(齿轮图标)→「关于」→查看 “版本”
Synology DSM
7.0.0-41890
7.2.1-69057 Update 3
NAS 端:「控制面板→更新与还原→当前状态」
聊天平台(示例)
微信企业号(已认证)、钉钉(任意版本)、Slack(工作区权限)
微信企业号 3.0+、钉钉 6.5+、Slack 4.0+
聊天平台端:微信企业号管理后台「关于」、钉钉「设置→关于钉钉」
  • 若版本低于要求:优先升级(Surveillance Station 通过「Package Center→已安装→更新」升级,DSM 通过「更新与还原」升级),升级前建议备份监控录像(「Surveillance Station→备份与还原→备份配置」)。

2. 准备聊天平台接收端信息(关键参数)

Webhooks 的核心是 “将监控数据发送到聊天平台的指定接口”,需提前在目标聊天平台获取 “Webhook URL”(接收数据的地址)及必要的认证信息(如密钥、Token),不同平台的准备项如下:
聊天平台
需提前获取的信息
准备步骤简述(详细步骤见后续章节)
微信企业号
1. 企业 CorpID2. 应用 AgentID3. 应用 Secret4. 消息发送接口 URL
1. 登录微信企业号管理后台→创建 “监控提醒” 应用;2. 从应用详情页获取 AgentID、Secret;3. 调用「获取 access_token」接口生成临时 Token
钉钉机器人
1. 群组自定义机器人 Webhook URL2. 安全设置(IP 白名单 / 签名)
1. 进入钉钉目标群组→「群设置→智能群助手→添加机器人→自定义机器人」;2. 配置安全设置(建议添加 NAS 的公网 / 局域网 IP);3. 复制生成的 Webhook URL
Slack
1. Incoming Webhook URL2. 目标频道名称
1. 登录 Slack 工作区→「Administration→Manage Apps→搜索 Incoming Webhooks」;2. 启用功能并选择目标频道;3. 复制生成的 Webhook URL

3. 确认 NAS 网络连通性(数据推送基础)

Webhooks 通过网络将数据发送到聊天平台接口,需确保 NAS 能访问互联网(或聊天平台内网地址):
  1. NAS 端测试连通性:登录 DSM→打开「终端机和 SNMP」(需先启用 SSH 服务)→通过 PuTTY 或终端连接 NAS,执行ping api.dingtalk.com(钉钉接口)、ping qyapi.weixin.qq.com(微信企业号接口),确保能正常解析并 ping 通;
  1. 防火墙设置:若 NAS 启用防火墙(「控制面板→安全性→防火墙」),需添加规则允许 NAS 访问 “聊天平台接口域名”(如钉钉:.dingtalk.com,微信企业号:.weixin.qq.com),或临时关闭防火墙测试(排除拦截问题)。

二、核心步骤 1:在 Synology Surveillance 创建 Webhooks

Webhooks 的创建是 “数据发送端” 配置,需在 Surveillance Station 中定义 “触发事件(何时发送)”“接收地址(发给谁)”“数据格式(发什么)”,步骤详细到每一步点击路径:

步骤 1:进入 Surveillance Station Webhooks 配置页面

  1. 登录 Synology DSM→打开「Surveillance Station」(确保已登录管理员账户);
  1. 点击右上角「设置」(齿轮图标)→在左侧菜单中找到「事件通知」→选择「Webhooks」选项卡(若未显示该选项卡,说明版本低于 8.2,需升级);
  1. 点击「新增」按钮(蓝色 “+” 图标),进入 Webhooks 配置窗口。

步骤 2:配置 Webhooks 基本信息(识别与触发条件)

  1. 基本设置(定义 Webhooks 名称与触发事件):
    • 名称:输入自定义名称(如 “监控报警推送钉钉”,便于后续管理);
    • 状态:勾选「启用」(默认未勾选,需手动启用);
    • 触发事件:根据需求勾选需推送的监控事件(必选,否则无数据发送),推荐勾选以下核心事件:
      • 运动检测(摄像头检测到移动物体时触发);
      • 设备离线(摄像头断网或断电时触发);
      • 报警输入触发(外接传感器报警时触发);
      • 录像开始 / 停止(关键录像事件提醒);
    • 关联设备:选择需监控的摄像头 / 设备(可多选,如 “前门摄像头”“车库摄像头”),避免无关设备数据干扰。

步骤 3:配置 Webhooks 请求参数(数据发送规则)

这是最关键的环节,需根据聊天平台的接口要求填写 “请求 URL、方法、头部、数据格式”,以 “钉钉机器人” 为例(其他平台差异见后续章节):
  1. 请求设置:
    • 请求方法:选择「POST」(绝大多数聊天平台接口仅支持 POST 方法);
    • 超时时间:默认 10 秒(无需修改,若网络较慢可改为 20 秒)。
  1. 头部设置(定义请求格式,确保聊天平台能解析):
    • 点击「添加」→在 “名称” 栏输入Content-Type,“值” 栏输入application/json(表示发送 JSON 格式数据,聊天平台通用);
    • 若聊天平台需额外认证(如 Slack 无需,微信企业号需携带 Token),可添加Authorization头部(如Bearer {access_token})。
  1. Payload 设置(定义推送的数据内容,即 “发什么”):
    • 格式选择:勾选「自定义 JSON」(推荐,可灵活定义数据字段);
    • JSON 内容:输入符合聊天平台格式要求的 JSON,可使用 Surveillance Station 提供的 “变量” 自动填充监控数据(变量需用{}包裹,如{camera_name}表示摄像头名称),钉钉示例:
{"msgtype": "text","text": {"content": "【Synology监控提醒】n设备名称:{camera_name}n事件类型:{event_type}n发生时间:{event_time}n事件描述:{event_description}n快照链接:{snapshot_url}"}}
    • 变量说明(常用变量,全量变量可点击「变量」按钮查看):
      • {camera_name}:触发事件的摄像头名称;
      • {event_type}:事件类型(如 “运动检测”“设备离线”);
      • {event_time}:事件发生时间(格式:YYYY-MM-DD HH:MM:SS);
      • {snapshot_url}:事件发生时的快照链接(点击可查看实时画面)。

步骤 4:保存 Webhooks 配置

  1. 填写完成后,点击配置窗口底部「测试」按钮(可选,提前验证是否能发送数据);
  1. 若测试提示 “成功”(或聊天平台收到测试消息),点击「确定」保存配置;
  1. 若测试失败,根据提示修改参数(如 URL 错误则核对 Webhook URL,格式错误则检查 JSON 语法),再重新测试。

三、核心步骤 2:分聊天平台配置接收端(微信 / 钉钉 / Slack)

不同聊天平台的接口规则与认证方式不同,需针对性配置接收端,确保能正常接收 Surveillance Webhooks 发送的数据:

场景 1:推送监控数据到钉钉机器人

步骤 1:创建钉钉自定义机器人

  1. 打开钉钉→进入需接收提醒的群组→点击右上角「...」(群设置)→「智能群助手」;
  1. 点击「添加机器人」→在机器人列表中选择「自定义机器人」→点击「添加」;
  1. 配置机器人信息:
    • 机器人名称:输入 “Synology 监控提醒”;
    • 安全设置(必选,否则无法使用):推荐选择「IP 白名单」→输入 NAS 的局域网 IP(如 192.168.1.100)和公网 IP(若 NAS 可外网访问);

步骤 2:匹配 Surveillance Webhooks Payload 格式

钉钉机器人仅接受特定格式的 JSON 数据(如 “text”“link”“markdown” 类型),需在 Surveillance Webhooks 的 Payload 中填写以下格式(以 text 类型为例):
{"msgtype": "text","text": {"content": "【⚠️ Synology监控异常提醒】n 设备:{camera_name}n 事件:{event_type}n⏰ 时间:{event_time}n 描述:{event_description}n️ 快照:{snapshot_url}"}}
  • 若需更美观的排版,可改用 markdown 类型,示例:
{"msgtype": "markdown","markdown": {"title": "Synology监控提醒","text": "### 【⚠️ 监控异常】n- **设备名称**:{camera_name}n- **事件类型**:{event_type}n- **发生时间**:{event_time}n- **事件描述**:{event_description}n- **查看快照**:[点击查看]({snapshot_url})"}}

场景 2:推送监控数据到微信企业号

步骤 1:创建微信企业号应用并获取参数

  1. 登录微信企业号管理后台(https://work.weixin.qq.com/)→进入「应用管理」→「应用→创建应用」;
  1. 配置应用信息:
    • 应用名称:输入 “Synology 监控提醒”;
    • 应用 Logo:上传自定义图标(可选);
    • 可见范围:选择需接收提醒的部门 / 成员(如 “IT 部门”);
  1. 应用创建完成后,进入应用详情页,记录以下参数:
    • CorpID(企业 ID,在「我的企业→企业信息」中获取);
    • AgentID(应用 ID,在应用详情页 “基础信息” 中获取);
    • Secret(应用密钥,在应用详情页 “API 权限” 中点击「查看」获取,需管理员授权)。

步骤 2:获取微信企业号 access_token(临时认证令牌)

微信企业号消息发送需携带 access_token,需通过 API 获取:
  1. 打开浏览器或 Postman,访问以下接口(替换 CorpID 和 Secret):
https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=你的CorpID&corpsecret=你的应用Secret
  1. 若请求成功,返回包含 access_token 的 JSON(有效期 2 小时,需定期更新):
{"errcode": 0,"errmsg": "ok","access_token": "abc123...","expires_in": 7200}

步骤 3:配置 Surveillance Webhooks 请求参数

  1. 请求 URL:填写微信企业号消息发送接口(替换 access_token):
https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=你的access_token
  1. 头部设置:添加Content-Type: application/json;
  1. Payload 格式(文本消息类型,符合微信企业号接口要求):
{"touser": "@all", // 发送给所有可见成员,也可指定成员ID(如"zhangsan,lisi")"toparty": "",    // 发送给指定部门(可选)"totag": "",      // 发送给指定标签(可选)"msgtype": "text","agentid": 你的AgentID, // 步骤1获取的AgentID"text": {"content": "【Synology监控提醒】n设备:{camera_name}n事件:{event_type}n时间:{event_time}n快照:{snapshot_url}"},"safe": 0 // 0表示非保密消息,1表示保密(需验证)}

场景 3:推送监控数据到 Slack

步骤 1:创建 Slack Incoming Webhook

  1. 登录 Slack 工作区→访问 Slack App Directory(https://slack.com/apps/A0F7XDUAZ-incoming-webhooks)→点击「Add to Slack」;
  1. 选择目标频道(如 “#monitor-alerts”,接收监控提醒的频道)→点击「Allow」;
  1. 页面跳转后,复制生成的 “Incoming Webhook URL”(如https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX),保存备用。

步骤 2:配置 Surveillance Webhooks Payload

Slack 支持简单的 JSON 格式,Payload 示例如下(可包含表情符号和链接):
{"text": ":warning: *Synology Surveillance Alert*n- Camera: {camera_name}n- Event Type: {event_type}n- Time: {event_time}n- Description: {event_description}n- Snapshot: <{snapshot_url}|View Snapshot>"}
  • 说明::warning:是 Slack 的警告表情符号,<链接|显示文本>是 Slack 的链接格式,点击 “View Snapshot” 可跳转至监控快照。

四、测试与验证:确保 Webhooks 正常推送数据

配置完成后,需通过 “手动触发监控事件” 测试 Webhooks 是否能正常发送数据,步骤如下:

步骤 1:手动触发监控事件

  1. 打开 Surveillance Station→进入「摄像头」页面→选择已关联 Webhooks 的摄像头(如 “前门摄像头”);
  1. 手动触发事件(以 “运动检测” 为例):
    • 进入摄像头「设置」→「事件检测」→「运动检测」→勾选「启用运动检测」;
    • 在摄像头监控画面中移动物体(或用手在镜头前晃动),触发运动检测事件。

步骤 2:检查聊天平台接收结果

  1. 打开目标聊天平台(如钉钉群组、微信企业号聊天窗口、Slack 频道);
  1. 观察是否收到监控提醒消息,需确认以下信息:
    • 消息是否及时到达(延迟≤10 秒);
    • 数据是否完整(设备名称、事件类型、时间、快照链接是否正确);
    • 链接是否可用(点击快照链接能否打开监控画面)。

步骤 3:查看 Webhooks 日志(排查失败原因)

若未收到消息,需通过 Surveillance Station 的日志定位问题:
  1. 进入 Surveillance Station「设置」→「事件通知」→「Webhooks」;
  1. 找到已创建的 Webhooks→点击右侧「日志」图标;
  1. 查看日志中的 “状态” 与 “错误信息”,常见错误及解决方法如下:
    • 状态 “400 Bad Request”:Payload 格式错误(检查 JSON 语法,确保逗号、引号正确);
    • 状态 “403 Forbidden”:聊天平台权限不足(如钉钉 IP 白名单未添加 NAS IP,微信企业号 Secret 错误);
    • 状态 “500 Internal Server Error”:聊天平台接口异常(稍后重试,或查看聊天平台官方状态)。

五、常见问题与解决方案(Webhooks 配置高频踩坑点)

Q1:Webhooks 测试提示 “403 Forbidden”,聊天平台收不到消息,怎么办?

  • 原因:聊天平台的安全设置拦截了 NAS 的请求(如钉钉 IP 白名单未添加、微信企业号 Secret 错误);
  • 解决方案:
    1. 钉钉:进入机器人设置→检查 “IP 白名单”,确保添加 NAS 的局域网 IP(通过「DSM→控制面板→网络」查看)和公网 IP(若 NAS 用公网访问);
    1. 微信企业号:核对 CorpID、AgentID、Secret 是否正确,重新获取 access_token(避免令牌过期);
    1. Slack:检查 Incoming Webhook 是否已启用,工作区是否有权限接收消息。

Q2:收到消息但数据字段空白(如 {camera_name} 显示为 “{camera_name}”),怎么解决?

  • 原因:Surveillance Webhooks 的 Payload 中变量格式错误(未用正确的{}包裹,或变量名称拼写错误);
  • 解决方案:
    1. 进入 Webhooks 配置→「Payload 设置」→点击「变量」按钮,查看官方支持的变量名称(如正确变量是{camera_name},而非{cameraName}或{CameraName});
    1. 修正 JSON 中的变量,确保拼写、大小写与官方一致,示例:将{cameraName}改为{camera_name};
    1. 重新测试,确认字段已填充正确数据。

Q3:Webhooks 仅触发一次,后续不再推送数据,怎么办?

  • 原因:微信企业号 access_token 过期(有效期 2 小时),或 Surveillance Webhooks 状态被意外禁用;
  • 解决方案:
    1. 微信企业号:重新调用「获取 access_token」接口生成新令牌,更新 Webhooks 的 “请求 URL”;
    1. 检查 Webhooks 状态:进入 Surveillance Station「Webhooks」,确认目标 Webhooks 的 “状态” 为 “启用”(若为 “禁用”,勾选启用并保存);
    1. 查看 NAS 网络:执行ping qyapi.weixin.qq.com(微信)或ping oapi.dingtalk.com(钉钉),确保网络未中断。

Q4:快照链接点击无法打开,显示 “权限不足”,怎么办?

  • 原因:Surveillance Station 的快照链接需要登录权限,未登录用户无法访问;
  • 解决方案:
    1. 配置 Surveillance Station “公共访问”:进入「设置→权限→公共访问」→勾选「允许公共访问快照」(仅推荐内部网络使用,避免安全风险);
    1. 或生成带有效期的临时链接:在 Payload 中使用{snapshot_url_temp}变量(部分版本支持,链接有效期 1 小时,无需登录);
    1. 测试临时链接:重新触发事件,点击新生成的快照链接,确认可正常打开。

六、总结:Webhooks 配置的 3 个最佳实践

为确保 Synology Surveillance Webhooks 长期稳定运行,推荐以下最佳实践:
  1. 定期更新认证信息:微信企业号 access_token 每 2 小时过期,建议通过 DSM「任务计划」创建自动脚本(如 Python 脚本),定期调用接口更新 Token 并同步到 Webhooks URL;
  1. 限制推送事件类型:仅勾选核心事件(如运动检测、设备离线),避免无关事件(如录像正常停止)频繁推送,导致信息过载;
  1. 启用日志监控:在 Surveillance Station「Webhooks 日志」中启用 “错误通知”,当 Webhooks 发送失败时,自动推送告警到管理员邮箱(「控制面板→通知中心」配置邮箱通知)。
通过本文的步骤,用户可成功在 Synology Surveillance 中创建 Webhooks,并将监控数据实时推送至常用聊天平台,实现 “监控异常即时知晓”,大幅提升监控系统的响应效率。若遇到复杂问题(如自定义 Payload 参数、多平台同时推送),可参考 Synology 官方文档或提交技术支持,提供 Webhooks 日志与聊天平台接口返回信息,获取针对性解决方案。
Synology Surveillance 创建 Webhooks 教程:推送监控数据到聊天平台(微信 / 钉钉 / Slack)

新闻中心

联系我们

技术支持

  • ·

    Synology Drive 我...

  • ·

    Synology Drive 与...

  • ·

    Synology Drive 内...

  • ·

    Synology Drive 同...

  • ·

    Synology删除文件后存储空...

  • ·

    Synology DSM 检查系...

  • ·

    Synology Drive能当...

  • ·

    Synology Docker容...

相关文章

地址:北京市海淀区白家疃尚品园             1号楼225

北京群晖时代科技有限公司

微信咨询

新闻中心