Статистика MTProto сервера: что показывает и как читать
Число подключений — не число людей: один клиент Telegram держит несколько соединений, и коэффициент между ними около трёх. Понимая это, статистику своего сервера читать легко. Серверы из таблицы выше отдают её владельцу пула; ниже — как получить свою.
Три источника: сам сервер, бот рекламного тега и системные счётчики.
Статистика самого сервера
Официальный MTProxy отдаёт текстовую страницу на отдельном порту статистики: соединения, трафик, ошибки. telemt и подобные — метрики в формате Prometheus плюс API по пользователям. mtg — минимальные счётчики через API.
Порт статистики не должен быть открыт наружу — только локально или за паролем.
Бот рекламного тега
Если сервер запущен с тегом от @MTProxybot, бот показывает подключения по дням и географию. Данные появляются с задержкой в сутки и считают соединения, а не людей — делите примерно на три.
Это единственная статистика, которую видит владелец тега без доступа к серверу.
Системные счётчики
Количество установленных TCP-соединений на порту 443 (ss -tn state established) — мгновенная картина нагрузки. Счётчики трафика на сетевом интерфейсе — объём за период. Загрузка процессора у прокси должна быть низкой; если высокая — что-то не так с реализацией или идёт атака.
Резкий рост соединений с одного IP — сканер или брут; нормальные клиенты дают по несколько соединений с адреса.
Что значат цифры
Сотни соединений на личном сервере — вы делитесь им слишком широко, ждите блокировки. Тысячи — публичный уровень. Падение до нуля при живом контейнере — блокировка IP или порта. Всплеск ошибок рукопожатия — сканеры пробуют секрет или фильтр «щупает» сервер.
Регулярно смотреть не обязательно; достаточно проверять при жалобах «недоступен».
Что делать с цифрами
Рост соединений без роста числа знакомых вам людей означает, что ссылка утекла в открытый список — готовьтесь к блокировке адреса и заранее подготовьте резервный IP. Падение до нуля при живом процессе — блокировка уже случилась. Всплеск ошибок рукопожатия с одного адреса — сканер, его можно ограничить правилом файрвола по частоте соединений.
Для личного сервера достаточно смотреть на счётчик установленных соединений раз в неделю. Для сервиса имеет смысл экспортировать метрики в систему мониторинга и настроить тревогу на нулевые соединения в течение получаса — это самый ранний сигнал блокировки.
Приватность статистики
Даже IP подключившихся — персональные данные в некоторых юрисдикциях. Для личного сервера логи с адресами лучше не хранить дольше нескольких дней, а порт статистики держать закрытым снаружи. Метрики без адресов — счётчики и объёмы — можно хранить сколько угодно.
Вопросы и ответы
Видит ли статистика, кто именно подключён?
Только IP и объём; аккаунты и содержимое недоступны.
Почему в боте подключений больше, чем у меня людей?
Клиент держит несколько соединений; делите на три.
Нужно ли хранить логи?
Для личного сервера — нет; для сервиса — по вашим правилам, без содержимого трафика.