Недавно вышел небольшой конфуз. Перестал работать SVN-сервер. При первом осмотре оказалось, что отключился сервис Apache. После его запуска работа SVN продолжилась. При более детальном изучении проблемы, оказалось, что один из лог-файлов достиг размера 4Гб. При попытке пересоздать лог-файл сервис Apache остановился и не запустился. Возникла проблема с тем, как ограничить рост логов Apache. При небольшом изучении вопроса решение было найдено достаточно быстро. В комплекте с Apache идёт утилита rotatelogs.exe, которая позволяет пересоздавать логи при выполнении некоторого критерия. Критерием может служить время и размер файла с логами. Для выполнения ротации логов достаточно изменить файл конфигурации Apache – httpd.conf. Вместо
ErrorLog " logs/error.log"
Используем
ErrorLog "|bin/rotatelogs.exe logs/error.log.%Y-%m-%d 86400"
Вместо
CustomLog "logs/access.log"
Используем
CustomLog "|bin/rotatelogs.exe logs/access.log.%Y-%m-%d 86400"
86400 указывает количество секунд через которое будет пересоздаваться лог-файл (то есть раз в сутки). Вместо времени можно было указать по достижении какого размера (в мегабайтах) файл должен быть пересоздан. Например при 5М файл будет пересоздаваться при достижении 5Мб. Ну и конец имени файла для идентификации меняем на понятный временной формат.
logrotate это ж как бы стандартная приблуда для любого сервера
про .exe я какбе умолчу
я какбэ умолчу, что я с виндами работаю, а без .exe logrotate на виндовом сервере пахать не будет =)
вообще странно, что по умолчанию ротация логов в апаче выключена. тот же IIS всегда делает новые лог-файлы раз в сутки.
Спасибо!
А как автоматом удалять накопившиеся логи?
Создаётся задание на удаление файла через стандартный виндовый Schedule.
Это очень полезная информация для меня. На других сайтах предлагают создавать дополнительное ПО под эту задачу, а здесь именно то что нужно и всё понятно. Автору огромное спасибо!
Под винду так, а по Unix лучше использовать newsyslog
С такими параметрами, апач не стартует почему то. Не подскажите в чем дело?
winuser,
Такая же капуста была. Покопал и нашел – в кастом-лог после времени и кавычки нужно не зыбывать аргумент common. Он вроде как обязателен. Без него в логах Виндовс такая ерунда:
The Apache service named reported the following error:
>>> CustomLog takes two or three arguments, a file name, a custom log format string or format name, and an optional “env=” or “expr=” clause (see docs) .