Установка AWStats

Homepage: AWStats

Advanced Web Statistics (AWStats) – это мощный анализатор журналов веб-сервера, написанный на perl показывает всю статистику веб включая визитеров, уникальных визитеров, страницы, количество кликов, часы пик, поисковые сервисы, ключевые слова, использованные для поиска вашего сайта, роботов, нерабочие ссылки и другое. Дает более детальную информацию и графики чем Webalizer, и прост в использовании. Работает с различными форматами журналов из CGI-сценария или командной строки. Поддерживает более 30 языков.

Установка и настройка AWStats

Установка и настройка AWStats в Операционная система Debian + плагин GEOIP (для его работы нужен perl модули Geo::IP, Geo::IP::PurePerl и С библиотека)

# aptitude install awstats geoip-database
# nano /etc/awstats/awstats.conf
...
LoadPlugin="geoip GEOIP_STANDARD /usr/share/GeoIP/GeoIP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /usr/share/GeoIP/GeoLiteCity.dat"
LoadPlugin="geoip_org_maxmind GEOIP_STANDARD  /usr/share/GeoIP/GeoIPASNum.dat"

...
# cd /usr/share/GeoIP
# wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
# gunzip GeoIP.dat.gz
# wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
# gunzip GeoLiteCity.dat.gz
# wget http://geolite.maxmind.com/download/geoip/database/asnum/GeoIPASNum.dat.gz
# gunzip GeoIPASNum.dat.gz

# cd ~
# wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
# tar xzvf GeoIP.tar.gz
# cd GeoIP-1.4.7
# ./configure && make && make install
# cd ..
# rm -rfv GeoIP*

# cpan -i Geo::IP
# cpan -i Geo::IP::PurePerl
# cd /usr/share/doc/awstats/examples/
# gunzip awstats.model.conf.gz

Исправляем пути и переменную $modelfile в файле awstats_configure.pl.

$AWSTATS_PATH='/usr/share/awstats';
$AWSTATS_ICON_PATH='/usr/share/awstats/icon';
$AWSTATS_CSS_PATH='/usr/share/doc/awstats/examples/css';
$AWSTATS_CLASSES_PATH='/usr/share/awstats/lib';
$AWSTATS_CGI_PATH='/usr/lib/cgi-bin';
$AWSTATS_MODEL_CONFIG='/usr/share/doc/awstats/examples/awstats.model.conf';
$AWSTATS_DIRDATA_PATH='/var/lib/awstats';

# Define model config file path
# -----------------------------
my $modelfile='';
if ($OS eq 'linux')             {
        if (-f "$AWSTATS_PATH/wwwroot/cgi-bin/awstats.model.conf") {
                $modelfile="$AWSTATS_PATH/wwwroot/cgi-bin/awstats.model.conf";
        }
        else {
                $modelfile="$AWSTATS_MODEL_CONFIG";
                if (! -s $modelfile || ! -w $modelfile) { $modelfile="$AWSTATS_MODEL_CONFIG"; }
        }
}

Запускаем конфигурационный скрипт.

# ./awstats_configure.pl
...
Do you want to continue setup from this NON standard directory [yN] ? y
...

Читаем /usr/share/doc/awstats/README.Debian. Создадим виртуальный домен в Apache для просмотра статистики Awstat.

# nano /etc/apache2/sites-available/awstatsmail
<VirtualHost *:80>
ServerName awstatsmail.Your.Domen
ServerAdmin webmaster@localhost
DocumentRoot /usr/share/awstats/

Alias /awstatsclasses "/usr/share/awstats/lib/"
Alias /awstatscss "/usr/share/doc/awstats/examples/css/"
Alias /awstatsicons "/usr/share/awstats/icon/"
Alias /awstats-icon/ /usr/share/awstats/icon/
ScriptAlias /awstats/ "/usr/lib/cgi-bin/"

<Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order deny,allow
                Deny from all
                Allow from 127.0.0.0/255.0.0.0 ::1/128
                Allow from 10.26.95.251
</Directory>

<Directory /usr/share/awstats/>
        Options None                     
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

<Directory /usr/share/doc/awstats/>
        Options None                     
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

</VirtualHost>

# a2ensite
# /etc/init.d/apache2 restart

Редактируем конфигурационны файл полученный после запуска скрипта awstats_configure.pl.

LogFile="/var/log/apache2/other_vhosts_access.log"
# Possible values: 1,2,3,4 or "your_own_personalized_log_format"
# 1 - Apache or Lotus Notes/Domino native combined log format (NCSA combined/XLF/ELF log format)
# 2 - IIS or ISA format (IIS W3C log format). See FAQ-COM115 For ISA.
# 3 - Webstar native log format.
# 4 - Apache or Squid native common log format (NCSA common/CLF log format)
LogFormat=1
SiteDomain="Your.Domen"

Первый запуск анализа лога Apache для вашего сайта

# /usr/lib/cgi-bin/awstats.pl -config=Your.Domen

Для просмотра статистики набираем в браузере путь

http://yourdomain.com/awstats/awstats.pl?config=Your.Domen

Автоматизируем сбор статистики через Использование планировщика cron в Linux. Apache запускается от пользователя www-data. Обновление статистики тоже будет делать от этого пользователя.

# crontab -u www-data -e
*/30 * * * * /usr/lib/cgi-bin/awstats.pl -config=Your.Domen

В этом случае удобнее дописать строки для крона в файл /etc/cron.d/awstats:

# nano /etc/cron.d/awstats
0,10,20,30,40,50 * * * * www-data /usr/lib/cgi-bin/awstats.pl -config=Your.Domen

Изменяем настройки ротации лог файлов Apache2, для того чтобы скрипт запущенный из под пользователя www-data смог прочитать логи. Ниже указаны только измененные строки.

# nano /etc/logrotate.d/apache2
...
        create 640 www-data adm

...
# chown -R www-data:adm /var/log/apache2/