
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/