Были рассмотрены следующие статистики: Analog, Webalizer, AWStats Первые две не впечатлили. Остановился на последней.
Для начала необходимо включить комбинированный лог апача — в конце CustomLog выставляем combined вместо common. Такой формат содержит регистрацию об источнике запроса, браузере, ОС.
Устанавливаем статистику:
aptitude
install
awstats
Создаем из шаблона конфиг статистики нашего сайта:
cp
awstats.conf awstats.example.com.conf
В файле awstats.example.com.conf прописываем следующее:
#Лог
LogFile
=
"/var/log/apache2/example.com-access.log"
# Тип лога, combined формат
LogFormat
=
1
#Прописываем свое доменное имя
SiteDomain
=
"example.com"
#Куда сохранять статистику. Я не менял.
DirData
=
"/var/lib/awstats"
# Кнопка обновить в браузере
AllowToUpdateStatsFromBrowser
=
1
#Разрешить просматривать статистику за год
AllowFullYearView
=
3
#Русский язык
Lang
=
"ru"
#Подсказки
LoadPlugin
=
"tooltips"
# Правильно отбражать ключевые слова. Необходим перл модуль liburi-perl
LoadPlugin
=
"decodeutfkeys"
# DNS кеш. Увеличивает скорость обработки больших файлов
LoadPlugin
=
"hashfiles"
#График стран на основе IP. Необходим перл модуль libgeo-ipfree-perl
LoadPlugin
=
"geoipfree"
При попытке обновить статистику через браузер появляется ошибка:
Error: Couldn't open server log file "/var/log/apache2/example.com-access.log" : Permission denied
Setup ('/etc/awstats/awstats.example.com.conf' file, web server or permissions) may be wrong.
Check config file, permissions and AWStats documentation (in 'docs' directory).
Чтобы устранить данную ошибку необходимо дать права на каталог с логами апача:
chmod
o+rx
/
var
/
log
/
apache2
Предоставим доступ к статистике только своему ip. В файл /etc/apache2/conf.d/awstats добавляем:
<
Location
/
cgi-bin
/
awstats.pl
>
Order allow,deny
Allow from 192.168.2.11
</
Location
>
В файле /etc/cron.d/awstats удаляем задание по умолчанию и прописываем следующее:
Что бы не потерять часть статистики в процессе ротации логов необходимо добавить в файл /etc/logrotate.d/apache2:
/
var
/
log
/
apache2
/*
.log
{
monthly
missingok
rotate
12
compress
delaycompress
notifempty
# Здесь надо изменить 640 на 644, для того, чтобы после ротации логов
# не пропала возможность обновлять статистику на сайте через кнопку обновить
create
644
root adm
sharedscripts
#Awststs
#Три строки ниже были добавлены
prerotate
/
usr
/
lib
/
cgi-bin
/
awstats.pl
-update
-config
=example.com
endscript
postrotate
if
[
-f
"
`. /etc/apache2/envvars ; echo ${APACHE_PID_FILE:-/var/run/apache2.pid}`
"
]
;
then
/
etc
/
init.d
/
apache2 reload
>
/
dev
/
null
fi
endscript
}
Ссылки
Эви Немет, Гарт Снайдер, Трент Хейн Руководство системного администратора. Второе издание.