Допустим, что некоторая организация арендует сервер под управлением FreeBSD 7.2, на котором размещает свой корпоративный сайт (он имеет имя firm.com), обслуживаемый веб-сервером Apache 2.2. Лог доступа к сайту пишется в файл /var/log/http-firm.com-access.log.
Разумеется, можно, используя этот лог, генерировать достаточно интересные отчёты о посещаемости сайта. Для этого существует множество инструментов, например webalizer, awfull, awstats и ряд других. Наиболее функциональным и интересным решением является awstats, который позволяет исключить из статистики трафик, созданный роботами, и имеет ряд других полезных функций.
Отчёты awstats выглядят примерно так:
Если вас не заинтересовал awstats, то дальше можете не читать. Если же интересен, то продолжайте:)
Для начала установим awstats:
cd /usr/ports/www/awstats && make install clean
Далее добавим в зону firm.com домен stat, A-запись которого будет указывать на IP-адрес нашего сервера. Как только домен будет создан - перейдём в директорию /usr/local/etc/apache22/Includes на сервере и создадим файл vhost_stat.conf следующего содержания:
<Virtualhost *> # Алиас для jar-файлов Alias /awstatsclasses "/usr/local/www/awstats/classes/" # Алиас для таблиц стилей Alias /awstatscss "/usr/local/www/awstats/css/" # Алиас для путей к иконкам Alias /awstatsicons "/usr/local/www/awstats/icons/" # Алиас для CGI-скриптов ScriptAlias /awstats/ "/usr/local/www/awstats/cgi-bin/" # Имя виртуального хоста ServerName stat.firm.com # Корень виртуального хоста DocumentRoot /usr/local/www/awstats # Настройки доступа к директории <Directory /usr/local/www/awstats> Allow from all AllowOverride All </Directory> # Логи виртуального хоста CustomLog "/var/log/httpd-stat.firm.com-access.log" combined ErrorLog "/var/log/httpd-stat.firm.com-error.log" </Virtualhost>
После этого перезпускаем веб-сервер:
apachectl restart
Далее переходим в директорию /usr/local/www/awstats/cgi-bin и копируем файл awstats.model.conf в awsats.firm.com.conf:
cp awstats.model.conf awstats.firm.com.conf
Далее в файле нужно указать корректный путь к лог-файлу нашего сайта. За это отвечает параметр LogFile. В нашем файле конфигурации он должен иметь вид:
LogFile="/var/log/http-firm.com-access.log"
Далее нам нужно ещё указать домен нашего сайта в поле SiteDomain:
SiteDomain="firm.com"
На этом написание конфигурации заканчивается. Теперь нужно настроить периодическое обновление статистических данных, для этого в файл /etc/crontab нужно добавить строку:
55 * * * * root /usr/local/www/awstats/cgi-bin/awstats.pl -update -config=firm.com > /dev/null
Теперь статистические данные будут обновляться раз в час.
Статистику полезно закрыть паролем, для этого создадим файл /usr/local/www/awstats/.htaccess следующего содержания:
AuthType Basic AuthName "Private zone. Only for administrator!" AuthUserFile /usr/local/www/awstats/.htpasswd require valid-user
После чего нужно создать файл /usr/local/www/awstats/.htpasswd и с помощью утилиты htpasswd добавить в него пользователей. Файл можно создать командой:
touch /usr/local/www/awstats/.htpasswd
Добавим (для примера) пользователя root с паролем 123:
htpasswd -b /usr/local/www/awstats/.htpasswd root 123
Теперь статистику посещаемости ресурса можно просматривать по адресу http://stat.firm.com/awstats/awstats.pl?config=firm.com. Если вам это кажется неудобным, то можно создать файл /usr/local/www/awstats/index.html, который будет индексным для домена stat.firm.com и будет переадресовывать пользователя на страницу статистики. Содержимое файла будет примерно таким:
<html> <head> <meta http-equiv="refresh" content="0; url=/awstats/awstats.pl?config=firm.com"> </head> <body> <p align=center><a href="/awstats/awstats.pl?config=firm.com">click here</a></p> </body> </html>
На этом всё. Приятной работы!
Корректор: Регина Васильева (reggi86@mail.ru)
Anonymous 2013-04-02 01:24:42 (#)