Вебформат

Главная/Блог/Сайты и e-commerce

Сайты и e-commerce12 октября 20266 мин

Кто грузит сайт: как по журналу запросов отличить наплыв ботов от медленных страниц

Сайт открывается медленнее, или хостинг пишет, что сервер перегружен. Это могут быть боты, реклама, поисковый робот или одна медленная страница. Каждый запрос веб-сервер записывает в журнал. Разбираем, какие вопросы мы задаём журналу, как читать ответ сразу за несколько отрезков времени и что спросить у подрядчика.

Сводка по журналу веб-сервера · пять отрезков времени
Сводка по журналу веб-сервера · пять отрезков времени

Сайт стал открываться медленнее, или хостинг прислал письмо, что сервер перегружен. Причин несколько: боты перебирают адреса, запустили рекламу, поисковый робот обходит каталог, одна страница отвечает дольше остальных. Гадать не нужно: каждый запрос веб-сервер записывает в журнал. На сервере из примеров ниже за сутки набиралось около 200 тысяч строк, и глазами их не прочитать.

Для этого у нас свой инструмент, supervision. Мы написали его в мае 2025 года. Он отбирает строки журнала по условиям и считает их сразу за несколько отрезков времени: последние полчаса, час, три часа, полсуток, сутки. Расскажем, какие вопросы мы задаём журналу и как читать ответ.

Что записано в журнале веб-сервера

Одна строка - один запрос: время, адрес посетителя, какую страницу или файл он запросил, что ответил сервер, с какой страницы пришёл и какой программой открыл сайт. Если это включено в настройках, в строку попадает и время ответа. Фильтр защиты дописывает номер правила, по которому остановил запрос.

Счётчик посещаемости видит меньше. Он срабатывает, когда страница загрузилась в браузере. Большинство ботов страницы не отрисовывают и счётчик не запускают. Если сервер отказал в доступе или упал с ошибкой, страница сайта не загрузилась, и счётчику негде сработать. В журнале такой запрос есть.

Как из журнала получается сводка
Журнал веб-сервера
строка на каждый запрос
время, адрес, ответ сервера
время ответа, номер правила
условия отбора
supervision
отбирает строки по условиям
считает за каждый отрезок времени
итог
Сводка
сколько пришло, сколько совпало
доля и отметка порога
Страница по паролю
открывается в браузере
без входа на сервер
Журнал отчётов
копия каждой сводки
по дням
Сводку считают на том же сервере, где лежит журнал: сам журнал никуда не выгружают

Что спрашиваем у журнала

  • →Сколько запросов пришло. Сравниваем с тем же отрезком в обычный день. Рекламу не запускали, а запросов вдвое больше - первыми проверяем ботов.
  • →Какую долю остановила защита. Фильтр на веб-сервере пишет номер правила у каждого остановленного запроса, фильтр внутри сайта ведёт свой журнал. Сводка считает обе ступени.
  • →Какие правила срабатывают чаще. По ним видно, что ищут боты: служебные файлы, чужие панели управления, известные дыры 1С-Битрикс.
  • →Сколько запросов ждут ответа дольше двух секунд. Запросы программ, которые называют себя ботами, в подсчёт не берём.
  • →Сколько ошибок получают посетители. Отдельно считаем ошибки у переходов по рекламным ссылкам: их видно по меткам в адресе.

Пять отрезков времени в одной таблице

На каждый вопрос сводка отвечает сразу за несколько отрезков, отсчитанных от текущего момента. Отрезки вложены друг в друга: в последние сутки входят последние 12 часов, в них последние 6 и так далее. Для каждого отрезка видно, сколько запросов пришло, сколько совпало с условием и какая это доля. Доля выше порога - отрезок получает отметку.

Вот сводка с одного сервера за май 2025 года: доля запросов, которые остановил фильтр на веб-сервере. Порог в этом отчёте - 0,5%.

Отрезок до отчётаПришло запросовОстановил фильтрДоляПорог 0,5%
5 минут65620,30%
15 минут2 51220,08%
30 минут4 72930,06%
1 час10 07540,04%
3 часа30 899730,24%
6 часов65 053950,15%
12 часов119 3496180,52%превышен
24 часа175 7307950,45%
3 дня266 7561 0740,40%
Сводка supervision с одного сервера, 20 мая 2025 года: доля запросов, остановленных фильтром на веб-сервере

Сутки выглядят спокойно: 0,45%, ниже порога. Отметку получил отрезок 12 часов. Разница между соседними отрезками показывает, когда был всплеск: между 6 и 12 часами до отчёта фильтр остановил 523 запроса из 54 тысяч, почти 1%. В остальное время доля была от 0,15 до 0,3%. В отчёте за одни сутки этот всплеск растворился бы.

Короткие отрезки читают осторожно. За 5 минут пришло 656 запросов, и двух остановленных хватило на 0,30%. Отметку на коротком отрезке проверяют по длинным.

Порог и страница со сводкой

На рабочей странице сводка идёт за пять отрезков: полчаса, час, 3 часа, 12 часов и сутки. Порог тревоги - 3%. Для сравнения: на чистых сайтах, где мы считали, фильтр останавливал меньше процента запросов, на заражённом - 15%. Цифры того случая - в статье про межсетевой экран.

Страница закрыта паролем и открывается в браузере, заходить на сервер не нужно. Сводку считают на том же сервере, где лежит журнал. В журнале адреса посетителей, и выгружать его на сторонние сервисы ради статистики не приходится. Каждый отчёт дописывается в журнал отчётов за день, поэтому сегодняшние цифры есть с чем сравнить.

Какие правила срабатывают чаще

Вторая таблица сводки - десять правил фильтра, которые срабатывали чаще остальных, по тем же отрезкам. У каждого правила видно число срабатываний и долю от всех запросов. Правило, которое одно набирает долю выше порога, получает отметку. По верхним строкам понятно, что происходит.

  • →Наверху правила про служебные файлы и копии. Сайт перебирает сканер, как и тысячи других сайтов. Фильтр такие запросы останавливает, это фон.
  • →Наверху правило под известную дыру 1С-Битрикс. Сайт ищут именно по ней. Проверяем, стоит ли обновление платформы, которое её закрывает.
  • →Правило выросло после обновления сайта или запуска рекламы. Проверяем, не задевает ли оно живых посетителей. Такие случаи разобраны в статье про фильтр на веб-сервере: от метки автотаргетинга Директа до смайликов в чате Битрикс24.

Медленные ответы считают без роботов

Чтобы понять, тормозит ли сайт у людей, считаем запросы, на которые сервер отвечал дольше двух секунд. Запросы программ, которые называют себя ботами, в подсчёт не берём: поисковый робот за ночь обходит весь каталог, и его медленные ответы смешались бы с ответами людям.

Пример с того же сервера, 15 мая 2025 года: за сутки пришло 219 703 запроса, и 187 из них, где программа не называла себя ботом, сервер обрабатывал дольше двух секунд. Это меньше десятой доли процента. Боты-взломщики чаще представляются обычным браузером, поэтому часть из 187 могли дать и они. Если добавить условие на адрес, медленные ответы считаются отдельно у каталога, поиска или оформления заказа, и видно, какая страница тормозит.

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

Чего сводка не делает

  • →Не останавливает запросы. Это работа фильтров защиты, сводка показывает, что они остановили.
  • →Не проверяет, открывается ли сайт снаружи. Если веб-сервер не отвечает, журнал молчит. Как искать причину, когда сайт лежит, а сервер не нагружен, - в статье про ошибку 504.
  • →Не называет виновника по адресу. Сводка считает запросы по условиям. С каких адресов шёл наплыв, находят дальше, разбирая журнал за отрезок, который получил отметку.
  • →Не присылает сообщений. Отметка о превышении порога стоит в таблице на странице.

Пять вопросов подрядчику

  • 01Сколько запросов получает сайт за обычные сутки и сколько из них приходится на поисковых роботов?
  • 02Какую долю запросов останавливает защита и при какой доле вы начинаете проверять сайт на заражение?
  • 03Как вы отличаете медленную страницу от наплыва ботов?
  • 04Получают ли ошибки посетители с рекламы и как вы это проверяли?
  • 05Сколько дней хранится журнал веб-сервера и пишется ли в него время ответа?

Ответ на пятый вопрос нужен до любого сбоя. Если журнал хранится несколько дней, сегодняшний наплыв не с чем сравнить, а без времени ответа медленную страницу по журналу не найти.

Знаете, кто грузит ваш сайт?

Обсудим ваш проект - посмотрим журнал веб-сервера: сколько запросов приходит, какую долю дают боты, какие страницы отвечают медленно и не получают ли ошибки посетители с рекламы.