Skip to content

通知渠道 ​

渠道在 Dozzle Cloud 里配置,决定告警发往哪里。触发告警的条件在你自托管的实例上配置,见警报。

想开几个就开几个。每个启用的渠道都会收到全部告警,各渠道可以独立开关。

可用渠道 ​

渠道告警每日汇总双向 agent
邮件✓✓
Telegram✓✓✓
Discord 机器人(私信)✓✓✓
Discord Webhook✓✓
Slack✓
ntfy✓
Webhook✓
浏览器推送✓

所有渠道在所有套餐中都可用,包括免费版。

邮件 ​

用你注册时的地址自动配置好,什么都不用设。想停就在 Channels 页面关掉邮件渠道。如果告警莫名其妙不来了,先看垃圾邮件箱:第一条告警偶尔会落在那里,标记为“非垃圾邮件”之后就一劳永逸了。

Telegram ​

在 Channels 页面选择 Telegram,点链接打开机器人,按 Start。机器人收到你的消息后渠道就激活了。

Telegram 是双向的。你可以在同一个会话里回复并询问容器情况 ——“今天有报错吗?”“看看 CPU 占用”“我有哪些告警?”—— 拿到的是实时状态的答案。

Discord ​

Discord 有两种不同的渠道类型,两个同时开着就是每条告警收到两遍的常见原因。

Discord 机器人(私信) —— 机器人把告警作为私信直接发给你。双向,可以向它提问。在 Channels 页面授权机器人即可完成配置。

Discord Webhook(服务器频道) —— 告警发到你服务器的某个频道里,比如 #alerts。单向。在 Discord 服务器设置里创建一个 webhook,把 URL 粘贴到 Cloud 即可。

如果私信和服务器频道都收到告警,说明两个你都配了。在 Channels 页面把不想要的那个关掉,关掉一个不影响另一个。常见做法是保留共享的服务器频道,关掉私信。

Slack ​

在你的 Slack 工作区创建一个 incoming webhook,把 URL 粘贴到 Channels 页面的 Slack 渠道里。

ntfy ​

填入你的 topic URL。ntfy.sh 和自托管的 ntfy 服务器都可以。很适合在不额外注册账号的情况下接收手机通知。

Webhook ​

填入任何接受 POST 的 URL。告警以 JSON 形式投递,所以你可以把它接进现有的任何东西 —— Home Assistant、n8n、一个脚本,或者另一套告警工具。

NOTE

这是 Cloud 的渠道,和你自托管 Dozzle 可以直接调用的 webhook 是两回事。后者见警报,包括 Go 模板变量。

浏览器推送 ​

在 Channels 页面启用,浏览器询问时允许通知。之后告警会以桌面通知的形式出现。

如果启用后什么都收不到,多半是浏览器拒绝了权限请求。浏览器一旦被拒绝就不会再问了 —— 需要在浏览器设置里清除该站点的通知权限,然后重新启用。浏览器推送在隐私/无痕窗口中无法工作。

让它安静下来 ​

只有真正要紧的时候才应该打扰你。如果 Cloud 很吵,那是调校问题,下面就是解决它的工具。

情况这样做
一个你早就知道的重复错误静音这个模式
告警有用,但来得太频繁点个踩
计划内维护、备份、升级开始之前先静音这个模式
告警没错,只是发错了地方关掉那个渠道
什么都不想收,哪里都不想收关掉所有渠道

删掉告警规则几乎从来都不是正确答案:为了压掉一条吵人的日志,却关掉了整整一类监控。

静音一条重复的告警 ​

静音是按模式来的:它让这一类告警安静,而不只是眼前这一条。之后同类的保持安静,真正不同的仍然会送达。

  • 在告警上 —— 在 Cloud 里打开它,选择静音。
  • 在聊天里 —— 说“静音这个”或“别再跟我说 X 了”。agent 会先说出它准备静音的确切模式,等你确认,因为静音是持久的,可能会在以后掩盖一次真实的故障。

静音会一直生效到你取消为止。问“我静音了哪些?”可以列出所有静音规则,取消也是同样的方式。被静音的告警仍然会被记录 —— 静音改变的是什么会打扰你,而不是监控什么。

少一点,而不是完全没有 ​

如果一条告警确实有用只是来得太勤,就给它点个踩,而不是静音。这是“继续盯着,但少打扰我”的信号。给判断准确的告警点赞同样有帮助。

重复本来就已经被聚合了 ​

在静音之前,先确认问题是不是仅仅是重复。同一故障的重复出现会被折叠成一条带计数的告警。如果你收到很多告警,通常是很多不同的问题,或者你已经超出套餐的事件额度、告警退化成了原始且未聚合的形式。见套餐与限制。

在源头过滤 ​

对于正常运行时就很吵的容器,更好的办法在上游:dev.dozzle.cloud.min_level 标签能让低严重度的日志根本不离开你的主机。见你的数据。

为什么我没收到告警? ​

1. 有对应的规则吗? 日志里出现错误本身并不会产生告警,得有东西在盯着它。默认规则只覆盖以错误码退出的容器 —— 一个一直在跑、但不断打错误日志的容器需要一条日志规则。

2. 有启用的渠道吗? 没有启用渠道的规则无处投递。

3. 实例连着吗? 如果问题发生时它是离线的,什么都不会被转发。见连接你的实例。

4. 它是不是被并进了你已经收到的那条告警? 四十次故障产生一条写着四十的告警。这是设计如此,不是漏报。

5. 你把它静音了吗? 检查你的静音规则。

6. 这个容器被排除在转发之外了吗? 见你的数据。

7. 超出套餐限制了吗? 超过额度后投递方式会变,告警开始被抽样。

8. 看看垃圾邮件箱,这一条专门针对邮件。

基于 MIT 许可证发布。开源项目,由 Docker OSS 赞助。