Анализатор логов веб-доступа для хостинг-провайдеров

У меня есть сервер 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
Другие вопросы по тегам