logrotate - ротация логов в Linux

После настройки конфига nginx для поддоменов , а также настройки сохранения log-файлов в каталог пользователя некоторые лог-файлы разрослись до огромных размеров. Конечно, можно “просто” удалять лог-файлы по cron-у. Однако, гораздо правильнее использовать так называемый механизм ротации логов в Linux при помощи утилиты logrotate.

Установка logrotate в Debian/Ubuntu
sudo aptitude install logrotate

С описанием утилиты и параметрами запуска можно ознакомиться в официальном мануале. Приведу лишь некоторые возможности настройки logrotate.

В каталоге /etc/logrotate.d располагаются конфигурационные файлы следующего вида (для примера - файл apache2 с настройками ротации логов одноимённого web-сервера):
/var/log/apache2/*.log {
weekly
missingok
rotate 15
compress
delaycompress
notifempty
create 640 root adm
sharedscripts
postrotate
/etc/init.d/apache2 reload > /dev/null
endscript
}

Использование wildcard directory в logrotate

При необходимости, можно использовать wildcard, т.е. указать * в качестве символа подстановки произвольной последовательности. К примеру, логи web-сайтов располагаются в каталогах (вместо site.ru - имя соответствующего сайта)
/home/webmaster/www/{site.ru}/logs/nginx.log
/home/webmaster/www/{site.ru}/logs/access.log
/home/webmaster/www/{site.ru}/logs/error.log

Тогда, можно файл apache2 изменить следующим образом, добавив строку перед основным содержимым
/home/webmaster/www/*/logs/*.log
/var/log/apache2/*.log {
weekly
missingok
rotate 15
compress
delaycompress
notifempty
create 640 root adm
sharedscripts
postrotate
/etc/init.d/apache2 reload > /dev/null
endscript
}

Строго говоря, это не совсем верно, т.к. файлы вида nginx.log правильнее внести в /etc/logrotate.d/nginx

Проверка настройки logrotate - debug

Для проверки корректности внесённых изменений следует запустить logrotate в режиме отладки.logrotate -d -f /etc/logrotate.conf
Параметр -d указывает на режим debug (отладка), в котором выводится информация, но никаких изменений с log-файлами не происходит. Параметр -f (force) отвечает за запуск, даже если файл не должен обрабатываться (не прошла неделя с последнего weekly-обработанного файла)

Автор будет признателен, если Вы поделитесь ссылкой на статью, которая Вам помогла:
BB-код (для вставки на форум)

html-код (для вставки в ЖЖ, WP, blogger и на страницы сайта)

ссылка (для отправки по почте)

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