[анализ статистики веб-сайта]материал подготовил: Михаил Брод 03.02.2004
Получение и обработка статистических данных о посетителях сайта может быть востребована по разным причинам. Реализация статистического анализа возможна несколькими путями. Можно поставить внешний бесплатный или коммерческий счетчик. А можно выполнять анализ самостоятельно, обрабатывая информацию, сохраняемую сервером в лог-файлах.
О внешних счетчиках на наших страницах писалось уже неоднократно. В этот раз попробуем разобраться, как и что можно проанализировать собственными силами. Любой веб-сервер при правильной его настройке способен вести запись данных об обращении к размещенным под его управлением сайтам и их отдельным элементам. Такие возможности есть, в частности, у Apache, Zope и иных серверов. Фиксируемая информация хранится в файлах, формат которых зависит от сервера. Если говорить об Apache, то лог-файлы имеют формат «Common Log Format» (CLF). В них каждая строка является записью отдельного запроса, состоящего из нескольких полей, разделенных пробелами.
Какие поля и в какой последовательности будут записываться в файл, определяется с помощью специальных директив. К основным полям относятся информация о хосте, с которого было обращение, времени обращения, статусе, возращенном отправителю запроса, количеству байт, переданных в ответ на запрос, адресе, к которому был произведен запрос. Но имеется возможность расширить сохраняемую информацию. Для этого можно использовать дополнительные директивы. Приведу некоторые из них, не входящие в формат по умолчанию.
%…a: удаленный IP-address
%…B: отправлено байт, исключая HTTP- заголовок
%…c: статус соединения после формирования ответа;
он может иметь три значения:
‘X’ = соединение разорвано до завершения передачи;
‘+’ = соединение остается активным после завершения передачи
‘-‘ = соединение закрывается после завершения передачи
%…H протокол запроса
Также доступны иные директивы, позволяющие собирать и обрабатывать информацию в том разрезе, какой может быть интересен владельцу ресурса.
В зависимости от настроек сервера, наименования лог-файлов могут быть разными. В одном могут храниться данные о посещении сервера, в другом — адреса страниц, с которых были заходы, а в третьем — ошибки, возникающие при работе сервера. Как правило, лог-файлы архивируются с определенной периодичностью — например, раз в месяц. Эти архивы также могут быть проанализированы.
большинство веб-серверов ведет статистику обращений
Для анализа логов можно написать собственную программу, а можно использовать и бесплатно распространяемые программы анализа. Их существует много, и найти их в Сети несложно. Если же речь идет о размещении на платном хостинге, то большинство хостеров дает возможность использовать уже установленные средства анализа. Одна из таких программ, довольно часто устанавливаемая в качестве дополнительного модуля Apache — программа Webalizer.
Это бесплатно распространяемая под защитой GPL программа, разработанная Бредфортом Барретом. Она работает весьма быстро и умеет строить красивые графики. Вот только для их построения требует дополнительную библиотеку GD Graphics Library, которая в состав программного продукта не входит. Ее надо либо ставить отдельно, скачав с сайта разработчиков, либо устанавливать с диска Red Hat Linux (возможно, она есть и в других модификациях Linux). Webalizer существует в виде бинарных пакетов для основных дистрибутивов Linux и FreeBSD. Однако этот путь инсталляции применим только для тех, кого устраивает английский язык генерируемых отчетов. Во всех иных случаях нужно скомпилировать программу с учетом требуемого языка (языковые файлы имеются для большинства наиболее распространенных язы
ков и входят в состав исходного пакета).
Установка и настройка программы для стандартных ситуаций особых проблем не вызывает. В состав программы входит конфигурационный файл, который требуется отредактировать под свои настройки. К основным из них относятся:
LogFile — полное имя (с путем) лога Apache; (значение по умолчанию — /var/log/httpd/access_log)
OutputDir — каталог, в который будет складываться HTML-файл со статистикой (значение по умолчанию — /var/www/html/usage)
При желании можно изменить и иные параметры. Если на сервере находится несколько виртуальных хостов, конфигурационные файлы придется делать для каждого из них.
Рассмотрим пример, что и как записывается в лог-файле: 127.0.0.1 — michael [09/Sep/2003:17:23:23 +0400] «GET /manage_top_frame HTTP/1.1» 200 1414 «http://localhost:8080/manage» «Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; MyIE2)» информация, записанная в этой строке, означает, что пользователь «michael» 9 сентября 2003 года в 17:23 по местному времени пытался получить (get) страницу «manage_top_frame» по протоколу HTTP 1.1. Запрос был выполнен корректно, о чем свидетельствует значение «200», и пользователю было отправлено 1414 байт. При этом в поле браузера пользователь ввел адрес «http://localhost:8080/manage». Последняя часть записи описывает характеристики программного обеспечения, с помощью которого пользователь подключался к серверу — тип браузера и операционной системы.
большинство программ для анализа логов — бесплатны
После установки и настройки программы ее можно запустить. Во время выполнения своих действий вы ничего не увидите — программа информацию сама не выводит, а только формирует отчеты. После завершения обработки лог-файлов введите в окне браузера URL http://localhost/usage (в том случае если вы работаете на локальном сервере, и выходные файлы сохраняются в разделе usage). И вот здесь вы должны будете увидеть сформированные отчеты. Форму их представления можно модифицировать за счет изменения параметров конфигурационного файла программы. Чтобы не приходилось каждый раз запускать программу вручную, можно добавить вызов ее через расписание CRON’а с нужной периодичностью.
В целом все выглядит неплохо, но многие пользователи высказывали и критические замечания по поводу этой программы. Так, весьма серьезная проработка возможностей и недостатков программы представлена на сайте Belmedia. Но, тем не менее, эта программа используется очень широко, для нее продолжают разрабатываться дополнения. Примером может служить разработка Geolizer, в дополнение к WebAlizer использующая библиотеку GeoIP Library, которая обеспечивает всестороннюю обработку запросов в географическом разрезе.
Но для анализа логов можно использовать не только программу WebAlizer. Существует большое количество и других программ, выполняющих эти же функции. Не вдаваясь в тонкости настройки и использования, рассмотрим некоторые из них.
Программа AWStats. Это также свободно распространяемая программа, с помощью которой можно анализировать лог-файлы не только веб-серверов, но и ftp- и mail-серверов. Может работать через CGI либо запускаться с командной строки. «Понимает» различные форматы лог-файлов — Apache, IIS, WebStar, большинства других веб-, прокси- и иных серверов. Если судить по сравнительным характеристикам, то данная программа дает более широкий диапазон отчетов, нежели WebAlizer.
Обе вышеописанные программы позволяют анализировать не только логи веб-серверов, но и прокси. Хотя для часто используемого прокси-сервера Squid рекомендуется использовать специальную программу анализа — SARG. Этот пакет генерирует отчеты в HTML-формате по пользователям, IP-адресам, объему информации и времени.
Многие хостеры предоставляют пользователям средства для анализа посещаемости
Нельзя не сказать и о такой программе, как WebHound компании SAS. Предназначена программа для анализа трафика веб-сайта. Принцип ее работы отличен от ранее рассмотренных программ. Она не выполняет обработку лог-файлов заново при каждом запуске. Вместо этого программа проводит анализ логов и сформированные по определенным администратором правилам данные записывает в хранилище данных. Пользователи могут работать с этой информацией в рамках статических и динамических отчетов, которые предоставляет WebHound. С помощью WebHound можно создавать настраиваемые отчеты и просматривать их в графической или табличной форме через веб-браузер. С их помощью можно проанализировать, сколько посетителей было на сайте, сколько времени они провели, просматривая страницы, и какие именно. Можно подготовить отчет о перемещениях посетителей по сайту. Если этот сайт является электронным магазином, можно выполнить анализ, завершился ли просмотр сайта покупкой.
WebHound предлагает отчеты и графики, которые показывают:
к каким из страниц пользователи обращаются чаще всего;
на какие страницы в первую очередь возвращаются посетители, ранее уже побывавшие на сайте;
демографические характеристики посетителей;
среднее время ответа сервера;
на какие из страниц веб-сайта создано больше всего ссылок, где реклама является самой эффективной или может таковой быть.
WebHound поддерживает различные форматы журналов регистрации — такие, например, как Common Log Format (формат, используемый, к примеру, сервером Apache), Extended Log Format (стандарт консорциума W3С, используемый сервером IIS компании Microsoft), Microsoft Original Format, Netscape Log Format, Microsoft Proxy Server и другие. WebHound автоматически определяет формат журнала регистрации, считывает заголовок (когда он есть) и определяет, какие поля присутствуют в журнале регистрации. WebHound может быть настроен таким образом, что считываться, обрабатываться и храниться будут только нужные поля из журналов регистрации веб-сервера.
Стандартные отчеты, которые предоставляет программа, можно просматривать с помощью специального приложения — WebHound Report Viewer. С его помощью, впрочем, можно создавать и динамические отчеты. К стандартным отчетам относятся следующие:
Web Traffic (сетевой трафик);
Visitors (посетители)
Exploratory Analysis (исследовательский анализ).
Ну, а для чего нужна информация, получаемая с помощью программ анализа лог-файлов — должно быть понятно. Ведь эта информация позволяет проанализировать качество организации сайта, наиболее популярные разделы, определить, где лучше размещать рекламу и многое иное.