Как я могу получить awstats для чтения этого формата журнала? - PullRequest
3 голосов
/ 09 ноября 2010

У меня есть сайт с несколькими поддоменами, все поддомены зарегистрированы в одном файле access_log. Поскольку файл может быть настолько большим, у меня есть скрипт, который объединяет каждый поддомен в отдельный файл.

У меня есть собственный формат файла журнала в Apache, например:

"\"%{Host}i\" %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""

Строка из моего файла журнала выглядит так:

"brand.mysite.com" 176.32.1.18 - - [24/Oct/2010:11:24:45 -0400] "GET /Product/lookup HTTP/1.1" 200 5585 "http://www.customerhomepage.com/brand_name.htm" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; InfoPath.1; .NET CLR 1.1.4322)"

10 записей в формате журнала, 10 записей в журнале. Проверьте.

Я пытаюсь проанализировать их с помощью awstats с помощью следующего Logformat в моем файле конфигурации awstats:

LogFormat = "\"% host_r \ "% host% logname% logname% time1% methodurl% code% bytesd% refererquot% uaquot"

Единственный вывод, который я получаю от awstats - это раздел «Ежемесячная история». Все остальное либо пустое, либо нулевое.

Мой сценарий генерации выглядит так:

rm stats/*.txt
cat access_log | grep brand > brand_access_log
perl tools/awstats_updateall.pl -configdir=wwwroot/cgi-bin -awstatsprog=wwwroot/cgi-bin/awstats.pl now
perl tools/awstats_buildstaticpages.pl -dir=stats -output=pagetype -config=brand -awstatsprog=wwwroot/cgi-bin/awstats.pl

Что я делаю не так?

1 Ответ

3 голосов
/ 10 ноября 2010

Я не понимал, что могу просто вырезать и вставить директиву Apache LogFormat (со знаком =), и это сработает, я думал, что я вынужден использовать awstats.

awstats будет использовать директиву LogFormatиз вашего файла httpd.conf и замените его идентификаторами awstats.

Я вырезал и вставил это в свой файл awstats.whwhat.conf прямо из моего Apache2 httpd.conf (а затем добавил знак = после LogFormat):

LogFormat="\"%{Host}i\" %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\""
...