告警
服务端每 5 秒检查一遍所有机器。出现问题时打开告警,问题消失后自动关闭。两者都会显示在「告警」页;配置了 SMTP 的话也会发邮件,同一次检查发现的变化合并成一封。
检查项
| 告警 | 触发条件 | 配置项 |
|---|---|---|
| 离线 | 超过阈值没有上报 | offline(40s) |
| CPU | 在整个持续时间内都高于阈值 | cpu_percent(90)、sustain(5m) |
| 内存 | 在整个持续时间内都高于阈值 | mem_percent(90)、sustain(5m) |
| 硬盘 | 某个挂载点的使用率超过阈值 | disk_percent(90) |
| inode | 某个挂载点的 inode 使用率超过阈值 | inode_percent(90) |
| 服务 | 有 systemd 服务处于失败状态 | — |
| 容器 | Docker 容器不健康、反复重启,或非正常退出 | — |
| WireGuard | 连接过的对端超过阈值没有完成握手 | wg_handshake(5m,0 关闭) |
| IP 变化 | 机器换了连接地址(一次性通知) | — |
阈值在服务端配置的 alerts: 下设置,见配置参考。
批准后还没上报过的机器不算离线;服务端刚启动时,在客户端来得及重连之前,也不会报离线。
邮件
smtp:
host: smtp.example.com
port: 465 # 465 = TLS,587 = STARTTLS
username: alerts@example.com
password: change-me
from: alerts@example.com
to: [you@example.com]
没有设置 smtp.host 时,告警只显示在后台,并写进服务端日志。
语言
告警内容和邮件默认是英文。在服务端配置里设 language: zh 改成中文。后台页面的语言则由各自的浏览器决定。
保留时间
已恢复的告警保留 90 天,监控数据保留 7 天。