Od wielu, wielu lat (ponad dwie dekady) używałem statystyk Piwik/Matomo do monitorowania ruchu na blogu. Dowód na to znajduje się, nigdzie indziej, jak w archiwalnym wpisie: Statystyki Google Analytics, czy PIWIK?
Piwik wybrałem ze względu na to, że był bezpłatny, na licencji GNU GPL i bez limitów, a co najważniejsze, mogłem je utrzymywać na własnym hostingu. Do działania potrzebny jest tylko PHP i baza MySQL (czasem mógł wywinąć jakieś fikołki z geolokalizacją: Geolokalizacja w Piwik – konfiguracja CentOS 6). Przez taki kawał czasu zebrałem około 55 MB danych w bazie. Poza sentymentem do tego rozwiązania, nie widziałem sensu dalszego używania. Restrykcje unijne ograniczały i tak znacząco śledzenie, a odnosiłem wrażenie, że statystyki i tak kłamią co do liczby odwiedzających.
Szukałem rozwiązania, które przedstawiałoby statystyki odwiedzin z wykorzystaniem NIE skryptu, a wyciągało je z logów Apache1. Natrafiłem na AWStats. Okropnie wyglądające statystyki, spełniające w 100% swoją rolę i główne założenie – wykorzystywanie logów Apache.
W trakcie instalacji, jak zwykle okazać się jednak musiało, że mój przypadek jest osobliwy2 i coś pójdzie nie tak – finalnie jednak wszystko działa. HowTo przedstawiam poniżej:
Instalacja AWStats na Ubuntu 24.10
Jedyny plus całego procesu instalacyjnego jest taki, że AWStats znajduje się w repozytoriach Ubuntu. Instalacja sama w sobie jest bezbolesna.
sudo apt update
sudo apt install awstats libgeo-ip-perl libgeo-ipfree-perl -y
Konfiguracja VirtualHost
Można zedytować istniejący host, lub dodać nowy. Ja postawiłem sobie AWStats z dostępem, z sieci wewnętrznej na defaultowym VHoście.
sudo nano /etc/apache2/sites-available/example.com.conf
W sekcji <VirtualHost> definiujemy logi dla strony (access.log oraz error.log):
ErrorLog ${APACHE_LOG_DIR}/exmaple.com_error.log
CustomLog ${APACHE_LOG_DIR}/example.com_access.log combined
By następnie poza sekcją </VirtualHost> wprowadzić konfigurację AWS.
Alias /awstatsclasses "/usr/share/awstats/lib/"
Alias /awstats-icon/ "/usr/share/awstats/icon/"
Alias /awstatscss "/usr/share/doc/awstats/examples/css"
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
ScriptAlias /awstats/ /usr/lib/cgi-bin/
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Zapisujemy, odpalamy stronkę, jeśli jej nie ma, uruchamiamy cgi, resetujemy apache:
sudo a2ensite example.com
sudo a2enmod cgi
sudo systemctl restart apache2
Konfiguracja AWStats
Skopiowanie gotowego konfigu do edycji.
sudo cp /etc/awstats/awstats.conf /etc/awstats/awstats.exmaple.com.conf
sudo nano /etc/awsats/awstats.exmaple.com.conf
LogFile="/var/log/apache2/example.com_access.log" #wskazujemy ścieżkę i nazwę logu Apache
LogFormat=4 #zmieniamy domyślną wartość z 1 na 4
LogFormat=1 # zmieniamy na 1 z domyślnej wartości
SiteDomain="example.com" #nazywamy naszą stronę
HostAliases="example.com localhost 127.0.0.1"
Zapisujemy.
Ja jeszcze modyfikowałem wartość AllowAccessFromWebToFollowingIPAddresses by mieć dostęp tylko ze wskazanych adresów IP (sieć lokalna i VPN) i AllowToUpdateStatsFromBrowser, by móc aktualizować statystyki z poziomu strony – przydatne do generowania statystyk dziennych, lub godzinowych.
Ostatni bardzo ważny krok, to konfiguracja uprawnień. Domyślnie użytkownik www-data nie ma wstępu do logów.
sudo apt update
sudo apt install acl -y
sudo setfacl -R -m "u:www-data:rx" /var/log/apache2/
Dostęp do statystyk jest z przeglądarki pod adresem http://example.com/cgi-bin/awstats.pl, lub jeśli mamy więcej stron i konfiguracji, to http://example.com/cgi-bin/awstats.pl?config=nazwakonfigu.

Dodaj komentarz