Основные тезисы статьи
- Логи сервера фиксируют обращения к сайту, ошибки, действия скриптов, подозрительные запросы и технические события, которые не видны в интерфейсе.
- Когда сайт тормозит, рассылает спам, ловит атаки или выдает ошибки, именно журналы помогают понять, что произошло и откуда пришла проблема.
- В статье объясняется, что такое логи, зачем их включать, как читать записи, как искать признаки вирусов и атак, а также как с помощью анализа логов снизить лишнюю нагрузку на сервер.
Что такое логи?
Краткая справка из Википедии:
Файл регистрации, протокол, журнал или лог (англ. log) — файл с записями о событиях в хронологическом порядке. Различают регистрацию внешних событий и протоколирование работы самой программы, источника записей (хотя часто всё записывается в единый файл). Например, в лог-файлы веб-сервера записывается информация, откуда пришёл тот либо иной посетитель, когда и сколько времени он провел на сайте, что там смотрел и скачивал, какой у него браузер и какой IP-адрес у его компьютера.
Для практического продолжения темы полезно отдельно посмотреть, как исправить ошибки безопасности SSL в браузере.
Для чего нужны логи?
Обычно при нормально работающем сайте лог-файлами мало кто интересуется, но когда начинает расти нагрузка на сервер, запускается рассылка спама, а сайт начинает вести себя довольно странно или изобиловать ошибками, без логов не обойтись.
Читайте также: Как подключить домен к Tilda
Как включить запись логов?
Обычно для экономии дискового пространства ведение логов на хостинге выключено.
Приведу включение записи на примере панели управления хостингом Timeweb.
В панели управления переходим во вкладку «Логи», выбираем из выпадающего сайта нужный (если их несколько) и активируем ползунок «Лог доступа (access_log)»

Примерно через час, когда накопится достаточное количество записей, переходим в директорию сайта и скачиваем файл.

Открываем в любом текстовом редакторе (на примере второй столбец, с адресом сайта закрашен).

Разберем для примера строку № 49
site.ru 85.93.93.102 - - [28/Sep/2017:06:33:04 +0300] "GET /page/2/ HTTP/1.0" 200 80195 "-" "Linguee Bot (http://www.linguee.com/bot; bot@linguee.com)"
- site.ru – адрес нашего сайта.
- 85.93.93.102 – IP-адрес посетителя, с датой и временем посещения, а также часовым поясом.
- GET – тип запроса, возможен вариант POST. Чем GET отличается от POST можно почитать в сети, но если говорить упрощено, GET – получение данных, POST – отправка, например авторизация.
- page/2 – к какой странице было обращение, в нашем случае это site.ru/page/2.
- HTTP/1.0 – протокол, по которому пришел посетитель.
- 200 – код ответа сервера, более подробную информацию о кодах состояния можно прочитать в Википедии.
- 80195 – количество байт полученных посетителем.
- Linguee Bot (http://www.linguee.com/bot; bot@linguee.com) – данные о посетителе, тут также может быть информация о браузере, операционной системе, устройстве и так далее.
Для соседних серверных задач полезно отдельно посмотреть, что такое name-сервер (NS).
Итог
Даже при беглом взгляде видно, что с адреса 85.93.93.102 идет множество запросов. Обращение было как раз по чрезмерной нагрузке на сайт. Как только адрес бота Linguee Bot был запрещен, нагрузка практически сразу вернулась в норму.

И все за несколько минут, благодаря логам; без них на выяснение причины понадобилось бы гораздо больше времени. Также были замечены обращения по адресам, содержавшим вставки типа xd0\xbe\xd1\x82\xd0\xb7\ …
Тот, кто занимается «лечением» сайтов, знает, что подобные запросы могут создавать запредельные нагрузки на сервер. Если вы настраиваете инфраструктуру дальше, пригодится материал «Алгоритмы и методы распределения нагрузки на сервер».
Иногда самые простые методы – самые действенные, а защита на уровне сервера самая надежная.
Засим прощаюсь!
Мой профиль в Marketplace - https://timeweb.com/ru/community/marketplace/bashkov-vladislav
