Логи Apache для отдельных файлов

ПОскольку на сервере вращается довольно большое количество различных доменов и трафика там достаточно много, то за день жизни Apache накапливается порядка 1Гб логов. Большинство записей интереса не представляют(например, картинки, которые являются частью дизайна) и для экономии места(а также для увеличения скорости анализа логфайлов) необходимо проводить избирательное логирование запросов.
Настроить это довольно таки просто:

Например, мы хотим не записывать обращения к gif файлам(всем) и игнорировать все файлы папки /design

В файле конфигурации Апач добавляем строки

SetEnvIf Request_URI “\.gif$” dontlog
SetEnvIf Request_URI “^/design/” dontlog

Эти строки устанавливают переменную окружения dontlog при наступлении желательных событий(в данном случае соотвествие строки запроса регулярному выражению).

Дальше ищем строчку CustomLog, которая задает формат логов и в конец добавляем условие env!=dontlog. После чего данная строчка будет выглядеть примерно вот так:

CustomLog logs/access_log combined env!=dontlog

Кроме строки запроса логи можно фильтровать по следующим параметрам:

  • Remote_Addr – IP адрес клиента. Мы можем не логировать посетителей с определенных адресов.
  • Server_Addr – IP адрес сервера, обрабатывающего текущий запрос
  • Request_Method – метод запроса(GET,POST)


Digital Ocean
Провайдер облачного хостинга - заведи свой виртуальный сервер всего за $5 в месяц !

2 Comments

  1. noma

    env!=dontlog – не правильно.
    env=!dontlog – правильно.

Leave a Reply