Рубрика:
Веб /
Веб
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
Денис Городецкий
Кто, куда, зачем пришел, или Анализируем логи веб-сервера
…Стой! Ты куда? Где тапочки, плед, кресло-качалка?
Где это все? Я за вас носить буду?...
капитан команды КВН «Утомленные солнцем» г. Сочи
Практически на каждом веб-сайте работает счетчик посещений. И это неудивительно: всем нам интересно, а кому-то еще и важно для бизнеса, сколько раз пользователи всемирной паутины посещали наш сайт.
Для компаний и владельцев интернет-ресурсов важно знать, какова информационная эффективность сайта. Поэтому возникает необходимость выбрать инструмент для сбора статистической информации. Для нас важны простота установки и настройки, количество используемых программой ресурсов, информативность получаемых данных и удобство пользования ими. Сегодня мы сравним возможности, приведем основные настройки и осветим тонкости работы наиболее часто используемых некоммерческих средств сбора статистики – анализаторов логов.
Как достичь желаемого результата
Для анализа посещаемости сайта существуют всевозможные счетчики посещений, как встраиваемые в конструкцию сайта, так и предоставляемые различными сервисами и провайдерами. Использовать данный инструмент в дополнение к другим средствам сбора статистики можно, но данная мера оправдывает себя на небольших некоммерческих проектах. Для компаний, интернет-ресурсы которых используются для продвижения своей продукции или же в рекламных целях, важно знать несколько основных моментов:
- количество посещений;
- какие разделы наиболее востребованы;
- с помощью каких запросов пользователи находят ваш сайт;
- с какого URL пользователь заходил для просмотра.
В данном случае целесообразно использовать программы, которые выдают всю необходимую информацию на основе анализа логов веб-сервера. Плюсы:
- несложная настройка большинства из них;
- возможность с помощью одной программы осуществлять сбор статистики с нескольких сайтов;
- большая информативность полученных результатов.
Webalizer
Первая из рассмотренных программ и, пожалуй, наиболее распространенная – это Webalizer (http://www.mrunix.net/webalizer). Webalizer анализирует журналы сервера и генерирует статистические данные в формате HTML на основе информации, полученной из log-файлов. Также умеет рисовать красивые гистограммы для лучшего восприятия информации. Поддерживает анализ log-файлов FTP-серверов wu-ftpd и ProFTPD, а также прокси-сервера Squid. Входит в состав дистрибутива Red Hat 7.0 и выше. Для всех остальных пакет с программой можно взять по адресу: http://www.mrunix.net/webalizer.
Для Webalizer необходимо наличие графической библиотеки GD, которая требуется для генерации встроенных графиков Webalizer. Если GD отсутствует, то вы должны инсталлировать ее. Для проверки наличия установленной библиотеки GD используйте следующую команду:
# rpm -qa | grep gd
Если пакет в системе присутствует, то на экран будет выведено его название.
Основные позиции конфигурационного файла /etc/webalizer.example.conf выглядят следующим образом:
# Определяет журнал сервера
LogFile /usr/local/etc/httpd/logs/access_log
# Определяет месторасположение отчетов Webalizer
OutputDir /usr/local/etc/httpd/usage
# Имя хоста, который мониторится
HostName www.example.com
# Задает имя файла, в котором будет содержаться информация о посещении веб-сервера на протяжении одного года
HistoryName HistoryName webalizer.hist
# Возрастающая обработка позволяет использовать несколько относительно небольших файлов журналов вместо одного
# огромного. Данная опция полезна для больших сайтов, период ротации журналов которых меньше, чем период
# ротации обыкновенных веб-серверов.
Incremental
# Задает заголовок отчета. Русские заголовки поддерживаются (при условии настроенной локализации системы)
ReportTitle
# Определяет расширение для файлов-отчетов
HTMLExtension
# Позволяет использовать безопасное соединение HTTPS для просмотра статистики
UseHTTPS
# Директива PageType указывает расширения файлов, которые будут считаться веб-страницами.
PageType htm*
PageType cgi
PageType phtml
PageType php*
PageType pl
#GraphLegend
#GraphLines
#TopSites 30
#TopKSites 10
#TopURLs 30
#TopKURLs 10
#TopReferrers 30
#TopAgents 15
#TopCountries 30
#TopEntry 10
#TopExit 10
#TopSearch 20
#TopUsers 20
#IgnoreSite bad.site.net
#IgnoreURL /test*
#IgnoreReferrer file:/*
#IgnoreAgent RealPlayer
#IgnoreUser root
Изменяя эти опции, можно манипулировать «внешним видом» полученной статистики, количеством строк в таблицах, отображать или нет диаграммы и графики, игнорировать в статистике определенные url, браузеры и т. д.
После инсталляции необходимо отредактировать файл httpd.conf и добавить следующие строки между тэгами секции <IfModule mod_alias.c> и </IfModule>:
Alias /usage/ "/home/httpd/usage/"
<Directory "/home/httpd/usage">
Options None
AllowOverride None
Order deny,allow
Deny from all
Allow from 192.168.1.0/24
</Directory>
Для запуска Webalizer может использоваться несколько параметров:
- -c файл – альтернативный файл конфигурации. По умолчанию используется файл /etc/webalizer.conf.
- -n name – имя машины, которое будет отображено при выводе статистики.
- -o каталог – каталог, в который будут помещены файлы статистики.
- -t название – заголовок отчета.
- -F (clf | ftp | squid) – тип журнала: clf или ftp или squid.
Для обеспечения сбора статистики с нескольких виртуальных серверов я рекомендую создать несколько конфигурационных файлов и добавить необходимые команды в cron.
Например, вот так:
* 2 * * * /usr/local/bin/webalizer
* 2 * * * /usr/local/bin/webalizer -c /etc/call-net.webalizer.conf
* 2 * * * /usr/local/bin/webalizer -c /etc/webalizer.hotoffice.conf
Исходя из соображений не столько безопасности, сколько нежелательного попадания данной информации в руки наших конкурентов, доступ к результатам по http рекомендуется закрыть с помощью htaccess.
Как выглядит отображаемая статистика, смотрите на рис. 1.
Рисунок 1. Стартовая страница Webalizer
Usage Summary for yourdomain.com. Этот график визуализирует суммарный трафик за последние 12 месяцев. Информация будет доступна только с момента запуска Webalizer на сайте.
Summary by Month. Эта таблица содержит месячную статистику, выраженную в цифрах, средние показатели в день и суммарные показатели за каждый месяц.
Кликнув по названию месяца (подчеркнуто красной чертой), вы сможете получить детализированный отчет за каждый месяц.
Monthly Summary. Кликнув по ссылкам, вверху страницы, вы перейдете в определенный раздел отчета. Статистический месячный отчет (имеется в виду календарный месяц) предоставляет информацию на текущий момент времени.
Hits By Response Code. Анализ кодов отклика (рис. 2) дает возможность понять, насколько хорошо работает сайт с точки зрения пользователя.
Рисунок 2. Статистика кодов отклика
- Hits: Количество файлов, запрошенных с сервера клиентами. Включает в себя все графические файлы, CGI скрипты (например, обработчики форм), а также html-страницы.
- Files: Количество файлов, отправленных сервером по запросам. Включает в себя графические файлы и html-страницы.
- Sites: Количество уникальных мест в Интернете (хостов), откуда на сайт заходят посетители. Это самый объективный показатель, по которому можно определить количество уникальных посетителей сайта.
- Kbytes: Объем информации, которая была переслана сервером веб-браузерам посетителей. Показывает количество исходящего трафика, генерируемого сайтом.
- URLs: Самые популярные страницы сайта. Этот показатель поможет понять, над какими страницами, возможно, стоит поработать.
Значения кодов:
- Код 200 – все работает должным образом.
- Код 206 – буквально – «частичное отображение содержания». Причиной этого может быть нажатие пользователем кнопки «stop» до полной загрузки страницы. Это не является ошибкой.
- Код 304 – браузер пользователя (в первую очередь Netscape) использует сохраненное содержание либо извлекает страницу из кэша. Это не является ошибкой.
- Код 404 – пользователь получил сообщение об ошибке и не увидел содержания страницы. Запрошенный пользователем документ отсутствует на сервере. Этот код также может выдаваться сервером неавторизованным пользователям, отказывая в доступе к закрытым документам.
Daily Usage Graph & Statistics. Этот раздел содержит информацию о количестве hits, files, sites и Kbytes, зарегистрированных за каждый день. Эти данные помогают определить, на какой день приходится пик трафика (рис. 3).
Рисунок 3. Статистика по дням месяца
Hourly Usage Graph & Statistics. Этот раздел содержит информацию о количестве hits, files, sites и Kbytes, зарегистрированных для каждого часа суток на протяжении календарного месяца. Эти данные помогут определить, когда на сайт приходит больше всего посетителей, и вы сможете спланировать обновление веб-страниц на менее загруженное время суток (рис. 4).
Рисунок 4. Общая статистика по времени суток
Top 30 Sites. Из этой таблицы вы узнаете, с каких серверов (хостов) на сайт заходят посетители. Вы сможете определить это по IP-адресу (набор цифр) или по DNS-адресу (набор слов; например, coral.tci.com (рис. 5).
Рисунок 5. Эта таблица показывает 30 сайтов, с которых чаще всего приходят пользователи
Top URLs. Эта таблица поможет вам понять, что конкретно посетители ищут на сайте. По крайней мере, вы сможете определить, какие страницы сайта являются наиболее посещаемыми (рис. 6).
Рисунок 6. Наиболее популярные страницы сайта
Usage by Country Graph & Chart. Данная таблица содержит информацию о том, из каких стран и доменов на сайт заходят посетители. Жители США различаются по используемым ими доменам (рис. 7):
- Коммерческие США: .com
- Сетевые: .net
- Образовательные США: .edu
- Правительственные США: .gov
Рисунок 7. Информация о принадлежности посетителей к географическому местоположению
Жителей остальных стран можно также различить по используемым расширениям. Например, украинские провайдеры чаще всего имеют окончание .ua, российские – .ru, белорусские – .by и т. д.
Достоинства Webalizer:
- Доступность пакета.
- Простота и гибкость настройки.
- Достаточная информативность.
Недостатки Webalizer:
- Не очень удобный интерфейс отображения статистики.
- Нет возможности обновлять статистику из браузера.
- Для поддержки русского языка необходимо «пропатчить» библиотеку GD и пересобрать пакет заново.
AWStats
AWStats (http://awstats.sourceforge.net) – это система представления расширенной статистики по веб-сайту. Мощная и удобная программа, которая генерирует статистику на основе логов веб-сервера и представляет ее графически. Этот анализатор работает как через интерфейс CGI, так и в командной строке и отображает всю возможную информацию, содержащуюся в логах, в виде графиков на нескольких страницах. AWStats анализирует log-файлы таких серверов, как Apache, WebStar и многих других веб-, прокси-, wap-, ftp-, почтовых и других серверов. В отличие от Webalizer, разработанного на С, AWStats написан на Perl, поэтому и работает помедленнее, но этот недостаток компенсируется куда большей информативностью полученных результатов. Более прост и понятен в установке.
Пакет можно взять по адресу http://awstats.sourceforge.net. Последовательность действий при установке очень проста, скачиваете архив, распаковываете, затем запускаете программу awstats_configure.pl. С ее помощью создается файл типа awstats.www.domain.com.conf, в котором необходимо будет явно указать следующие параметры:
# Путь к файлу с логами
LogFile="/usr/apache/logs/access_log"
# Формат логов. Поддерживаются следующие типы:
# 1 - combined log format
# 2 - Old IIS log format
# 3 - Webstar native log format.
# 4 - common log format
LogFormat=1
# Где хранить данные от анализатора
DirData="/awstatsdatadir"
# Размещение ваших CGI, сюда необходимо класть awstats.pl
DirCgi="/cgi-bin"
SiteDomain="www.domain.com"
# Разрешать или нет обновлять статистику через браузер (Wbalizer такого не позволяет)
AllowToUpdateStatsFromBrowser=1
А также при работе awstats_configure.pl в конфигурационный файл веб-сервера добавляются строки:
Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"
Alias /awstatscss "/usr/local/awstats/wwwroot/css/"
Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"
ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"
<Directory "/usr/local/awstats/wwwroot">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
После создания своего конфигурационного файла и размещения awstats.pl в /cgi-bin (права на файл необходимо сделать 755) можно начать работать двумя способами:
- обновить статистику через командную строку:
# ./awstats.pl -config=www.domain.com
- напрямую обратившись к файлу www.domain.com/cgi-bin/awstats.pl.
При использовании первого способа есть дополнительные возможности:
- обработать статистику за нужный месяц (-month=12 для декабря);
- генерировать только отдельные страницы;
- выдать html-код того, что получится прямо на STDOUT, не записывая в файл.
Подробнее о всех функциях можно узнать, задав в командной строке команду:
# ./awststs.pl -help
Внешний вид отображаемой статистики смотрите на рис. 8.
Рисунок 8. Так выглядитотображаемая статистика в AWStats
Совершенно очевидно, что интерфейс более приятный, чем в предыдущем случае, и как мы видим, статистика несколько полнее, есть информации о запросах от роботов (позволяет объективнее оценить общую посещаемость), продолжительность визитов и многое другое. На мой взгляд, программа AWStats намного лучше справляется с возложенными на нее обязанностями, чего не скажешь о Webalizer.
Достоинства AWStats:
- Очень красивый и удобный интерфейс отображения результатов сбора статистики.
- Возможность работать как из командной строки, так через браузер.
- Возможность создать выборочные статистические результаты.
- Присутствует автоматическое определение языка отображения.
Недостатки AWStats:
- Написан на Perl, за счет этого может медленно работать.
Analog
Если для вас статистика, получаемая при помощи описанных инструментов, покажется избыточной, существует еще один из анализаторов логов, называемый Analog (http://www.analog.cx). Самый простой (как мне показалось) из представленных образцов. Инсталяция и настройка заняла не больше 15 минут. Устанавливается из стандартного rpm-пакета analog6.01.i386.rpm. Домашняя страница http://www.analog.cx. После инсталляции в конфигурационном файле были изменены всего три строки:
LOGFILE /usr/local/apache/logs/access_log
OUTFILE /usr/local/apache/htdocs/report.html
HOSTNAME "myname"
Для обеспечения вывода статистики на русском (или любом из поддерживаемых языков) в конфигурационный файл достаточно добавить строку, указывающую месторасположение языкового файла, например:
LANGFILE ru.lng
или
LANGFILE /usr/etc/httpd/analog/lang/ru.lng
В первом случае указанный файл будет искаться во всех возможных местах его расположения. Во втором случае месторасположение указывается явно.
В результате мы сразу получили работающий анализатор логов веб-сервера. Analog может запускаться со множеством параметров (подробнее о них можно узнать из справочного руководства по данному продукту). После старта все полученные результаты отправляются в указанный файл, и мы, используя наш браузер, можем просмотреть полученную статистику (см. рис. 9).
Рисунок 9. Пример отображения cтатистики Analog
Как видно, полученный результат намного отличается от предыдущих образцов, но тем не менее, оценивая соотношение затраченных усилий на установку к полноте получаемых данных. Analog вполне оправдывает свое предназначение.
Достоинства Analog:
- Быстро настраиваем.
- Подойдет для тех, кому не нужна слишком большая информативность.
Недостатки Analog:
- Не слишком эргономичный интерфейс отображения статистики.
- Естественно, если подходит для не желающих получать много информации, то для тех, кому необходимо знать больше о посещаемости, данная программа не подойдет.
- Существует проблема с русскими поисковыми строками.
В представленном мной обзоре рассматривалась лишь малая часть из существующих некоммерческих решений в области анализа посещений, но, на мой взгляд, эти продукты наиболее часто используются для выполнения таких задач.
Удачи!
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|