通知
面板可以主动提醒管理员重要事项:用户接近 流量限制、始终没有连接、订阅即将到期。通知会发送到 Telegram 和 Webhook——这两个通道相互独立,可以分别启用。
Telegram
Telegram 通知默认关闭。启用它们并设置机器人:
| 变量 | 默认值 | 说明 |
|---|---|---|
IS_TELEGRAM_NOTIFICATIONS_ENABLED | false | 启用 Telegram 通知 |
TELEGRAM_BOT_TOKEN | — | 机器人令牌,启用时必填 |
TELEGRAM_BOT_API_ROOT | https://api.telegram.org | Bot API 地址;本地服务器请修改 |
TELEGRAM_BOT_PROXY | — | 代理,例如 socks5://proxy:1080 |
具体发到哪里由单独的变量决定:
| 变量 | 哪些事件 |
|---|---|
TELEGRAM_NOTIFY_USERS | 用户和订阅 |
TELEGRAM_NOTIFY_NODES | 节点状态 |
TELEGRAM_NOTIFY_CRM | 基础设施费用 |
TELEGRAM_NOTIFY_SERVICE | 面板登录、API 令牌、启动 |
TELEGRAM_NOTIFY_TBLOCKER | torrent-blocker 报告 |
IS_TELEGRAM_NOTIFICATIONS_ENABLED=true
TELEGRAM_BOT_TOKEN=123456789:AA...change_me
TELEGRAM_NOTIFY_USERS=-1001234567890:80
TELEGRAM_NOTIFY_NODES=-1001234567890:81
chat_id:thread_id 格式
每个变量的值是 chat_id,或者是用于超级群组话题的
chat_id:thread_id。每个分区只能指定一个聊天。
| 示例 | 含义 |
|---|---|
-100123 | 聊天或频道,不使用话题 |
-100123:80 | 聊天 -100123,话题(thread)80 |
群组或频道的 chat_id 始终为负数;私聊为正数。
thread_id 是机器人应当写入的话题编号。
请把机器人加入所需的聊天并授予它发送消息的权限。对于话题, 机器人必须在该群组中并能访问话题——否则 Telegram 会返回 错误,通知就会丢失。配置完成后请立即检查投递。
流量阈值
当用户消耗了指定比例的限额时,事件就会触发。
| 变量 | 默认值 | 说明 |
|---|---|---|
BANDWIDTH_USAGE_NOTIFICATIONS_ENABLED | false | 启用阈值通知 |
BANDWIDTH_USAGE_NOTIFICATIONS_THRESHOLD | [60, 80] | 以百分比表示的阈值,按升序 |
阈值最多五个,每个都是 25 到 95 之间的整数。事件 对每个阈值只触发一次:面板会记住已通过的最大阈值,不会 重复通知。只统计设置了流量限制的活跃用户。检查每 5 分钟 执行一次。
如果通知过多,会收到单独的事件
errors.bandwidth_usage_threshold_reached_max_notifications——这是信号,表示
一次处理中涉及的用户数超过了允许值。
未连接的用户
当访问权限已发放但用户始终没有配置客户端时,这很有用。
| 变量 | 默认值 | 说明 |
|---|---|---|
NOT_CONNECTED_USERS_NOTIFICATIONS_ENABLED | false | 启用通知 |
NOT_CONNECTED_USERS_NOTIFICATIONS_AFTER_HOURS | [6, 24, 48] | 用户创建后的小时数 |
最多三个值,每个都是 1 到 168 之间的整数,按升序。计时
从用户创建时开始,而不是从发放订阅时开始。检查每 10 分钟
执行一次。事件中会带上 meta.notConnectedAfterHours
以及实际阈值。
出于性能考虑,这类事件中的 activeInternalSquads 和
lastConnectedNode 字段为空。处理时请勿使用它们。
订阅到期
提醒会在 expireAt 前后到达,取决于值的符号。
| 变量 | 默认值 | 说明 |
|---|---|---|
EXPIRATION_NOTIFICATIONS_ENABLED | false | 启用提醒 |
EXPIRATION_NOTIFICATIONS | [-72, -48, -24, 24] | 相对于 expireAt 的小时数 |
| 符号 | 含义 | 示例 |
|---|---|---|
| 负 | 订阅将在这么多小时后到期 | -24 —— 到期前一天 |
| 正 | 订阅已在这么多小时前到期 | 24 —— 到期后一天 |
不允许零。值为 −168 到 168 之间的整数,按升序,不重复;
负值和正值各不超过五个。事件包含
meta.expiration,数值相同。检查每分钟执行一次。
通道的精细设置
除了全局开关之外,容器内还有
/var/lib/remnawave/configs/notifications/notifications-config.yml 文件。其中为每个事件
指定是否发送到 Telegram 和 Webhook,还可以添加单独的 Webhook 地址。
events:
user.expired:
telegram: true
webhook: true
service.login_attempt_failed:
telegram: true
webhook: false
additionalWebhookUrls:
- https://example.com/xlada/security
该文件中不存在的事件视为已关闭。如果通知 没有到达,请先检查事件是否在配置中描述,以及所需的 通道是否已启用。
通知任务只在至少启用一个通道时才会运行——
Telegram 或 Webhook。CRM 基础设施费用每天检查一次,
在 17:00。面板登录失败会记录为 service.login_attempt_failed,
而密码本身不会包含在通知中。