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

Каковы плюсы и минусы logrotate и rotatelogs с Apache?

Apache предоставляет инструмент под названием rotatelogs, который не перезапускает apache при ротации журналов, что происходит с logrotate. У меня недостаточно опыта, чтобы говорить, достаточно ли этого критерия для использования ротации журналов вместо логротации.

Мои вопросы: есть ли у кого-нибудь реальный жизненный опыт использования любого из этих двух инструментов, и каков был бы ваш вклад?

Что бы вы порекомендовали и почему?

Я бы порекомендовал большинству людей logrotate, поскольку именно он будет вращать все остальные журналы (KISS: Keep it Simple Stupid). Logrotate не перезапускает весь Apache, а просто посылает ему сигнал, говорящий о необходимости повторно открыть все его файлы журнала и перезапустить дочерние элементы. Этим сигналом может быть SIGHUP, который вызывает немедленный перезапуск дочерних узлов (что прерывает загрузку), или SIGUSR1, который выполняет плавный перезапуск. С SIGUSR1 вы должны отложить обработку журнала до тех пор, пока не решите, что все дети умерли бы естественным путем. В любом случае, вы, вероятно, захотите проанализировать свои журналы и рассчитать его для периода наименьшего трафика в день или неделю.

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

Как и условное ведение журнала, конвейерные журналы - очень мощный инструмент, но их не следует использовать там, где доступно более простое решение, такое как постобработка в автономном режиме.

Очевидно, не используйте ведение журнала по конвейеру, если вы этого не сделаете. необходимость Это. Раньше я использовал конвейерное ведение журнала как хитрый способ фильтрации журналов, и у меня не было проблем.

Я использовал оба раньше. Я обнаружил, что использование rotatelogs - очень полезный инструмент для управления журналами доступа, и если вы не хотите простоев Apache. На сайте большого объема я бы порекомендовал это, единственная проблема, которую я обнаружил, заключалась в том, что если вы хотите управлять журналами, вам понадобится отдельный скрипт cron'd для очистки или перемещения журналов на сервер резервного копирования, очевидно, это зависит от требования. С logrotate у вас есть больше возможностей для обработки файлов журналов, единственная проблема заключается в том, что когда logrotate запускается, как описано в предыдущем ответе, вам нужно будет перезапустить apache.

В основном все сводится к выбору, если вам нужно, чтобы apache работал без перерывов, тогда ротация журналов с внешним скриптом cron для управления, иначе logrotate будет достаточно. Только не забудьте настроить logrotate cron так, чтобы журналы не менялись при большом трафике.

Наконец, если вы хотите, чтобы журнал apache был в вашем системном журнале, вы всегда можете использовать команду logger, которая находится в Linux на основе Redhat.