tm

   Зарисовка о логировании в Apache.

   По-умолчанию, файл лога Apache содержит в себе все события и от любого обратившегося к Web-серверу. Будь то пользователь или поисковый робот (бот, паук и как их там ещё называют). И тех и других может быть огромное количество и когда они будут храниться в одном файле, логи станет невозможно анализировать. Конечно, можно ловко орудовать всякими grep и выпендрёжными регулярными выражениями для сортировки, но всё же куда более проще искать действия ботов в одном файле, а действия пользователей в другом. Для этого необходимо немного поправить файл конфигурации для виртуального хоста. Вообще, файлы конфигурации могут находиться в нескольких директориях, в зависимости от настройки Apache. Например, /etc/apache2/conf-available/ и /etc/apache2/site-available/. Я приведу пример когда файл конфигурации расположен в директории /etc/apache2/site-available/.

nano /etc/apache2/sites-available/site.ru.conf
<VirtualHost *:80>
ServerName site.ru
ServerAlias www.site.ru
ServerAdmin Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.
DocumentRoot /path/to/site/
ErrorLog ${APACHE_LOG_DIR}/error-site.log
CustomLog ${APACHE_LOG_DIR}/access-site.log combined env=!botlog
SetEnvIf User-agent "bot|baidu" botlog
SetEnvIf User-agent "bot|bingbot" botlog
SetEnvIf User-agent "bot|AhrefsBot" botlog
SetEnvIf User-agent "bot|YandexBot" botlog
SetEnvIf User-agent "bot|Googlebot" botlog
SetEnvIf User-agent "bot|MJ12bot" botlog
SetEnvIf User-agent "bot|Yahoo" botlog
CustomLog ${APACHE_LOG_DIR}/bot-site.log combined env=botlog
</VirtualHost>

 

А теперь немного комментариев к конфигурации. До 6 строки значения знаем как Отче наш, да и шестая строка говорит о том, что лог с ошибками пишется в такой-то файл. Начиная с 7 строки начинаются изменения - в конец строки добавляется env=!botlog, что говорит о том, что в файл лога пишется всё, за исключением событий с маркером botlog. Маркером botlog мы пометили события, где User-agent являются наши боты. Предпоследняя строчка, говорит о том, что в этот лог пишем все события помеченные маркером botlog. Не забываем рестартонуть наш Apache:

sudo service apache2 restart

Файл логов создастся сам.

Комментарии отключены