Как настроить мониторинг падения интернет-провайдера через Telegram

Как настроить мониторинг падения интернет-провайдера через Telegram

Настройте пинг-скрипт на офисном сервере или резервном роутере для мгновенного оповещения в Telegram о падении основного интернет-провайдера. Это защитит бизнес в Минске и других городах Беларуси от простоя связи, позволит вовремя переключить рабочие места на резервный канал и сохранить доступ к облачным сервисам, CRM и корпоративной телефонии без потери клиентов и денежных средств.

Шаг 1. Создание Telegram-бота и получение токена

Запустите команду в терминале или найдите в Telegram @BotFather, отправьте /newbot. Укажите имя бота и системный юзернейм, заканчивающийся на bot. Скопируйте полученный HTTP API токен в защищенный файл на сервере. Затраты человеческого труда: 2 минуты.

Узнайте числовой ID корпоративного чата через бота @userinfobot. Сохраните значение — этот параметр необходим для отправки POST-запросов через Telegram API.

Шаг 2. Создание скрипта проверки соединения на Python

Создайте файл check_inet.py на рабочем сервере. Вставьте проверенный код для циклической проверки доступности внешнего узла и отправки тревожного сообщения в мессенджер при потере пакетов.

import requests, time, subprocess
TOKEN = "ВАШ_ТОКЕН"
CHAT_ID = "ВАШ_ID"
def send_alert(msg):
  requests.post(f"https://api.telegram.org/bot{TOKEN}/sendMessage", data={"chat_id": CHAT_ID, "text": msg})
while True:
  res = subprocess.run(["ping", "-c", "3", "8.8.8.8"], stdout=subprocess.DEVNULL)
  if res.returncode != 0:
    send_alert("Внимание: основной провайдер недоступен!")
  time.sleep(60)

Шаг 2 из 4 готов. Фоновый процесс запущен и проверяет пинг каждую минуту.

Какие параметры каналов связи критичны для офисного мониторинга?

Сравним ручной контроль доступности сети и автоматизированную систему оповещений через мессенджер с учетом требований к стабильности корпоративных сетей.

Параметр Ручной контроль (звонки сотрудников) Автоматический бот-мониторинг
Время обнаружения обрыва От 15 до 60 минут До 60 секунд
Затраты труда Высокие (жалобы клиентов) Минимальные (настройка 1 раз)
Влияние на бизнес-процессы Срыв сделок, простой телефонии Мгновенное переключение на резерв

Для стабильной работы офиса из 15 человек требуется правильно подобрать провайдера и пропускную способность канала. Подробности указаны в руководстве как выбрать провайдера и скорость корпоративного интернета для офиса из 15 человек.

Шаг 3. Интеграция мониторинга с сетевым оборудованием

Чтобы падение интернета не обрывало разговоры по IP-телефонии, настройте приоритезацию трафика. Корректные параметры QoS исключают заикания голоса при пиковых нагрузках, как описано в инструкции как настроить QoS в малом офисе: чтобы телефония и CRM не «заикались».

Для разделения голосового трафика и рабочих ПК используйте изолированные подсети. Настройка VLAN детально разбирается в статье как настроить VLAN для IP-телефонии и облаков в офисе.

Шаг 3 из 4 готов. Приоритеты трафика распределены.

Типичные ошибки при настройке мониторинга

  • Указание неверного CHAT_ID, из-за чего уведомления блокируются Telegram API.
  • Слишком частый опрос (меньше 5 секунд), вызывающий ложные срабатывания при кратковременных задержках на узлах провайдера.
  • Запуск скрипта на том же роутере, интернет на котором проверяется (при падении сети скрипт зависает вместе с интерфейсом).
  • Отсутствие логирования сбоев в локальный файл для последующего разбора инцидентов с техподдержкой.
  • Использование ICMP-пинга до заблокированных в регионе IP-адресов вместо стабильных публичных DNS.

Шаг 4. Проверка работоспособности системы

Финальный шаг: отключите физический кабель основного провайдера на 30 секунд. Убедитесь, что в Telegram-чат поступило оповещение об аварии. Ошибка устранена, мониторинг функционирует корректно.

3 шага, которые можно сделать сегодня/на неделе

  1. Создать Telegram-бота через BotFather за 3 минуты.
  2. Разместить python-скрипт проверки пинга на внешнем сервере за 15 минут.
  3. Протестировать отправку уведомления отключением интернет-кабеля за 1 минуту.