Уведомления
Панель умеет сама предупреждать администратора о важном: пользователь приблизился к лимиту трафика, так и не подключился, подписка истекает. Уведомления уходят в Telegram и в вебхуки — каналы независимы, их можно включать по отдельности.
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 и
в вебхук, и можно добавить отдельные адреса вебхуков.
events:
user.expired:
telegram: true
webhook: true
service.login_attempt_failed:
telegram: true
webhook: false
additionalWebhookUrls:
- https://example.com/xlada/security
Событие, отсутствующее в этом файле, считается выключенным. Если уведомление не приходит, сначала проверьте, описано ли событие в конфиге и включён ли нужный канал.
Задачи уведомлений запускаются только тогда, когда включён хотя бы один канал —
Telegram или вебхуки. Платежи за инфраструктуру CRM проверяются раз в сутки,
в 17:00. Регистрация неудачных входов в панель попадёт в service.login_attempt_failed,
а сам пароль в уведомление не включается.
Что дальше
- Вебхуки — события, подпись payload и повторные попытки.
- Переменные окружения — полный разбор
.env. - Лимит устройств (HWID) — события устройств.
- Частые ошибки — если уведомления не приходят.