Допустим, что некоторая организация арендует сервер под
управлением FreeBSD 7.2, на котором размещает свой корпоративный сайт (он имеет
имя firm.com), обслуживаемый веб-сервером Apache 2.2. Лог доступа к сайту
пишется в файл /var/log/http-firm.com-access.log.
Разумеется, можно, используя этот лог, генерировать достаточно
интересные отчёты о посещаемости сайта. Для этого существует множество
инструментов, например webalizer, awfull, awstats и ряд других. Наиболее
функциональным и интересным решением является awstats, который позволяет
исключить из статистики трафик, созданный роботами, и имеет ряд других полезных
функций.
Отчёты awstats выглядят примерно так:
Если вас не заинтересовал awstats, то дальше можете не читать.
Если же интересен, то продолжайте:)
Для начала установим awstats:
/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.frim.com-access.log" combined
ErrorLog "/var/log/httpd-stat.frim.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>
На этом всё. Приятной работы!