通知渠道
渠道在 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. 看看垃圾邮件箱,这一条专门针对邮件。