Контролируйте логи: они могут занять всё место на хостинге

Время от времени люблю просматривать логи запросов и ошибок сайтов. Необходимо, но недостаточно после любых обновлений сайта просматривать различные его страницы на предмет возможных ошибок: посмотреть главную, хотя бы одну рубрику, метку, страницу, запись... Так можно увидеть явные ошибки. Узнать о неявных проблемах помогает анализ логов. Изучать их можно как с помощью специального ПО, так и в «сыром» виде:

Лог доступа может указать на возможную уязвимость в системе

Лог доступа может указать на возможную уязвимость в системе

На приведённом выше куске лога отображена хакерская атака — к сожалению, обычное сейчас явление. Анализ лога позволяет узнать, какие плагины и модули системы являются на данный момент уязвимыми. Также можно увидеть ошибки и уведомления PHP (по правилам хорошего тона и в целях безопасности они не должны отображаться посетителям).

Но, как я написал в заголовке, неконтролируемое «разбухание» файлов логов может лишить вас свободного дискового места на хостинге.

Особенно стоит подсуетиться владельцам виртуальных и выделенных серверов.

Сейчас вполне достойный тариф VPS стоит от $5 в месяц, что сопоставимо с ценой виртуального хостинга, но ваша система значительно более изолирована от соседей по серверу и гарантированны ресурсы: процессор, оперативная память, ширина канала доступа в Сеть. И неограниченные возможности установки и настройки ПО.

На серверах обычно включено по-умолчанию логирование запросов и ошибок, также обычно ротация (упаковка в архив и обнуление) логов происходит только раз в сутки. На сайте со сравнительно небольшой посещаемостью ~10 000 уникальных посетителей лог доступа за сутки может свободно превысить 200 МБ. А нашествие ботов легко увеличит это значение в 100 раз.

Даже если у вас не VPS, а скромный виртуальный хостинг, вы сами можете организовать функционал логирования запросов и ошибок (для WP есть плагины защиты с такой функцией). Тогда и вам тоже стоит задуматься о вероятности «разбухания» логов до немыслимых размеров.

Чистка логов в ISP manager

Наверное, бесплатный пиар ISP, но я считаю эту панель управления сервером самой удобной и функциональной из тех, в которых работал.

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

Идём в Журнал, сортируем логи по размеру (большие сверху), выделяем самые «разбухшие» при помощи клавиши Ctrl, нажимаем «Очистить».

Журнал логов

Ни в коем случае не удаляйте файлы логов из файловой системы — для чистки логов пользуйтесь командой «Очистить» в Журнале. Логирование несколько сложней устроено: в случае удаления файлов место всё равно не освободится до перезагрузки Веб-сервера, а отсутствие файлов может стать причиной того, что Веб-сервер не запустится после перезагрузки.

Возьмите за правило для любых логов: не удалять, а очищать (обнулять).

Контроль размера логов

Очистка логов — правильное экстренное решение. Но оно не является гарантией того, что в будущем логи не займут всё свободное место.

Изначально ISP предлагает ротацию логов раз в сутки, что я считаю неверным решением — ведь за сутки растущий лог может заполнить дисковую квоту. Вернее всего настроить ротацию по достижении определённого размера.

Для этого в ISP надо зайти от имени «root», выбрать в Настройках Ротацию логов, установить Период ротации «По размеру». Размер укажите сколько не жалко — указывается в мегабайтах. Например, «100» означает, что лог будет архивироваться, когда его размер превысит 100 МБ. Настройка «Применить для всех WWW доменов» задаст правило ротации для уже созданных в ISP сайтов.

Настройка ротации логов

Количество хранимых архивов можете указать хоть 20. Рассчитывайте, что в архиве лог будет примерно в 10 раз «легче». Например, при значении Размер = 100 и Хранить архивов = 10, размер архивов логов составит максимум 100/10 х 10 = 100 МБ + максимум 100 МБ текущий лог, итого максимум 200 МБ.

А при ротации раз в сутки вполне реальна ситуация, когда лог хорошо посещаемого или атакуемого сайта разрастается до 5-10 гигабайт!

Кстати, лог не будет сбрасываться в архив моментально при достижении 100 МБ. Задание ротации ISP manager запускается 1 раз в час и проверяет, достиг ли лог нужного размера. Если для вас критично (мало ли, вдруг у вас и за 1 час лог сильно «раздувается»), можно уменьшить период проверок. Для этого надо в меню Инструменты зайти в Планировщик (cron) и изменить задание «ispmgr/sbin/rotate» — можно запускать хоть каждую минуту, если вам надо.

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

One Response

  1. x64 говорит:

    Для виртуалов выгоднее, мне думается, логи отключать вообще (точнее, логи запросов). Ведь подавляющее большинство пользователей даже не знают, что это и с чем его нужно кушать.

    А если на фронтенде стоит nginx, то и логов будет в раза больше.

    Но хостеров, предоставляющих только nginx, я не встречал. К чему бы это? (:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Иногда ваш комментарий может не отобразиться сразу после публикации - будто пропал. Не волнуйтесь, он не пропадёт и появится потом, после моего одобрения.