DSM 7.2 如何配置Microsoft Teams Webhook?接收系统通知完整指南
DSM 7.2 配置Microsoft Teams Webhook全流程:实时接收系统通知(2024年Workflows适配版)
在企业IT管理中,很多Synology NAS管理员希望将DSM系统通知(如硬盘警告、存储池故障、备份失败)实时同步到Microsoft Teams,方便团队快速响应问题。但随着2024年8月15日Microsoft停用旧版Office 365连接器,所有新Webhook必须通过Teams的Workflows应用创建,且DSM仅7.2及以上版本支持该功能。本文基于Synology官方技术文档(https://kb.synology.cn/zh-cn/DSM/tutorial/configure_MSTeams_webhooks_for_DSM_notifications),从“配置前准备→DSM端初始设置→Teams端Workflows搭建→测试与故障排除”四个维度,拆解适配新规的Webhook配置全流程,帮你实现DSM通知到Teams的无缝同步。
一、配置前必看:3大核心前提+2个关键时间节点
在启动配置前,需先确认环境满足要求,同时明确Microsoft的功能迭代时间线,避免使用已淘汰的旧方法,导致配置失败。
1.1 3大核心前提(缺一不可)
Webhook配置对DSM版本、Teams权限、网络环境有明确要求,需逐一验证:
| 前提类别 | 具体要求 | 验证方法 |
|----------|----------|----------|
| DSM版本 | 必须为DSM 7.2及以上版本(低版本无Webhooks功能入口) | 登录DSM→控制面板→系统→系统信息→查看“DSM版本”,若低于7.2,需通过“更新和还原”升级 |
| Teams权限 | 登录Teams的账户需具备“创建Workflow”权限(通常为团队管理员或所有者,普通成员无此权限) | 打开Teams→进入目标团队→点击右上角“…”→若能看到“管理团队”“添加应用”,说明权限足够 |
| 网络连通性 | NAS需能访问Microsoft Azure服务(Workflows依赖Azure逻辑应用),且无防火墙拦截443端口 | 在DSM中打开“控制面板→网络→网络界面”→点击“测试连接”,输入“https://prod2-24.southeastasia.logic.azure.com”(Azure逻辑应用域名示例),能连通则网络正常 |
1.2 2个关键时间节点(避免踩坑)
Microsoft对Teams Webhook功能迭代有明确时间限制,需按新规操作:
- 2024年8月15日起:所有新Webhook必须通过Teams的Workflows应用创建,旧版Office 365连接器不再支持新创建(仅存量连接器可使用至2024年12月31日);
- 2024年12月31日后:旧版连接器需额外操作才能继续使用,建议直接按本文方法搭建新Webhook,避免后续升级麻烦。
二、步骤1:DSM端初始配置(开启Webhooks并选择Provider)
首先在DSM中开启Webhooks功能,选择Microsoft Teams作为通知 Provider,为后续对接Teams流程做准备,步骤如下:
1. 进入DSM通知设置:
登录DSM系统,在桌面找到“控制面板”图标(灰色齿轮样式),点击进入;在左侧导航栏中找到“通知”选项(位于“Regional Options”与“Hardware & Power”之间),点击进入;
2. 进入Webhooks配置页:
在“通知”界面顶部切换到“Webhooks”标签页,此时会显示“无已设置的Webhook”(首次配置),点击右侧“Add”按钮(蓝色加号,位于“Reset”左侧);
3. 选择Provider与通知规则:
- 在弹出的“Add Webhook”窗口中,点击“Provider”下拉框,选择“Microsoft Teams”(若未找到该选项,需确认DSM版本是否为7.2及以上);
- 点击“Rule”下拉框,选择通知规则(即哪些系统事件会触发通知):
- 推荐选择“Critical”(仅发送严重事件,如硬盘失败、存储池损毁),避免过多冗余通知;
- 若需自定义规则,点击“Create”可新建(如仅接收备份相关通知),配置完成后点击“Next”;
4. 设置Provider名称与通知主题:
- 在“Provider name”字段中输入标识名称(如“DSM_Notifications_Teams”),便于区分多个Webhook(若后续配置其他通知渠道);
- 在“Subject”字段中修改通知主题前缀,默认内容为“A new system event occurred on your %HOSTNAME% on %DATE% at %TIME%.”,其中`%HOSTNAME%`会自动替换为NAS主机名,`%DATE%`/`%TIME%`为事件发生时间,无需手动修改,保持默认即可;
- 此时“Webhook URL”字段为空,需先保留窗口,切换到Microsoft Teams端获取URL,再返回填写。
三、步骤2:Microsoft Teams端搭建Workflows(获取Webhook URL)
这是核心步骤,需通过Teams的Workflows应用创建“接收Webhook请求并发送到频道”的流程,最终获取DSM所需的Webhook URL,操作需严格按顺序执行:
3.1 安装Workflows应用
1. 打开Teams应用:
登录Microsoft Teams(电脑端或网页端均可,推荐电脑端操作),在左侧导航栏找到“Apps”图标(类似购物袋样式,位于“Files”下方),点击进入;
2. 搜索并添加Workflows:
在“Apps”页面顶部搜索栏输入“Workflows”,在搜索结果中找到由“Microsoft Corporation”开发的“Workflows”应用(图标为蓝色流程箭头,评分3.7+);
点击应用卡片,在弹出窗口中点击“Add”→再次点击“Add”(确认添加到Teams),等待10秒左右,应用会自动安装完成。
3.2 创建“Webhook请求转频道消息”流程
1. 启动流程创建:
安装完成后,自动进入Workflows首页,点击右上角“Create”按钮(蓝色圆形,带“+”号);在弹出的菜单中选择“Post to a channel when a webhook request is received”(官方模板,位于“Instant”分类下);
2. 配置流程基本信息:
- 在“Create a flow”窗口中,“Flow name”字段输入流程名称(如“DSM_Webhook_to_Teams”,便于后续管理);
- 点击“Sign in”按钮,登录用于授权的Microsoft账户(需与Teams登录账户一致,且具备团队权限),登录成功后“Sign in”会变为绿色对勾;
- 点击“Next”进入下一步;
3. 选择目标团队与频道:
- 在“Set up your flow”界面中,点击“Microsoft Teams Team”下拉框,选择要接收DSM通知的Teams团队(如“IT_Admin_Team”);
- 点击“Microsoft Teams Channel”下拉框,选择团队中的具体频道(如“NAS_Alerts”,建议单独创建专用频道,避免通知混杂);
- 点击“Create flow”,等待流程创建完成(约5秒,提示“Workflow added successfully!”即成功)。
3.3 编辑流程:添加JSON解析与消息发送步骤
默认流程需修改才能正确接收DSM通知,需删除多余步骤、添加JSON解析,确保通知内容正常显示:
1. 进入流程编辑页:
流程创建成功后,点击窗口中的“Manage your workflow”(蓝色文字,位于“Want to make changes?”下方);在流程管理页中,点击右上角“Edit”按钮(铅笔图标,位于“Share”左侧),进入编辑界面;
2. 删除默认的“Send each adaptive card”步骤:
- 在编辑界面中,找到“Send each adaptive card”模块(位于“When a Teams webhook request is received”下方,带卡片图标);
- 点击该模块右上角的“…”(更多选项),在下拉菜单中选择“Delete”;在弹出的确认对话框中点击“OK”,删除该冗余步骤(DSM通知无需自适应卡片,需改为文本消息);
3. 添加“Parse JSON”步骤(解析DSM通知内容):
- 点击“+ New step”按钮(位于已删除步骤的位置,带“+”号);在弹出的“Choose an operation”搜索栏中输入“Parse JSON”,在结果中选择“Parse JSON”(属于“Data Operation”分类,蓝色图标);
- 点击“Content”字段右侧的“Add dynamic content”(蓝色文字,带“+”号),在弹出的动态内容面板中找到“Body”(来自“当收到Teams Webhook请求时”模块),点击选择;
- 在“Schema”字段中粘贴以下JSON代码(用于定义DSM通知的内容格式,不可修改):
```json
{ "type": "object", "properties": { "text": { "type": "string" } } }
```
- 粘贴完成后点击“+ New step”,进入下一步;
4. 添加“Post message in a chat or channel”步骤(发送通知到频道):
- 在新步骤的搜索栏中输入“post message in a chat or channel”,选择同名操作(属于“Microsoft Teams”分类,绿色图标);
- 配置消息发送参数:
- “Post as”:选择“Flow bot”(以机器人身份发送,避免显示个人账户);
- “Post in”:选择“Channel”(发送到团队频道,而非个人聊天);
- “Team”:再次选择目标团队(需与步骤3.2中一致,如“IT_Admin_Team”);
- “Channel”:再次选择目标频道(如“NAS_Alerts”);
- “Message”:点击“Add dynamic content”,选择“text”(来自“Parse JSON”模块,即DSM通知的具体内容);
- 配置完成后,点击界面右上角“Save”按钮(蓝色磁盘图标),保存流程修改。
3.4 复制Webhook的HTTP POST URL
1. 在流程编辑界面中,找到最顶部的“When a Teams webhook request is received”模块(带“HTTP POST URL”字样);
2. 点击该模块右下角的“剪贴板图标”(位于URL右侧,灰色,悬停显示“Copy to clipboard”),URL会自动复制到剪贴板(格式类似“https://prod2-24.southeastasia.logic.azure.com:443/workflows/xxx”);
3. 保持Teams页面不关闭,切换回DSM的“Add Webhook”窗口,准备粘贴URL。
四、步骤3:完成DSM配置与测试(验证通知是否生效)
将Teams流程的URL粘贴到DSM中,完成Webhook配置,并发送测试消息验证是否正常工作:
1. 粘贴Webhook URL并应用:
在DSM的“Add Webhook”窗口中,点击“Webhook URL”字段,按`Ctrl+V`(Windows)或`Command+V`(macOS)粘贴复制的URL;确认URL无多余空格后,点击窗口右下角“Apply”按钮(蓝色,位于“Back”右侧),此时DSM会提示“Webhook已添加成功”;
2. 发送测试消息验证:
- 返回“Webhooks”标签页,此时会显示刚创建的Webhook(Provider Name为“DSM_Notifications_Teams”,Provider为“Microsoft Teams”);
- 选中该Webhook,点击右侧“Send Test Message”按钮(位于“Delete”左侧,灰色文字);
- 切换到Microsoft Teams的目标频道(如“NAS_Alerts”),若在1分钟内收到标题为“A new system event occurred on your [NAS主机名] on [当前日期] at [当前时间].”的测试消息,说明配置成功;
3. 后续管理:
- 若需修改Webhook(如更换Teams频道),选中Webhook点击“Edit”即可重新配置;
- 若需删除,点击“Delete”(需谨慎,删除后通知会中断)。
五、常见问题解答(FAQ):解决配置中的高频难题
Q1:在Teams中找不到“Post to a channel when a webhook request is received”模板,怎么办?
A1:核心原因是Workflows应用版本过低或模板未加载,解决方法:
1. 进入Teams“Apps”→找到“Workflows”→点击“About”→确认版本是否为2.0及以上,若低于此版本,点击“Update”升级;
2. 若升级后仍无模板,在Workflows首页搜索框输入模板名称(完整名称),手动查找;
3. 若仍找不到,选择“Create from blank”(空白流程),手动添加“当收到Webhook请求时”→“Parse JSON”→“发送频道消息”三个步骤,逻辑与模板一致。
Q2:DSM发送测试消息后,Teams频道未收到,如何排查?
A2:按以下顺序排查,90%的问题可解决:
1. 检查Webhook URL是否正确:在DSM中编辑Webhook,对比URL与Teams流程中的“HTTP POST URL”,确保无字符缺失(尤其是末尾的“workflows/xxx”部分);
2. 检查Teams流程状态:进入Workflows→找到目标流程→确认“Status”为“On”(若为“Off”,点击“Turn on”);
3. 检查网络连通性:在DSM中ping Teams流程URL的域名(如“prod2-24.southeastasia.logic.azure.com”),若无法ping通,需在NAS防火墙中允许443端口出站(进入DSM“控制面板→安全→防火墙”,添加规则允许“HTTPS(443)”出站)。
Q3:收到的通知内容显示“[object Object]”,而非具体事件信息,怎么处理?
A3:这是“Parse JSON”步骤配置错误,需重新检查:
1. 进入Teams流程编辑页,删除原“Parse JSON”步骤;
2. 重新添加“Parse JSON”,确保“Content”选择“Body”(来自Webhook模块),“Schema”字段粘贴官方指定代码(本文步骤3.3中的JSON代码),不可修改字符;
3. 重新保存流程,DSM发送测试消息,此时内容会正常显示。
总结
DSM 7.2配置Microsoft Teams Webhook的核心是“DSM端开启Webhooks+Teams端用Workflows搭建流程”,关键在于适配2024年Microsoft的新规——放弃旧连接器,改用Workflows创建。整个过程需注意三个细节:DSM版本必须为7.2及以上、Teams账户需有Workflow创建权限、JSON Schema代码需准确无误。
通过本文步骤,可实现DSM严重系统事件实时同步到Teams频道,帮助IT团队快速响应故障(如硬盘预警、存储池问题),避免因错过通知导致业务中断。
要不要我帮你整理一份DSM 7.2 Microsoft Teams Webhook配置步骤清单?清单会包含“前提验证项”“DSM端操作要点”“Teams流程搭建截图指引”“测试失败排查步骤”,你可直接打印对照操作,避免遗漏关键环节。
Copyright © 2011-2020 北京群晖时代科技有限公司 版权所有 京ICP备2020037175号-2