Разработка электроники,
Систем автоматики,
Программного обеспечения
ООО "Антех ПСБ",
Санкт-Петербург
+79811865082
anteh@bk.ru
10.02.2016 https://anteh.ru
Формат лог файлов Apache должен быть combined. Например в httpd-vhosts.conf такая запись:
CustomLog "/var/log/site.ru-customlog" combined
# cd /usr/ports/www/awstats
# make config
# make
* Use /usr/local/www/awstats/tools/awstats_configure.pl to setup your hosts.
# make install
Скрипт awstats_configure.pl не использовался
В httpd.conf добавляем:
|
Копируем файл /usr/local/www/awstats/cgi-bin/awstats.model.conf в эту же директорию с переименованием в awstats.домен1.ru.conf повторяем процедуру для всех нужных сайтов.
Редактируем каждый awstats.доменx.ru.conf:
минимум прописываем путь к лог файлу соответствующего домена LogFile="..." и указываем домен сайта SiteDomain="...", HostAliases="www.site.ru site.ru"
Кнопка на html странице для обновления статистики оставлена отключенной AllowToUpdateStatsFromBrowser=0
В ручную, для проверки, запускаем обновление статистики для каждого сайта, пример:
|
Автоматическое обновление статистики раз в 31 минуту, в /etc/crontab добавляем для каждого сайта соответствующую запись:
*/31 * * * * root /usr/local/www/awstats/cgi-bin /awstats.pl -config=anteh.ru
Убеждаемся, что в httpd.conf подключен модуль mod_cgi.so
Перезапускаем апач
# apachectl restart
Проверяем, что получилось. В браузере заходим на сайты, для которых подключили awstats анализатор логов:
http://anteh.ru/awstats/awstats.pl
На изображении можно наблюдать падение трафика, по началу это связывал с установкой в шаблон сайта, т.е. на каждую страницу помещался canvas с 3D моделями + подгружалось некоторое количество javascript файлов. Но потом выяснилось, что проблемы были с modsecurity, который не пускал боты без accept заголовка решение описано здесь
Добавим модуль Geoip для соответствующих сайтов/хостов/доменов. Имеем в виду, что Geoip замедлит работу awstats:
# cd /usr/ports/net/GeoIP
# make
# make install
Подправляем скрипт /usr/local/bin/geoipupdate.sh, чтобы скачать всё, что дают: страна, город, название компании(ASN), изменения выделены:
|
Скачиваем соответствующие базы данных:
|
Скачиваемые базы данных -это наверно урезанные версии платных с http://dev.maxmind.com/geoip/legacy/geolite/. Наверно существуют и другие базы данных.
В каждом файле конфигурации awstats, описывающем настройки соответствующего сайта раз комментируем и подправляем строки:
LoadPlugin="geoip GEOIP_STANDARD /usr/local/share/GeoIP/GeoIP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /usr/local/share/GeoIP/GeoLiteCity.dat"
LoadPlugin="geoip_asn_maxmind GEOIP_STANDARD /usr/local/share/GeoIP/GeoIPASNum.dat"
Ставим p5-Geo-IP
# cd /usr/ports/net/p5-Geo-IP
# make
# make install
# apachectl restart
И проверяем, на html странице awstats на вкладке страны увидим название страны, города и название компании, весьма впечатлило. Вот так ненавязчиво и бесплатно сделал рекламу компании http://dev.maxmind.com/geoip:
Базы GeoIP.dat GeoLiteCity.dat GeoIPASNum.dat нужно иногда обновлять через /usr/local/bin/geoipupdate.sh скрипт. Его запуск можно в crontab добавить.
Реализуем доступ к статистике с аутоинтификацией через логин пароль. Создаём пароль для UserName:
# htpasswd -c /usr/local/www/awstats/.htpasswd UserName
придумываем пароль
В конфигурации апача httpd.conf:
|
При входе на http://site.ru/awstats/awstats.pl в диалоговое окно вводим UserName и придуманный ранее пароль.
Теперь можно задуматься о безопасном SSL соединении, т.к. в противном случае пароли передаются открытым текстом через небезопасный канал связи с сервером. Всё упирается в SSL сертификат, для некоммерческих сайтов сейчас его можно получить бесплатно, для любых сайтов подойдёт letsencrypt.
Переезд с http на https. В awstats конфигурации каждого сайта использующего https поправляем UseHTTPSLinkForUrl опцию:
UseHTTPSLinkForUrl="/"
https://site.ru/awstats/awstats.pl