Настройка веб-сервера на базе стека LEMP в Ubuntu Server 14.04 LTS. Часть 13. Ротация логов Nginx

Чтобы снизить нагрузку на файловую подсистему веб-сервера можно попробовать сократить уровень ротации логов. Отредактируем глобальный файл конфигурации logrotate

sudo nano /etc/logrotate.conf
logrotate.conf
# rotate log files weekly
#weekly
 
maxsize 50M
daily
dateext
 
# keep 4 weeks worth of backlogs
#rotate 4
rotate 7
 
# uncomment this if you want your log files compressed
compress

В конфигурации по умолчанию логи nginx подвергаются ротации раз в сутки, отсекая от текущего лога лог за неделю. При этом не обращается внимание на размер лог-файлов. Изменим ротацию логов nginx, чтобы предотвратить создание лог-файлов большого объёма

sudo nano /etc/logrotate.d/nginx
nginx
/var/log/nginx/*.log {
        maxsize 50M
        daily
        dateext
        missingok
        rotate 30
        compress
        nodelaycompress
        notifempty
        create 0640 root adm
        sharedscripts
        prerotate
                if [ -d /etc/logrotate.d/httpd-prerotate ]; then \
                        run-parts /etc/logrotate.d/httpd-prerotate; \
                fi \
        endscript
        postrotate
                [ -s /run/nginx.pid ] && kill -USR1 `cat /run/nginx.pid`
        endscript
}

Добавляем в cron задачу, выполняющуюся каждый час:

sudo nano /etc/cron.d/logrotate-hourly
logrotate-hourly
# Run logrotate every hour
0 * * * * root /usr/sbin/logrotate /etc/logrotate.conf