Продаются котята породы Девон-рекс. Родители - чемпионы данной породы.
Переход к предыдущей публикации А говорят, что они хищники… Cистемные сетевые утилиты через интерфейс Wordpress (ping, whois, dig и т.д.). Простые PHP скрипты Переход к следущей публикации
 
Я хочу добавить Daemony`s Live RSS ленту в Google Reader Я хочу добавить Daemony`s Live RSS ленту в Яндекс.Лента Я хочу получать RSS ленту Daemony`s Live Blog по электронной почте Я хочу добавить Daemony`s Live RSS ленту в My Yahoo Я хочу добавить Daemony`s Live RSS ленту в My MSN
Шкафы для детским комнат на kupe.ru

 

Добавить комментарий

Анализ логов веб сервера и представление статистики посещаемости веб сайта посредством AwStats

 
 

AWStats | Анализ логов веб сервера и наглядное представление статистики посещаемости веб сайта. Нормальное явление, что каждый владелец веб сайта желает знать сколько людей к нему приходит на сайт, откуда приходит, что больше всего читает, сколько времени в целом проводит на сайте. Для удовлетворения такого любопытства было придумано масса средств для сбора статистики. Множество сервисов в Сети предлагает Вам поставить на своем сайте счетчик, который обычно представляет собой JavaScript и который, при входе посетителя на сайт, подгружается в его веб браузер и сообщает сервису статистики всю необходимую информацию о посетителе.

Но не всегда такая статистика точна. Дело в том, что многие посетители используют прокси серверы, которую в свою очередь могут запрещать передачу javascript’ов и попросту вырезают их при отдаче контента. Другие браузеры могут быть настроены на то, чтобы не загружать ничего лишнего, кроме самого контента с запрашиваемого ресурса… Статистика получается размытой и неточной.

Пожалуй, самый точный способ учета посетителей сайта - анализ логов веб сервера и подсчет всех необходимых параметров исходя из записей в них. Этот способ, правда, не предоставит Вам информации о том, какое разрешение экрана используют посетители, глубину цвета их мониторов, информацию о поддержке браузерами flash и java. Но зато Вы получите самую точную статистику количества уникальных посетителей, просмотров страниц и всего того, что фиксирует в логах Ваш веб сервер.

Существует несколько разных программ-анализаторов логов доступа к веб сайту. Я в своей практике использовал Webalizer и AWStats. Последний мне, честно говоря, понравился больше и я использую для самостоятельного подсчета статистики именно его. Про конфигурирование AWStats я и хотел бы рассказать.

Итак, AWStats - это открытое программное обеспечение, написанное на языке Perl, которое предназначено для распарсивания логов доступа к веб серверу и генерации отчетов, которые можно просмотреть в виде веб-страниц. Вообще, посредством AWStats можно собирать статистику не только веб сервера. AWStats также вполне способен распарсить логи почтового и ftp серверов. Но здесь эти варианты пока что рассматривать не будем.

Имеем сервер Apache и установленный perl 5.8.8 на операционной системе FreeBSD 6.3. От этого и будем отталкиваться. AWStats можно установить из коллекции портов.

# whereis awstats
 awstats: /usr/ports/www/awstats
# cd /usr/ports/www/awstats
# make install clean

Вылезет синее окошко, в котором будет предлагаться всего одна опция для установки: "Использование IPv6 протокола". Я ее не отмечаю, ибо до IPv6 нам еще не скоро светит добраться. Жмем "ОК" и ждем окончания процесса установки.

По окончании вылезет сообщение, в котором будет краткая инструкция по подключению AWStats к нашему веб-серверу:

**************************************************************
Please add the following to your apache config, and restart.
#
# Directives to allow use of AWStats as a CGI
#
Alias /awstatsclasses "%%PREFIX%%/www/awstats/classes/"
Alias /awstatscss "%%PREFIX%%/www/awstats/css/"
Alias /awstatsicons "%%PREFIX%%/www/awstats/icons/"
ScriptAlias /awstats/ "%%PREFIX%%/www/awstats/cgi-bin/"
#
# This is to permit URL access to scripts/files
# in AWStats directory.

<Directory "%%PREFIX%%/www/awstats/">
   Options None
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>

**************************************************************

If you are upgrading from AWStats 6.4 or older,
please note the following:

If you used the geoip plugin, you must edit your
AWStats config file to change the line
 LoadPlugin="geoip GEOIP_STANDARD"
into
 LoadPlugin="geoip GEOIP_STANDARD /pathto/GeoIP.dat"

**************************************************************

Последний абзац в двух словах говорит нам о том, что можно использовать плагин GeoIP, который позволяет выдавать статистику по странам. Данная статистика собирается с помощью базы данных GeoIP.dat. Получить его можно установив программу GeoIP. Кстати, для использования возможностей GeoIP, хоть это и не написано, но нам также понадобится Perl модуль p5-Geo-IP, иначе AWStats не сможет использовать данную функцию. Устанавливаем:

# whereis p5-Geo-IP
 p5-Geo-IP: /usr/ports/net/p5-Geo-IP
# cd /usr/ports/net/p5-Geo-IP
# make install clean
...

# whereis GeoIP
 GeoIP: /usr/ports/net/GeoIP
# cd /usr/ports/net/GeoIP
# make install clean

Все. Теперь все готово для того, чтобы приступить к конфигурированию нашего AWStats.

По-умолчанию, AWStats при установке копирует свои файлы в каталог /usr/local/www/awstats. В нем хранятся каталоги cgi-bin - в котором находится основной скрипт AWStats - awstats.pl; каталоги css, icons - для оформления генерируемых веб страниц и т.д. В настоящий момент нас будет интересовать файл /usr/local/www/awstats/cgi-bin/awstats.model.conf, который является основной моделью для построения конфигов awstats под Ваши сайты. Комментарии в файле начинаются так:

# AWSTATS CONFIGURE FILE 6.6
#--------------------------------------------------------------
# Copy this file into awstats.www.mydomain.conf and edit
# this new config file to setup AWStats (See documentation
# in docs/ directory). The config file must be in /etc/awstats,
# /usr/local/etc/awstats or /etc (for Unix/Linux) or same
# directory than awstats.pl (Windows, Mac, Unix/Linux...)
# To include an environment variable in any parameter (AWStats
# will replace it with its value when reading it), follow
# the example:
# Parameter="__ENVNAME__"
# Note that environment variable AWSTATS_CURRENT_CONFIG is
# always defined with the config value in an AWStats running
# session and can be used like others.
#--------------------------------------------------------------

Вообще, текущая версия AWStats - 6.7, тем не менее в дистрибутиве при установке из портов лежит конфиг для версии 6.6. Видать существенных отличий в этих версиях нет. Комментарии гласят: "Скопируйте этот файл в файл awstats.адрес_моего_сайта.conf и отредактируйте его для новой установки AWStats. (Почитайте документацию в каталоге doc/). Конфиг нового сайта следует поместить в один из следущих каталогов: /etc/awstats, /usr/local/etc/awstats или /etc (для Unix пользователей). Либо в ту же директорию, где лежит файл awstats.pl (для Windows, Mac, Unix…). Для включения переменных окружения с любыми параметрами (AWStats при чтении подставит им их значения), следуйте следущему шаблону: Parameter="__ENVNAME__". Учтите, что переменная окружения AWSTATS_CURRENT_CONFIG определена всегда согласно значению конфигурационного файла и может быть использована наравне с другими".

Вобщем, поступаем здесь таким образом. Для начала создаем каталог /etc/awstats, выставляем на него соответствующие права и копируем в него файл конфигурации нашего сайта. Сайт называется test.daemony.org, а файлы сайта размещены в каталоге /usr/local/www/test.daemony.org/

# mkdir /etc/awstats
# cp /usr/local/www/awstats/cgi-bin/awstats.model.conf /etc/awstats/awstats.test.daemony.org.conf
# chmod -R o-rwx /etc/awstats && chown -R www:www /etc/awstats

Приступим к редактированию конфига, который сам по себе довольно немаленький. А потому, подробно я изложу здесь только его основную конфигурацию, дабы можно было awstats заставить работать.


Эта часть публикации доступна только зарегистрированным посетителям!
Пожалуйста, войдите [Login] или зарегистрируйтесь [Register].


Был показан пример основной конфигурации. С такими параметрами AWStats уже может быть запущен. Но я бы исправил еще несколько опций в дополнительных параметрах файла. В первую очередь подключим наш плагин GeoIP. Воспользуйтесь поиском по файлу и найдите в нем такую строку:

# LoadPlugin="geoip GEOIP_STANDARD /pathto/GeoIP.dat"

Раскомментируйте ее и укажите путь к файлу с базой GeoIP.dat. Обычно это выглядит так:

LoadPlugin="geoip GEOIP_STANDARD /usr/local/share/GeoIP/GeoIP.dat"

Еще следует подумать о том, что Вы будете также посещать свой сайт, причем гораздо чаще других посетителей, а потому может быть стоит исключить свой IP из статистики, дабы не портить ее? Я на собственном опыте убедился что эта мера не лишняя. Правда уже было поздно, но лучше поздно чем никогда. Ищем в конфиге строчку:

SkipHosts=""

и меняем ее на:

SkipHosts="server.myhome.com 192.168.0.75"

и так далее. Через пробел можно указывать IP адреса либо имена хостов заходы на сайт с которых не будут обсчитываться. Аналог этой опции:

 SkipFiles=""

Только в данном случае из подсчета статистики исключаются определенные файлы сайта. Тоже не помешает, уж поверьте.

 SkipFiles="/some/script-for-useronline-stat.php /admin.php"

Страницы также указываем через пробел. Можно использовать регулярные выражения.

Антипод опции SkipHosts - это:

 OnlyHosts=""

Можно настроить awstats на обсчет статистики только с одного какого-то IP/хоста, указав в OnlyHosts="" имя или IP адрес того хоста, которого будете обсчитывать. Можно использовать регулярные выражения.

Антипод опции SkipFiles:

 OnlyFiles=""

Здесь наоборот можно настроить awstats на обсчет статистики только судя по загрузке какого-то одного или нескольких файлов. Можно использовать регулярные выражения.

Вот в принципе и все, что нужно поменять в основном конфиге AWStats. Если Вам не понравится стандартный стиль страницы статистики, Вы можете поменять в нем все, что угодно, редактируя соответствующие параметры.

Добавьте в конфигурационный файл веб сервера Apache httpd.conf в контейнер того виртуального хоста (test.daemony.org), для которого необходим обсчет статистики, следущие строки:

  Alias /s/awstatsclasses "/usr/local/www/awstats/classes/"
  Alias /s/awstatscss "/usr/local/www/awstats/css/"
  Alias /s/awstatsicons "/usr/local/www/awstats/icons/" 

  ScriptAlias /s/awstats "/usr/local/www/awstats/cgi-bin/"

  <Directory "/usr/local/www/awstats/cgi-bin/">
   Options None
   AllowOverride None
   Order allow,deny
   Allow from all
  </Directory>

И перезапустите Apache через apachectl restart. Создадим каталоги, в которых будут храниться файлы данных AWStats:

# mkdir /usr/local/www/test.daemony.org/htdocs/s/
# mkdir /usr/local/www/test.daemony.org/htdocs/s/awsdata/
# chown -R www:www mkdir /usr/local/www/test.daemony.org/htdocs/

Сделаем первый запуск AWStats из командной строки, для того, чтобы он смог сгенерировать первые отчеты и все необходимые для работы файлы. Делается это так:

# cd /usr/local/www/awstats/cgi-bin/
# ./awstats.pl -config="test.daemony.org"

В параметр -config подставляется именно имя сайта. AWStats сам найдет для него нужный конфиг. Если все прошло успешно, AWStats покажет сколько он записей нашел и сколько добавил в свою базу. При первом запуске может появиться ошибка о том, что не найдены некоторые файлы. Но это нормально. В последствии ненайденные файлы будут созданы и ругани не будет.

Проверьте каталог с данными AWStats - у меня это /usr/local/www/test.daemony.org/htdocs/s/awsdata/ - в нем должен после первого запуска появиться файл статистики. Его имя будет выглядеть в формате: "awstats%MM%YYYY.sitename.txt". Имя содержит в себе информацию об отчетном периоде. Например: awstats012008.test.daemony.org.txt - говорит о том, что хранится информация о посещаемости сайта test.daemony.org за январь 2008 года.

Посмотреть статистику теперь можно будет по адресу http://test.daemony.org/s/awstats/awstats.pl Запоминать такой URL сложно, а потому для упрощения жизни положим в каталог /usr/local/www/test.daemony.org/htdocs/s/ файл index.html вот такого содержания:

 <html>
  <head>
  <meta http-equiv="Refresh" content="0; url=awstats/awstats.pl">
   <title></title>
  </body>
 </html>

Можно конечно и более красивое решение придумать, например, через mod_rewrite или просто php редирект использовать, но редирект HTML’ом будет работать на любом хостинге, даже на таком где отключен mod_rewrite и php.

Вот теперь другое дело. Запомнить адрес страницы статистики http://test.daemony.org/s/ гораздо проще. Пройдя по такой ссылке Ваш браузер будет перенаправлен по нужному URL к скрипту.

Не будем забывать о безопасности. Зачем демонстрировать всем подряд статистику Вашего сайта? Тем более, поскольку AWStats написан на Perl, отнести его к категории безопасных скриптов скорее нельзя, чем можно. Воспользуемся http авторизацией для того, чтобы давать доступ к статистике только по паролю для избранных пользователей. В простом виде это можно реализовать так.

Создаем каталог, в котором будет храниться файл с паролями, создаем пустой файл для паролей, выставляем все нужные права:

# mkdir /usr/local/www/test.daemony.org/pw/
# touch /usr/local/www/test.daemony.org/pw/stat.pwd
# chmod -R o-rwx /usr/local/www/test.daemony.org/pw/
# chgrp -R www /usr/local/www/test.daemony.org/pw/

Теперь можно добавить пользователя в файл паролей. Для этого используем утилиту htpasswd, которая идет в комплекте вместе с Apache:

# cd /usr/local/www/test.daemony.org/pw/
# htpasswd site-stat Daemony
New password:
Re-type new password:
Adding password for user Daemony

Закрываем на пароль директорию /usr/local/www/test.daemony.org/htdocs/s - добавим в .htaccess файл следущие директивы:

# На всяк случай запретим листинг директории
 Options -Indexes

# Указываем путь к файлу с паролями пользователей
# Следите, чтобы права на папки и файл позволяли
# Apache читать его.
 AuthUserFile /usr/local/www/test.daemony.org/pw/stat.pwd

# Файл с паролями групп пользователей нет. Директиву в null
 AuthGroupFile /dev/null

# Текст, который отобразится в окошке ввода пароля в браузере.
 AuthName "Access Denied!"

# Тип авторизации. Basic значит "открытый", "основной".
# Кстати, пароли передаются в этом случае в открытом виде.
 AuthType Basic

# Параметры использования файла паролей.
# Нижеследущее указывает на то, что можно допускать любого
# пользователя из файла с паролями.
  <limit GET POST>
   require valid-user
  </limit>

Таким же самым образом, следует защитить каталог /usr/local/www/awstats/cgi-bin/, иначе, при запросе http://test.daemony.org/s/ пароль будет запрашиваться, а при прямом обращении к скрипту по адресу http://test.daemony.org/s/awstats/awstats.pl не будет. Закрыть этот каталог, на мой взгляд, для большей безопасности лучше через httpd.conf. Добавим в контейнер с нашим VirtualHost‘ом test.daemony.org аналогичные строки в описание прав доступа к каталогу /usr/local/www/awstats/cgi-bin/.

<Directory "/usr/local/www/awstats/cgi-bin/">

 Options Indexes FollowSymlinks MultiViews
 AllowOverride None
 Order allow,deny
 Allow from all

  AuthUserFile /usr/local/www/test.daemony.org/pw/stat.pwd
  AuthGroupFile /dev/null
  AuthName "Access Denied!"
  AuthType Basic

 <limit GET POST>
  require valid-user
 </limit>

</Directory>

Перезапустим Apache. Теперь только пользователь Daemony с паролем, который ему установили, будет иметь доступ к статистике.

Для постоянного автоматического обновления статистики, можно добавить задание по запуску скрипта awstats.pl в /etc/crontab. Обновлять статистику можно настолько часто, насколько Вы сами пожелаете. Но я предпочитаю всего раз в час. Это оптимальный вариант, поскольку с опцией AllowToUpdateStatsFromBrowser=1 (включено) обновить статистику можно будет через браузер при необходимости в любое время.

###
WHOME=/usr/local/www
#
59 * * * * www $WHOME/awstats/cgi-bin/awstats.pl >/dev/null 2>&1

Вот теперь уж, пожалуй, точно все. :) Вроде ничего не забыл?…

Ну, а вот так выглядит сама статистика AWStats (нажмите на скриншоты, чтобы увеличить; картинки будут открываться в новом окне):

Статистика AWStats | История за месяц

Статистика AWStats | История за месяц


Статистика AWStats | По дням месяца

Статистика AWStats | По дням месяца


Статистика AWStats | По дням недели

Статистика AWStats | По дням недели


Статистика AWStats | По часам

Статистика AWStats | По часам


Статистика AWStats | Страны

Статистика AWStats | Страны


Статистика AWStats | Роботы (Пауки) посетители

Статистика AWStats | Роботы (Пауки) посетители


Статистика AWStats | Операционные системы

Статистика AWStats | Операционные системы


Статистика AWStats | Браузеры

Статистика AWStats | Браузеры

 

Ключевые слова


| | | | | | | | | | | | | |
 

Публикации по теме

Элитная мебель ведущих итальянских фабрик.
Суббота, 1 марта, 2008 21:52:47 EET

Подпишись на RSS ленту и будь в курсе обновлений

Я хочу добавить Daemony`s Live RSS ленту в Google Reader Я хочу добавить Daemony`s Live RSS ленту в Яндекс.Лента Я хочу получать RSS ленту Daemony`s Live Blog по электронной почте Я хочу добавить Daemony`s Live RSS ленту в My Yahoo Я хочу добавить Daemony`s Live RSS ленту в My MSN

взлом вконтакте Рекомендуем: жуткие новости на bugaka.ru
Я хочу подписаться на Daemony`s Live RSS ленту комментариев к записям

Добавить комментарий

Быстрая вставка HTML тегов

Подсказки:
  • Для вставки фрагментов кода используйте "быстрый" тег <PRE></PRE>.
  • Для цитирования фрагментов текста используйте "Цитата".
  • Поддерживаются также другие HTML теги.

Поля, помеченные красной "звездочкой" обязательны к заполнению.