Анализатор логов веб-доступа для хостинг-провайдеров
У меня есть сервер nginx, он прокси-запрос на основе Host
поле. У меня есть общий журнал для этого, потому что регистрация каждого хоста выполняется на сервере, на котором я делаю proxy_pass.
Итак, есть ли решение для анализа и просмотра комбинированной статистики?
До сих пор пробовал:
- Awstats
- Webalizer
- goaccess
- посетители
Все перечисленные решения требуют от меня создания отдельного отчета (возможно, из одного журнала) для каждого сайта. Я хочу видеть полный отчет моего access.log для всех виртуальных хостов, генерация отдельного отчета для каждого виртуального хоста - беспорядок - хостов много, они быстро меняются.
Был полу-решение: обмануть webalizer и заставить его обращаться с Host как с посетителем. Не очень удобно.
1 ответ
Уловка, которую я использовал в прошлом, - это простой препроцессор для объединения хоста и URL-адреса запроса, который затем будет работать в любом анализаторе журналов.
Т.е. измените стандартный формат комбинированного-access_log, который, по-видимому, поддерживает большинство анализаторов, чтобы включить хост. Затем перед запуском вашей статистики запустите препроцессор; так что бы нормально выглядело так:
199.58.86.209 - - [25/Jul/2014:16:12:41 +0200] "GET /robots.txt HTTP/1.0" 200 291
199.58.86.209 - - [25/Jul/2014:16:12:44 +0200] "GET /robots.txt HTTP/1.0" 200 291
который будет агрегирован как два попадания в файл /robots.txt, преобразуется таким образом, что вы увидите два уникальных URL:
199.58.86.209 - - [25/Jul/2014:16:12:41 +0200] "GET www.example.com/robots.txt HTTP/1.0" 200 291
199.58.86.209 - - [25/Jul/2014:16:12:44 +0200] "GET web.example.org/robots.txt HTTP/1.0" 200 291