mistgate Документация

Алерты в Telegram

Как отправлять алерты панели в Telegram. Бот через BotFather, привязка чата, что и кому приходит, и как воркер зеркала может использовать того же бота.

На этой странице

Панель умеет писать в Telegram, когда нужен человек: нода пропала или вернулась, проверка не проходит, бэкап не удался, вышла новая версия, план агента ждёт вашего решения. Пока владелец не настроил бота, функция выключена. Она только присылает алерты: команд нет, подтвердить или изменить что-то из чата нельзя. Решения остаются в админке, за passkey или кодом из приложения-аутентификатора.

Настройте бота (владелец)#

  1. В Telegram откройте @BotFather, отправьте /newbot и ответьте на вопросы. Дайте боту своё имя и username; не берите бота, которого уже читает другая программа.
  2. Скопируйте токен, который пришлёт BotFather (123456789:AA…).
  3. В админке откройте Интеграции → Алерты в Telegram, вставьте токен в блок Бот и нажмите Сохранить бота. Панель попросит заново подтвердить вход, проверит токен у Telegram (getMe) и покажет @username бота.

Токен шифруется мастер-ключом панели, как и другие секреты, и API его не возвращает: на экране только «Токен задан» и username. Заменить токен задаёт другой, Убрать бота его забывает. Другой бот или его отсутствие отвязывает все чаты (чат принадлежит боту); тот же бот, вставленный ещё раз, чаты сохраняет. Сохранение и удаление бота записываются в журнал аудита (telegram_bot_set, telegram_bot_clear) с username бота и без токена.

Webhook панель не принимает: она спрашивает у Telegram новые сообщения (long polling) только затем, чтобы услышать код привязки ниже, поэтому всё работает за сайтом-маской без входящего порта. Бота с webhook опрашивать нельзя, так что при сохранении панель убирает webhook, оставшийся у бота. Заведите панели бота, которого больше никто не читает: если его опрашивает другая программа, карточка скажет об этом («Сообщения этого бота читает другая программа»).

Привяжите свой чат (каждый админ)#

Каждый админ привязывает свой чат; владелец чужие не привязывает. Откройте Интеграции → Алерты в Telegram → Привязать мой Telegram (помощник и админ только для чтения видят эту часть карточки, как только владелец настроил бота):

  1. Панель попросит заново подтвердить вход и покажет одноразовый код и кнопку Открыть в Telegram (https://t.me/<бот>?start=<код>).
  2. В Telegram нажмите Start. Если удобнее, отправьте боту /start <код> сами.
  3. Панель услышит это, привяжет чат к вашему аккаунту админа, а бот ответит «Чат привязан». Карточка покажет Привязан через несколько секунд.

Код работает один раз и 10 минут; новый код заменяет старый. Привязать можно только личный чат, не группу. Чат, который пишет боту что-то другое, не получает вообще никакого ответа, так что посторонний, нашедший бота, ничего о нём не узнает. Чат принадлежит одному админу: привязка его к другому админу переносит его.

После привязки можно выключить Присылать мне алерты, не отвязывая чат, нажать Отправить проверку (одно сообщение в ваш чат, не чаще раза в 10 секунд) или Отвязать. Привязка и отвязка записываются в журнал аудита (telegram_link, telegram_unlink). В карточке также виден ваш ID чата: он нужен воркеру зеркала (ниже).

Что приходит и кому#

Что Кому Когда
Алерт здоровья: нода недоступна, жива, но трафик не идёт, проваленная проверка, сбои доктора ноды (полный диск, WARP не работает, модуль AmneziaWG и другое), сертификат скоро истечёт, обновление на паузе Каждому привязанному админу, какая бы ни была роль (в админке их может читать любая роль) Когда открылся, и ещё раз, когда решился, с длительностью
Модуль ядра AmneziaWG не собрался на ноде Владельцу Один раз за сбой
Новая подписанная версия панели Владельцу Один раз за версию
Агенты нод отстают от релиза Владельцу Один раз за версию, с именами нод
Неудавшийся бэкап Владельцу Один раз, сколько бы ни повторяло расписание; и когда следующий бэкап прошёл
План MCP ждёт вашего решения Владельцу Когда план создан, со ссылкой на Интеграции → Ждут тебя. Решаете вы в админке, не в чате
Блокировка входа после череды неудачных попыток Владельцу Когда случилась
Вход с адреса, которого панель давно не видела; добавлен или удалён passkey, добавлен вход по паролю, сменён пароль или аутентификатор Владельцу и админу, которого это касается Когда случилось

Как ведут себя сообщения:

  • Всплеск превращается в одно сообщение. События, пришедшие с интервалом около 30 секунд, уходят вместе, одним сообщением на чат; одинаковая строка не повторяется.
  • Один и тот же открытый алерт не приходит дважды. Когда он решился, приходит одно сообщение с длительностью. Алерт, который заменил более серьёзный, принятый вами как норма и заглушенный заканчиваются без сообщения.
  • Алерты уровня info не отправляются. Приходят только предупреждения и критичные (в этой версии порог зашит; тихих часов и фильтров пока нет).
  • Коротко и на языке панели. Сообщения на русском или английском, по языку панели по умолчанию (Настройки → Интерфейс → Язык по умолчанию). Имена из данных, например ноды, профиля или токена, экранируются и обрезаются до одной строки.
  • Никаких секретов. В сообщении нет токена, ссылки подписки и пароля.
  • Ссылки только если панель знает свой публичный адрес. Если знает, сообщение заканчивается ссылкой на нужную страницу админки («Здоровье», «Обновления», «Интеграции», настройки бэкапа). Если нет (админка на отдельном локальном порту), карточка скажет об этом, а в сообщениях ссылок не будет. Учтите: в ссылке адрес вашей скрытой админки, и он остаётся в истории чата на серверах Telegram, поэтому привязывайте только личный чат с аккаунта, которому доверяете.

Доставка#

Панель сама подключается к api.telegram.org по HTTPS, этот адрес должен быть доступен с её сервера. Неудачная отправка повторяется с растущей паузой; ответ «слишком много запросов» панель пережидает столько, сколько просит Telegram, но максимум час как защиту от ошибочно больших значений; в чат, куда писать нельзя (вы заблокировали бота), повторов нет. Сообщения, ждавшие в памяти в момент остановки панели, уходят первыми, в течение нескольких секунд; при аварийном падении они теряются. Если Telegram отклоняет токен или панель до него не достаёт, карточка покажет это в блоке Бот.

Воркер зеркала может использовать того же бота#

Когда сама панель лежит, сказать об этом она не может. Воркер зеркала на Cloudflare — отдельная программа, которая может: он способен отправлять свои сообщения «панель недоступна» и «снова работает» через того же бота и в тот же чат. Ему нужны токен бота (из BotFather: /mybots → ваш бот → API Token; панель его больше не показывает) и ваш ID чата (виден в карточке после привязки). Воркер только отправляет (sendMessage); webhook он ставить и бота опрашивать не должен, иначе панель перестанет слышать код привязки.

Кто что может#

Владелец Помощник Только чтение Токен API / MCP
Задать, заменить или убрать бота да (с подтверждением входа) нет нет никогда
Привязать, отвязать, включить и выключить алерты, отправить проверку для своего чата да (привязка с подтверждением входа) да да никогда
Увидеть, кто привязал чат да нет нет никогда

Ничто в этой функции не открыто токенам API и MCP.

Править страницу на GitHub