1.Установка Awstats
1 |
# yum install awstats |
2. Настройка Apache
1 |
# nano /etc/httpd/conf.d/awstats.conf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/" Alias /awstatscss "/usr/local/awstats/wwwroot/css/" Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/" ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/" <Directory "/usr/local/awstats/wwwroot"> Options None AllowOverride None Order allow,deny Allow from 127.0.0.1 XXX.XXX.XXX.XXX AuthName "Awstats statistics access" AuthType Basic AuthUserFile /etc/awstats/.htpasswd Require valid-user Satisfy Any </Directory> |
Доступ на просмотр статистики разрешен с определенных адресов ИЛИ после аутентификации из файла /etc/awstats/.htpasswd
1 |
# htpasswd -c /etc/awstats/.htpasswd <username> |
3. Настройка конфигурационного файла Awstats для конкретного виртуального хоста(сайта)
Создаем конфигурационный файл для сайта, с логов которого снимаем статистику
1 |
# cp /etc/awstats/awstats.model.conf /etc/awstats/awstats.mydomain.com.conf |
1 2 3 4 5 6 7 8 9 10 |
#Если Apache LogFile="/var/log/httpd/mydomain.com -access_log" #Если Nginx LogFile="/var/log/nginx/mydomain.com.log" SiteDomain=" mydomain.com " HostAliases="www.mydomain.com REGEX[mydomain\.com$]" DNSLookup=0 (будем использовать плагин GeoIP) DirData="/var/lib/awstats" AllowToUpdateStatsFromBrowser=0 |
Как альтернатива, можно запустить скрипт для настройки Awstats
1 |
# cd /usr/local/awstats/tools |
1 |
# perl awstats_configure.pl |
4.Настройка логирования Web-серверов
Nginx
1 |
# nano /etc/nginx/nginx.conf |
1 2 3 |
log_format combined '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent"'; |
1 |
# nano /etc/nginx/conf.d/mydomain.com.conf |
1 |
access_log /var/log/nginx/mydomain.com.log combined; |
Apache
1 |
# nano /etc/httpd/vhosts/mydomain.com.conf |
1 |
CustomLog /var/log/httpd/mydomain.com-access_log combined |
5. Ручной запуск и просмотр статистики
Ручной сбор статистики
1 |
# /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=mydomain.com |
Просмотр статистики сайта
1 |
http://mydomain.com/awstats/awstats.pl?config=mydomain.com |
6.Подключение плагина GeoIPдля отображения стран посетителей сайта
1 |
# yum install GeoIP-data GeoIP perl-Geo-IP |
1 |
# nano /etc/awstats/awstats.mydomain.com.conf |
1 |
LoadPlugin="geoip GEOIP_STANDARD /usr/share/GeoIP/GeoIP.dat" |
7.Добавление снятия статистики на автоматическое выполнение в планировщик cron и при ротации логов logrotate
Добавление в крон на ежечасную обработку логов и получения статистики
1 |
# crontab -e |
1 |
7 * * * * perl /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=mydomain.com > /dev/null 2>&1 |
Также добавим снятие статистики со всех сайтов(конф.файлы которых находятся в /etc/awstats/) перед ротацией
Apache или Nginx логов
1 |
# perl /usr/local/awstats/tools/awstats_updateall.pl now /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -configdir=/etc/awstats |
Apache
1 |
# nano /etc/logrotate.d/httpd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
/var/log/httpd/*log { missingok daily notifempty rotate 7 dateext compress sharedscripts prerotate perl /usr/local/awstats/tools/awstats_updateall.pl now /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -configdir=/etc/awstats > /dev/null 2>&1 postrotate /bin/kill -HUP `cat /var/run/httpd.pid 2> /dev/null` 2> /dev/null || true endscript } |
Nginx
1 |
# nano /etc/logrotate.d/nginx |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
/var/log/nginx/*log { daily dateext rotate 7 missingok notifempty compress sharedscripts prerotate perl /usr/local/awstats/tools/awstats_updateall.pl now /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -configdir=/etc/awstats > /dev/null 2>&1 postrotate [ ! -f /var/run/nginx.pid ] || kill -USR1 `cat /var/run/nginx.pid` endscript } |
Источники:
http://anupdubbewar.blogspot.com/2013/09/install-and-configure-awstats-on-centos.html
http://www.howtoforge.com/how-to-install-secure-and-automate-awstats-centos-rhel
http://www.ducea.com/2006/06/14/speedup-awstats-by-using-geoip-instead-of-dns-lookups/