Ротация логов веб сервера Apache

Самый первый скрипт ротации логов был очень примитивным и непрактичным.

Началось все с того что в один прекрасный день в директории /var закончилось место и сервер начал сбоить. В процессе выяснения кто скушал все свободное место виновником оказались логи веб сервера Apache. На один из виртуальных хостов в течении недели была сильная атака спам-ботов что призвело до ужасно быстрого разростания обьема access_log.

Руководствуясь первой примитивной потребностью хоть как-то защитить веб сервер от подобных инцидентов я написал скриптик который 1 раз в неделю обнулял лог файлы по виртуальным хостам.

Как Вы сами понимаете это очень примитивно и неправильно.  Отсутсвовала полноценная ротация логов, а вместо него простое очищение файла в определенное время. Уже тогда я прекрасно понимал что это не выход их ситуации.

И вот только сейчас я вернулся к данной проблеме и теперь имею новый скрипт ротации логов веб сервера Apache. На этот раз скрипт запускается как и прежде по крону 1 раз в неделю, но уже не просто удаляет безвозвратно логи, а архивирует их и сохраняет в специально заданный каталог. К тому же появилась удобная возможность конфигурировать пути расположения для каждого вирутального хоста в отдельности.

Из недостатков и наработок на будущее:

  • по прежнему нету полного понятия ротации логов. Файлы складываются срезами в период 1 неделя до бесконечности. В следующих версиях нужно реализовать полную ротацию с возможностью указания периода хранения старых лог файлов
  • было бы удобно если бы настройки читались с SQL базы

You may also like...

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