Перейти к основному содержимому

Уведомления

Панель умеет сама предупреждать администратора о важном: пользователь приблизился к лимиту трафика, так и не подключился, подписка истекает. Уведомления уходят в Telegram и в вебхуки — каналы независимы, их можно включать по отдельности.

Telegram​

Уведомления в Telegram выключены по умолчанию. Включите их и задайте бота:

ПеременнаяПо умолчаниюОписание
IS_TELEGRAM_NOTIFICATIONS_ENABLEDfalseвключает уведомления в Telegram
TELEGRAM_BOT_TOKEN—токен бота, обязателен при включении
TELEGRAM_BOT_API_ROOThttps://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_ENABLEDfalseвключает уведомления о порогах
BANDWIDTH_USAGE_NOTIFICATIONS_THRESHOLD[60, 80]пороги в процентах, по возрастанию

Порогов может быть не больше пяти, каждый — целое число от 25 до 95. Событие срабатывает один раз на порог: панель помнит наибольший пройденный порог и не повторяет уведомление. Учитываются только активные пользователи с заданным лимитом трафика. Проверка выполняется каждые 5 минут.

Если уведомлений становится слишком много, приходит отдельное событие errors.bandwidth_usage_threshold_reached_max_notifications — это сигнал, что за один проход обработано больше пользователей, чем допустимо.

Не подключившиеся пользователи​

Полезно, когда доступ выдан, но пользователь так и не настроил клиент.

ПеременнаяПо умолчаниюОписание
NOT_CONNECTED_USERS_NOTIFICATIONS_ENABLEDfalseвключает уведомления
NOT_CONNECTED_USERS_NOTIFICATIONS_AFTER_HOURS[6, 24, 48]часы после создания пользователя

Значений не больше трёх, каждое — целое от 1 до 168, по возрастанию. Отсчёт идёт от момента создания пользователя, а не от выдачи подписки. Проверка выполняется каждые 10 минут. В событии приходит meta.notConnectedAfterHours с фактическим порогом.

Примечание

Ради производительности в таких событиях поля activeInternalSquads и lastConnectedNode пустые. Не используйте их при обработке.

Истечение подписки​

Напоминания приходят до и после expireAt, в зависимости от знака значения.

ПеременнаяПо умолчаниюОписание
EXPIRATION_NOTIFICATIONS_ENABLEDfalseвключает напоминания
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, а сам пароль в уведомление не включается.

Что дальше​