Контролируйте логи: они могут занять всё место на хостинге
Время от времени люблю просматривать логи запросов и ошибок сайтов. Необходимо, но недостаточно после любых обновлений сайта просматривать различные его страницы на предмет возможных ошибок: посмотреть главную, хотя бы одну рубрику, метку, страницу, запись... Так можно увидеть явные ошибки. Узнать о неявных проблемах помогает анализ логов. Изучать их можно как с помощью специального ПО, так и в «сыром» виде:
На приведённом выше куске лога отображена хакерская атака — к сожалению, обычное сейчас явление. Анализ лога позволяет узнать, какие плагины и модули системы являются на данный момент уязвимыми. Также можно увидеть ошибки и уведомления 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» — можно запускать хоть каждую минуту, если вам надо.
Один ответ к “Контролируйте логи: они могут занять всё место на хостинге”
Для виртуалов выгоднее, мне думается, логи отключать вообще (точнее, логи запросов). Ведь подавляющее большинство пользователей даже не знают, что это и с чем его нужно кушать.
А если на фронтенде стоит nginx, то и логов будет в раза больше.
Но хостеров, предоставляющих только nginx, я не встречал. К чему бы это? (: