当群晖遇到断电、DDNS注册失败等情况,群晖都会发送邮件通知我们,有了通知服务才能方便用户掌握群晖的运行状况。
对于很多用户来说,群晖官方向 Synology 帐户的邮箱地址发送状态信息已经够用,但是群晖官方发送的邮件延时比较高,也不能自定义发送的邮箱地址。
针对上面的问题,有非常多的解决方案,包括群晖官方的APP、webhook、自定义邮箱、独立APP、企业微信、飞书、钉钉等等。
接下来老宁会详细介绍这些方案的优劣,你可以选择最喜欢的方式来接收群晖的通知,帮你快速定位群晖遇到的问题。
电子邮件
通过电子邮件发送群晖通知是最简单的方式。除了使用Synology 帐户的邮箱,我们还可以自定义发件邮箱
Synology 帐户
只要登录了 Synology 账户,就可以在控制面板->通知设置->电子邮箱下启用。
自定义邮箱
自定义邮箱同样需要在通知设置->电子邮箱下进行设置。
发件人根据邮箱提供商的不同,需要配置不同的SMTP服务器(建议单独申请一个邮箱来专门发送通知)。
如果是QQ邮箱,需要用授权码代替密码才能进行登录。
收件人可以配置多个。也可以为邮件添加主题前缀,方便邮件归类。
例如,包含”NAS_218“的邮件,自动归类并打上”群晖“标签。
群晖管家
如果你不喜欢邮件通知的方式,那么可以使用群晖官方的APP群晖管家来发送通知。可以在通知设置->推送服务中点击配对来获取群晖管家的移动APP下载地址。
配对成功后,可以看到所有已配对的设备信息。
浏览器
在前面推送服务中,除了配对手机APP外,还可以与浏览器进行配对,不过需要安装浏览器插件。
想要在谷歌商店安装插件比较麻烦,并且只有在浏览器打开的时候才能收到通知,所以这种方式并不友好。
Webhook
后面的几种方式都可以归类为通过 Webhook 发送通知。
首先来了解下 Webhook 的概念。
Webhook 是一种实现不同应用程序之间的通信方式,利用的是 HTTP 协议的 POST 请求或 GET 请求。Webhook 允许一个网络应用或服务,当满足某些特定条件或发生某些事件时,通过发送一个 HTTP 请求(通常是 POST 请求),去通知另一个网络应用或服务。
有了 Webhook 的概念,就非常容易理解下面的内容了。
短信
在通知设置->Webhooks选项下可以新增一个 Webhook ,提供商选择短信。
在下一步中需要选择短信服务提供商、账户、密码等信息。
它的原理就是通过调用短信服务提供商的API,向我们的手机发送短信,不过发短信都是要收费的,所以这种方式也不推荐。
企业微信
企业微信的通知也分为两种。第一种是自建应用,第二种是利用群聊机器人。它们都是通过 Webhook 调用企业微信的机器人服务,从而实现通知的发送。
自建应用
先来说说自建应用。
由于企业微信的限制,现在创建新的应用需要一个固定的公网IP地址(以前不需要)。
在企业微信中可以注册一个新的企业后,需要在应用管理->应用中创建一个新的应用。
需要获取当前应用的AgentId、Secret。
还有我的企业->企业信息菜单下的企业ID。
同时需要在创建的应用中配置好企业可信IP。
这样才能通过自建应用的方式发送通知。这种方式不单单可以用来推送消息,还可以对企业微信进行自定义开发,实现更多的功能。
群聊机器人
群聊机器人的方式则更为简单,在企业微信网页版中创建好企业。创建完毕后用企业微信手机端创建群聊(可以用其他微信加入) 并进入群聊设置,添加一个群机器人。
点击右上角添加机器人后,输入机器人名称,就可以复制机器人的 Webhook 地址。
回到群晖增加一个自定义 Webhook 通知。
把URL地址粘贴到 Webhook URL 中。
编辑 HTTP 请求为 POST 方式。
最后用下面的内容替换 HTTP 主体即可。
{ "msgtype": "text", "text": { "content": "@@TEXT@@" } }
现在发送测试消息,就能在企业微信中看到通知了。
如果想要在微信直接看到企业微信的消息,可以在打开企业微信网页后台,在我的企业->微信插件菜单中,扫描并关注企业。
这样就可以在微信客户端直接查看企业微信的通知内容了。
飞书
和企业微信类似,在创建好一个企业后,我们可以利用飞书机器人助手创建一个新的指令,来发送消息。
如果不想新建一个机器人应用,也可以直接通过官方机器人发送消息(消息内容为JSON字符串)。
与企业微信类似,在群晖中创建自定义 Webhook 后,复制机器人的 Webhook URL地址粘贴到里面。
HTTP方法设置为POST,HTTP主体不用更改。这样就达到了使用飞书来接收群晖通知的目的。
至于其他的第三方平台的配置,方法都十分相似,只要获取了对应的 Webhook 地址,都能通过其客户端接收到对应的消息。
独立APP
前面介绍的几种方法都是通过第三方服务的 Webhook 来发送消息的,相当于我们的消息经过了他们的服务器,那有什么方法不经过第三方服务器呢?
那就是自托管服务。
iOS
如果你是iOS平台,那么强烈建议使用 Bark 来进行消息的通知推送。
得益于 iOS 良好的推送通知机制,在 iPhone 上通知的可达率和及时性都非常高。
除了官方默认提供的服务器外,Bark 还支持自建服务器,具体的部署方法可以直接查阅官方项目:https://github.com/Finb/bark-server
安卓
如果你是安卓可以使用Gotify或者ntfy。它们都提供安卓平台的APK应用,ntfy还提供了iOS应用。
具体的安装步骤就不在这里演示了,有需要的可以查阅下面的链接地址。
Gotify
- 官方项目:https://github.com/gotify/server
- docker安装教程:https://gotify.net/docs/install
- 安卓端:https://github.com/gotify/android
ntfy
- 官方项目:https://github.com/binwiederhier/ntfy
- docker安装教程:https://docs.ntfy.sh/install/#docker
- 安卓端:https://github.com/binwiederhier/ntfy-android
总结
最后我们来总结文中提到的通知方式:
- 如果对安全性要求不高,追求稳定那么可以选择第三方的通知服务;
- 如果对安全性要求比较高,可以选择邮件或者自建服务服务的方式;
- 在安卓上,各个国内手机厂商都是有自己的推送机制,开源项目一般采用原生谷歌推送,如果要追求及时,那么建议选择第三方服务。
其实,我们只需要完成通知服务配置的一次申请,以后就可以在其他通知服务中直接使用,比如青龙脚本、Firefly III等等。
因为他们支持配置自定义通知服务,所以只要前面把相关的配置保存下来,后期按照项目的需求直接填入即可。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
,