Настройка ротации логов Apache HTTPD с помощью logrotate¶
При высокой нагрузке на веб-сервер размер журналов Apache может стремительно расти, создавая риск полного заполнения дискового пространства и нестабильной работы управляющей машины. Стандартная утилита logrotate позволяет автоматизировать управление жизненным циклом логов, оптимизировать занимаемое место и предотвратить аварийные остановки сервисов.
Проверка глобальных настроек по умолчанию¶
Глобальная конфигурация logrotate задаётся в файле /etc/logrotate.conf. Чтобы быстро оценить текущие параметры ротации по умолчанию, выполните:
Базовые правила рассчитаны на умеренную активность системы. Для критичных сервисов вроде Apache HTTPD безопаснее задать индивидуальный профиль ротации.
Конфигурация ротации для Apache HTTPD¶
Файлы конфигураций для отдельных сервисов размещаются в каталоге /etc/logrotate.d/.
Создайте резервную копию текущей конфигурации:
Откройте или создайте файл /etc/logrotate.d/httpd:
Внесите следующую конфигурацию:
/var/log/httpd/*log {
daily
maxsize 50M
dateext
dateformat -%Y%m%d-%s
rotate 14
compress
delaycompress
missingok
notifempty
create 640 root root
sharedscripts
postrotate
/bin/systemctl reload httpd.service > /dev/null 2>&1 || true
endscript
}
Описание используемых параметров¶
daily— запускает плановую ротацию каждые сутки.maxsize 50M— форсирует ротацию лога при достижении 50 МБ, даже если сутки ещё не прошли (барьер от переполнения диска при спайках трафика или ошибках).dateextиdateformat -%Y%m%d-%s— добавляют к архивам читаемый суффикс с датой и Unix-таймстемпом вместо простой цифровой нумерации.rotate 14— глубина архива: сохраняются последние 14 копий (при объёме файла 100 МБ один тип лога займёт суммарно не более 1,4 ГБ).compressиdelaycompress— архивация старых логов с помощью gzip; сжатие самого последнего архива откладывается до следующего цикла, что упрощает оперативный траблшутинг.missingok— предотвращает аварийное завершение утилиты при временном отсутствии какого-либо лог-файла.notifempty— запрещает ротацию пустых файлов, исключая создание пустых архивов.create 640 root root— создаёт новый лог-файл взамен перемещённого с безопасными правами доступа640(чтение/запись дляroot, чтение для группы).sharedscriptsи блокpostrotate ... endscript— выполняетsystemctl reload httpdоднократно для всей группы файлов логов, благодаря чему веб-сервер корректно переоткрывает файловые дескрипторы без перезапуска рабочих процессов.
Тестирование и применение конфигурации¶
Перед сохранением изменений проверьте конфигурацию:
Ключ -d выведет детальный лог планируемых операций без физического изменения файлов и перезагрузки сервиса. При необходимости принудительно запустить ротацию вне расписания используйте:
Параметры maxsize и rotate можно скорректировать под доступную ёмкость файловой системы и корпоративные требования к глубине аудита.