起因
电子邮件是很常见的警报和通知推送手段,我家里的 Surveillance 也一直将各类事件的通知推送到个人邮箱,但是由于我的 DS923+ 的入侵检测没有人脸识别功能,每次我回家都会被认为是陌生人入侵,从而给我发送大量的邮件,直到手机上的 DS cam 定位生效,解除报警,所以我决定把事件推送从邮件换成 Telegram,减少邮件干扰。
背景
群晖的 Surveillance 支持将事件通知推送到电子邮件、短信、DS cam、Webhook。推送到 Telegram 需要借助 Webhook。
操作流程
Step 1. 申请 Telegram Bot
在 Telegram 中添加 @BotFather
为联系人,并输入 /new_bot
开始对话(也可以通过命令菜单操作),按照它的提示设置机器人的名称并获取 API 令牌。
Step 2. 查看自己的 ChatID
添加 @GetIDsBot 为联系人,并输入 /start
获得自己的 ChatID
Step 3. 在 Surveillance 中设置 Webhook
1.打开 Surveillance 中的“事件通知”设置,切换到 Webhook 选项卡后点击“新增”
2.在弹出的窗口中,名称输入 Telegram
,服务供应商选择“自定义”,然后点击下一步
3.在接下来的窗口中,按如下要求填写各项内容:
- Webhook URL:
https://api.telegram.org/bot[API令牌]/sendPhoto
- 方法:
POST
- 内容类型:
application/json
- NAS IP地址:换成可以访问自己的 NAS 的公网地址(DDNS或云服务器中转)
- 正文:可以按照自己的需求编辑正文内容
{
"chat_id":"[Chat ID]",
"caption": "%SUBJECT%\n\n%CONTENT%",
"photo":"%ATTACHMENT%"
}
把[API令牌]
换成 Step 1 中获得的API令牌
把[Chat ID]
换成 Step 2 中获得的 Chat ID
填写完成后,点击右下角的“保存”按钮。
如果你按照我的设置,在 Telegram 上收到的信息是这样的:
Step 4. 修改推送规则
在事件通知中,切换到“规则”选项卡,勾选需要通过 Telegram 推送的事件,到这里就完成了全部的设置。
尾记
我现在已经把各项服务的事件通知、流量统计等集成到 Telegram 中,相对于邮件,Telegram 有更好的即时性,而且不需要经常去批量删除通知邮件。