Установка Awstats на Ubuntu

Установка Awstats на Ubuntu

0. Мотивация

Плагины браузеров, фильтрующие рекламу, появились давно, но продолжают набирать популярность. На самом деле они могут фильтровать не только рекламу, а вообще любые ресурсы, загружаемые с другого домена (отличного от открытого в браузере).

Вместе с этими ресурсами обрезаются также скрипты служб аналитики, таких как Google Analytics, Яндекс.Метрика и др. В связи с этим данные этой аналитики могут отличаться от тех, которые можно получить, анализируя логи веб-сервера — а их-то уж точно не исказишь. Ну лишь в обратную сторону, если неправильно считать роботов за посетителей.

И тут на помощь приходят анализатор логов. Большого исследования я не проводил, просмотрел несколько наиболее популярных решений и выбрал из них Awstats. Одна из причин — простая установка, описание которой приводится ниже.

1. Установка Awstats

Далее везде нужны будут права root, поэтому лучше переключиться на него

sudo -i

Устанавливаем awstats

apt-get install awstats

2. Настройка Awstats

cp /etc/awstats/awstats.conf /etc/awstats/awstats.your-site.com.conf
vim /etc/awstats/awstats.your-site.com.conf

В файле конфигурации задаем следующие параметры:

LogFile="/var/log/nginx/site_access.log"
LogFormat=1
SiteDomain="your-site.com"
HostAliases="www.your-site.com your-site.org"

База обновляется командой

/usr/lib/cgi-bin/awstats.pl -config=your-site.com -update

Добавим эту команду в cron руту

50 * * * * /usr/lib/cgi-bin/awstats.pl -config=yourdomain.com -update > /dev/null

Так, команда будет выполняться ежечасно и, если работает logrotate, за десять минут до очередного прохода.

3. Настройка Perl

apt-get install libfcgi-perl
wget http://nginxlibrary.com/downloads/perl-fcgi/fastcgi-wrapper -O /usr/bin/fastcgi-wrapper.pl
wget http://nginxlibrary.com/downloads/perl-fcgi/perl-fcgi -O /etc/init.d/perl-fcgi
chmod +x /usr/bin/fastcgi-wrapper.pl
chmod +x /etc/init.d/perl-fcgi

Включаем автозагрузку

sed -i -e 's/su\ -/sudo\ -u/g' -e '/sudo/s/-c\ //g' /etc/init.d/perl-fcgi
update-rc.d perl-fcgi defaults
/etc/init.d/perl-fcgi start

Проверяем

netstat -anp |grep -i perl
tcp        0      0 127.0.0.1:8999          0.0.0.0:*               LISTEN      1220/perl       
unix  3      [ ]         STREAM     CONNECTED     13785    1220/perl

4. Настройка Nginx

location ~ \.pl$ {
    try_files $uri =404;
    gzip off;
    fastcgi_pass  127.0.0.1:8999;
    fastcgi_index index.pl;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    include fastcgi_params;
}

Перезапускаем

nginx -t
service nginx restart

5. Установка плагинов

Я обычно использую следующие плагины:

  • geoip_city_maxmind
  • hashfiles
  • tooltips
  • userinfo
  • hostinfo
  • graphgooglechartapi
  • geoip

Плагины подключаются в в строках LoadPlugin в файле /etc/awstats/awstats.your-site.com.conf. Часть из них не требует специальной установки, но некоторые нужно установить, например связанный с геолокацией GeoLiteCity.

Загружаем его с сайта Maxmind:

wget -N http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz

И устанавливаем:

gunzip GeoLiteCity.dat.gz
mv GeoLiteCity.dat /usr/local/share/GeoIP/

6. Полезные ссылки