Skip to content

通知

支持 Telegram、企业微信、Webhook、邮件。可以按分组或单机设阈值。

事件

事件触发条件
机器离线超过 上报间隔 × 3 + 10 秒 没收到数据
机器恢复离线后重新连上
CPU 过高持续超过阈值
内存过高同上
硬盘过高同上
流量超额本周期用量超过配额的设定比例
延迟过高探测点 RTT 超过阈值
丢包过高探测点丢包率超过阈值
即将到期剩余天数低于设定值

阈值可以设在三个层级:全局默认 → 分组 → 单机,越具体越优先

渠道

Telegram

需要 Bot Token 和 Chat ID。给 @BotFather/newbot 拿 token, 把 bot 拉进群或私聊后从 getUpdates 里取 chat id。

企业微信

用群机器人的 Webhook 地址即可,不需要企业应用。

Webhook

POST 一个 JSON 过去,字段包括机器名、事件类型、当前值、阈值、时间。 公网地址必须是 HTTPS(内网地址不限)。

邮件

标准 SMTP。密码在数据库里加密存储,接口返回时永远打码。

模板

标题和正文都可以自定义,用 取值:

{{ server.name }} · {{ event.label }}
机器:{{ server.name }}{% if server.country %} ({{ server.country }}){% endif %}
事件:{{ event.label }}
当前:{{ event.value }}{% if event.threshold %}(阈值 {{ event.threshold }}){% endif %}
时间:{{ time }}{% if panel_url %}
面板:{{ panel_url }}{% endif %}

没有值的字段整块省略,不会渲染出「(阈值 )」这种空壳。

模板写错了不会导致通知发不出去 —— 渲染失败时退回默认模板,并在日志里说明。 通知的意义是送达,不是排版。

静默

  • 每个事件有冷却时间,避免抖动时刷屏
  • 可以设静默时段(比如夜间不发)
  • 机器手动隐藏后不再产生通知

基于 MIT 许可发布