Интернет глючит: график скорости за недели для разговора с провайдером
Касса виснет, онлайн-запись отваливается, а провайдер говорит, что всё в норме. Speedtest Tracker мерит скорость по расписанию и хранит историю в CSV. Разбираю, как поставить его в Docker, какие пороги задать и где замер врёт.
Интернет глючит, а в заявке написать нечего
В кафе касса зависает по пятницам около восьми вечера. В салоне онлайн-запись то открывается, то нет. В клинике видеоконсультация рвётся на середине. Вы звоните провайдеру, оператор просит перезагрузить роутер, роутер перезагружается, к утру всё работает. Через три дня повторяется.
Разговор буксует, потому что у вас есть ощущение, а у провайдера есть линия, на которой всё в норме. Нужны записи: в какой день и час скорость упала и до скольки. Вручную их никто не ведёт. Пока вы открываете сайт замера, проблема уже прошла.
Спор о тарифе устроен так же. Заплатили за 200 Мбит/с, а по вечерам кажется, что получаете вдвое меньше. Что именно вы получаете, без записей сказать нечем.
Что умеет Speedtest Tracker
Это self-hosted приложение: оно живёт на вашем компьютере или сервере и работает само. Лицензия MIT, она записана в файле LICENSE.md репозитория. Под капотом Laravel и официальный Speedtest CLI от Ookla: приложение запускает тот же замер, что делает сайт speedtest.net, и сохраняет результат.
По списку возможностей в документации есть расписание в виде cron-выражения, разовый замер вручную, выбор сервера или списка серверов, график на панели (по умолчанию за 24 часа, можно неделя или месяц), история удачных и неудачных замеров и выгрузка выбранных результатов в CSV. По каждому замеру хранятся загрузка, отдача, пинг и потеря пакетов.
Вы задаёте пороги: минимум для загрузки и отдачи, максимум для пинга. Замер хуже порога помечается как неудачный. Уведомления бывают внутри приложения, по почте, через webhook (он шлёт JSON) и через Apprise. Apprise это отдельный контейнер, который вы поднимаете сами, а через него идут Telegram, Discord, Pushover, ntfy и другие сервисы. Сообщение можно получать после каждого планового замера или только при провале порога.
Как поставить и что настроить
Образ lscr.io/linuxserver/speedtest-tracker собирает LinuxServer.io, а документация рекомендует Docker Compose. Обязательных переменных две: APP_KEY (ключ шифрования, команда для него есть в документации) и APP_URL. База по умолчанию SQLite, для большинства установок её хватает. Расписание лежит в SPEEDTEST_SCHEDULE. Проект поддерживает установку через Docker, Kubernetes и NAS (Synology, QNAP, Unraid). Установку на голое железо и в LXC Proxmox авторы не поддерживают.
Из документации два практических момента. Приложение по умолчанию считает, что живёт в UTC, поэтому задайте APP_TIMEZONE и DISPLAY_TIMEZONE, иначе падение в восемь вечера окажется на графике в другом часу. И не включайте PRUNE_RESULTS_OLDER_THAN: эта настройка удаляет старые результаты, а вам нужна история за месяцы.
Что важно учесть
Замер нагружает канал. Пока идёт тест, он забирает канал себе, и касса в этот момент может притормозить из-за самого замера. В документации советуют начинать расписание с неровной минуты, чтобы не попадать в пиковую нагрузку.
Замер показывает скорость до выбранного сервера Ookla. Качество всего интернета он не оценивает. Если касса ходит в облако, у которого проблемы, график останется зелёным. Доступность конкретных сервисов проверяет другой инструмент, например Uptime Kuma. Если упал сам сайт записи, это отдельная история, про неё я писал в статье про мониторинг сайта и домена. Пинг до своих доменов в Speedtest Tracker значится в планах, готовым его назвать нельзя.
Место установки влияет на цифры сильнее всего. Поставите на ноутбук по Wi-Fi, получите качество Wi-Fi в углу, где лежит ноутбук. Для замера линии нужна машина, подключённая кабелем к роутеру. Про саму беспроводную сеть офиса я писал отдельно: безопасность корпоративного Wi-Fi.
Условия Ookla. В тексте лицензии на Speedtest CLI, который я нашёл в копии у дистрибутива Gentoo, сказано про личное некоммерческое использование. Актуальные условия на сайте Ookla проверить не удалось. Компании стоит прочитать их до установки и решить, подходит ли такой замер.
График даёт даты и цифры. Как на них ответит провайдер, зависит от провайдера, обещать здесь нечего.
Что можно сделать уже сейчас
Замер раз в час на две недели. Выражение 7 * * * * даёт 24 замера в сутки и 336 за две недели. Если провалы привязаны к часам, поставьте 7,37 * * * *, то есть каждые полчаса. Порог возьмите от тарифа. При тарифе 100 Мбит/с можно начать с 70 и по графику понять, какой у вас обычный уровень.
Разговор с провайдером. Через две недели откройте график за неделю, отберите замеры ниже порога и выгрузите их в CSV. Дальше разговор выглядит иначе. Вместо «часто глючит» вы говорите: по будням с семи до девяти вечера загрузка держится около 20 Мбит/с при тарифе 100, вот даты. Это пример, цифры у вас будут свои. Просите проверить линию в эти часы. Перезагрузка роутера в такой заявке уже не нужна, у вас есть записи за недели.
Сравнение до и после смены тарифа или провайдера. Две недели замеров до, две после, то же расписание, то же место. Сравните типичные значения по выгрузке. Станет видно, дал ли дорогой тариф то, за что вы платите, или вечерние 40 Мбит/с остались теми же.
Тревога на телефон. Webhook отдаёт JSON с результатом, его можно принять своим ботом в Telegram или MAX. Если скорость упала ниже порога в рабочие часы, сообщение приходит владельцу сразу, раньше, чем позвонит кассир. Такую связку я собираю в рамках ИТ-инфраструктуры под ключ, а стоимость работ смотрите в прайсе.
Частые вопросы
Сколько стоит сама программа?
Ничего, лицензия MIT. Платите за машину, на которой она работает, и за настройку, если делаете её не сами.
Что нужно для установки в офисе?
Устройство, которое включено всегда и подключено кабелем: мини-ПК, NAS или существующий сервер. Требований к мощности в документации я не нашёл, поэтому здесь ничего не утверждаю.
До какого сервера идёт замер?
Можно задать список серверов через SPEEDTEST_SERVERS, и тогда сервер выбирается из списка случайно. Для сравнимых цифр укажите один идентификатор сервера.
Коротко о главном
Две недели замеров раз в час дают 336 точек. Этого хватает, чтобы увидеть, в какие часы скорость проседает и насколько, и чтобы сравнить два тарифа по одинаковым условиям. Ограничения простые: тест нагружает канал, мерит путь до тестового сервера и честен только при подключении кабелем.
Касса зависает, запись отваливается, а провайдер говорит, что всё в порядке? Напишите мне в Telegram слово «СКОРОСТЬ». Посмотрим, где поставить замер, какие пороги задать и куда слать тревогу.
Что я делаю для бизнеса
- Боты в Telegram, MAX, VK
- Автоматизация процессов и CRM
- Аналитика и дашборды
- Сайты и лендинги под ключ
Бесплатно: чек-лист «Готов ли ваш бизнес к 152-ФЗ»
12 пунктов, которые проверяют готовность за час: данные, согласия, уведомление в РКН, локализация, защита. Отметьте, что уже сделано, и увидите дыры, за которые сейчас штрафуют.
Готовы обсудить вашу задачу?
Бесплатная консультация — разберём, как внедрить это в вашем бизнесе под ключ. Без форм, пишите напрямую.
Разборы, кейсы и практика — без воды. Выходит регулярно, читать 3–5 минут.


