Назад | Перейти на главную страницу

Совет по файлам журналов apache

У меня есть небольшой VPS, который мы с другом используем для размещения нескольких веб-сайтов. Мы оба относительно неопытны в управлении сервером и не уверены в эффективном способе работы с журналами, которые генерирует Apache.

Каждый сайт генерирует собственный файл журнала в структуре каталогов, подобной приведенной ниже:

/var/www/{user]/{sitename}/logs

Проблема в том, что некоторые из них становятся довольно большими (300 МБ). Я подумываю об установке logrotate чтобы помочь справиться с этой проблемой размера. Однако я не уверен в эффективном способе работы с журналами, поскольку это не важные сайты, и поэтому журналы, на мой взгляд, не так важны.

Какие рекомендуемые методы работы с журналами? и каков ваш совет / мнение по таким вопросам?

Logrotate определенно путь. Поскольку размер журналов увеличивается, вы можете использовать logrotate для значительного сжатия журналов. Предполагая, что вы используете apache, измените следующее

vi /etc/logrotate.d/httpd

Вы захотите, чтобы это выглядело примерно так:

"/var/log/httpd/site1/*.log" "/var/log/httpd/site2/*.log" {
weekly
rotate 7
compress
missingok
notifempty
sharedscripts
postrotate
/sbin/service httpd reload > /dev/null 2>/dev/null || true
endscript
}
  • Еженедельно: Файлы журнала меняются, если текущий день недели меньше дня недели последней ротации или если с момента последней ротации прошло больше недели.
  • Повернуть 7: Файлы журнала меняются 52 раза перед удалением или отправкой по адресу, указанному в почтовой директиве. Если count равно 0, старые версии удаляются, а не меняются.
  • Компресс: Старые версии файлов журнала сжимаются с помощью gzip для экономии места на диске.
  • Миссингок: Если файл журнала отсутствует, перейдите к следующему, не выдавая сообщения об ошибке.
  • Не пустой: Не поворачивайте журнал, если он пустой
  • Общие скрипты: Обычно сценарии prerotate и postrotate запускаются для каждого журнала, который вращается, что означает, что один сценарий может запускаться несколько раз для записей файла журнала, которые соответствуют нескольким файлам. Если указан sharedscript, сценарии запускаются только один раз, независимо от того, сколько журналов соответствует шаблону с подстановочными знаками. Однако, если ни один из журналов в шаблоне не требует ротации, скрипты не будут выполняться вообще.
  • Постротация / sbin / service httpd reload> / dev / null 2> / dev / null || правда
  • Endscript: Строки между postrotate и endcript (обе должны появляться в строках сами по себе) выполняются после поворота файла журнала. Эти директивы могут появляться только внутри определения файла журнала.

РЕДАКТИРОВАТЬ: Как сказал Лукас: Еще одна вещь, которую вы можете захотеть проверить, - это почему ваши журналы заполняются. Это может указать вам на какой-то плохой код или, возможно, кто-то пытается сделать что-то вредоносное, например, через формы и т. Д.

Если вам нужна дополнительная информация о параметрах, просто используйте

человек logrotate

Я бы действительно использовал logrotate, ваши 300 МБ после сжатия превратятся в 8 МБ. Вы также можете создать сценарий для резервного копирования сжатых журналов на удаленный сервер (или какой-либо другой резервный диск) время от времени, а затем удалить эти журналы.

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

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