AWStats — Nginx

 

AWStats по умолчанию заточен под работу с логом Apache, в данной статье я покажу как получить статистику с логов Nginx'a.

Устанавливаем Awstats и модуль GeoIP

yum install awstats htmldoc GeoIP perl-Geo-IP

Ставим Perl обработчик

yum -y install spawn-fcgi fcgi-devel wget
yum -y groupinstall "Development Tools"
mkdir /tmp/perl && cd /tmp/perl && wget http://github.com/gnosek/fcgiwrap/tarball/master -O fcgiwrap.tar.gz
tar -xf fcgiwrap.tar.gz && cd gnosek-fcgiwrap-*

autoreconf -i
./configure
make
make install

Добавляем в конфиг опции запуска:

vim /etc/sysconfig/spawn-fcgi
OPTIONS="-u nginx -g nginx -a 127.0.0.1 -p 9001 -P /var/run/spawn-fcgi.pid -- /usr/local/sbin/fcgiwrap"

Ставим в автозагрузку и включаем:

systemctl enable spawn-fcgi
systemctl start spawn-fcgi

Приводим access лог Nginx'a к следующему виду:

vim /etc/nginx/nginx.conf
log_format stats '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent"';

Перечитываем конфигурацию Nginx'a.

Создаем конфигурационный файл AWStats для определенного сайта:

vim /etc/awstats/awstats.artem.services.conf
LogFile="/var/log/nginx/access.log"
LogFormat=1
SiteDomain="artem.services"
HostAliases="localhost"
DNSLookup=0
DirData="/var/lib/awstats/artem.services"
AllowToUpdateStatsFromBrowser=1
LoadPlugin="geoip GEOIP_STANDARD /usr/share/GeoIP/GeoIP.dat"
Lang="ru"

Копируем скрипт AWStats в дирикторию веба, куда будем заходить смотреть статистику:

cp -a /usr/share/awstats/wwwroot/cgi-bin/* /home/artem/web/awstats/

Создадим конфиг Nginx'a для AWStats:

server {
    listen 80;
    server_name artem.services;
    root /home/artem/web/awstats;

    location / {
        rewrite ^ http://artem.services/awstats.pl?config=artem.services;
    }

    location /icon/ {
        alias /usr/share/awstats/wwwroot/icon/;
    }

    location /css/ {
        alias /usr/share/awstats/wwwroot/css/;
    }

    location /js/ {
        alias /usr/share/awstats/wwwroot/js/;
    }

    location ~ \.pl$ {
        access_log off;
        fastcgi_pass   127.0.0.1:9001;
        fastcgi_index  awstats.pl;
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        /etc/nginx/fastcgi_params;
    }
}

У меня через скрипт и указания конфига статистика наполнялась, но без указания в имени файла имени домена, а через браузер все норм и статистика обновляется, поэтому у меня в крон ушло следующее:

wget -O /dev/null http://artem.services/awstats/awstats.pl?framename=mainright\&update=1
0 0 vote
Рейтинг статьи

Метки: Метки

Подписаться
Уведомление о
guest
0 комментариев
Inline Feedbacks
View all comments