Porzuciłem Piwik/Matomo na rzecz AWStats

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.

  1. Możecie mnie sprostować, ale ten sposób logowania i przedstawiania statystyk wydaje mi się najbardziej miarodajny i rzeczywisty. []
  2. Związany ze spersonalizowaną konfiguracją i przede wszystkim tym, że nie przechowuję stron w /var/www i nie obsługuje tego użytkownik www-data. []

Komentarze

11 odpowiedzi na „Porzuciłem Piwik/Matomo na rzecz AWStats”

  1. Po pierwsze, odkryłem Twój blog dzięki komentarzowi, który zostawiłeś gdzieś-tam, i dodaję do feeda.

    Po drugie, świetnie się składa, że napisałeś o AWStats. Od paru tygodni kumuluję apaczowe (właściwie to nginksowe) logi z mojego blogu. „Kumuluję” – bo korzystam z dzielonego serwera, dostęp do logów mam tylko przez panel administracyjny, a logi zerowane są o północy. Napisałem więc skrypt pythonowy, który udając przeglądarkę codziennie o 23:55 loguje się do panelu i kopiuje logi do lokalnego pliku tekstowego. Skrypt odpala się automatycznie z telefonu z Termuksa, bo nie mam w domu komputera włączonego 24/7. :)

    W każdym razie, zacząłem już kombinować, jak najlepiej będzie te logi sparsować i przeanalizować… ale nie pomyślałem w ogóle o tym, że muszą już istnieć odpowiednie ku temu narzędzia. AWStats ma najwyraźniej graficzne wodotryski, a mnie na razie zależy tylko na podsumowaniu tekstowym, ale pewnie i taką funkcję gdzieś odnajdę.

    Aha, i też nie rozumiem szału na pehapowe lub jawowe skrypty służące do zliczania wejść. Od początku moich eksperymentów z własną domeną i opłaconym serwerem było dla mnie jasne, że najlepiej robić to na poziomie serwera.

  2. > Po pierwsze, odkryłem Twój blog dzięki komentarzowi, który zostawiłeś gdzieś-tam, i dodaję do feeda.

    Dzięki, i vice-versa ;). A „spotkaliśmy” się u Ignormatyka (aka xpil). Też jestem na etapie zbierania ciekawych blogów do rss. Miło wspominam czasy logowania i ludzi poznanych dzięki nim :)

    > „Kumuluję” – bo korzystam z dzielonego serwera, dostęp do logów mam tylko przez panel administracyjny, a logi zerowane są o północy.

    Co to za hosting jest? Jeśli jest dostępny jakiś panel typu direct admin, czy cpanel to powinieneś mieć dostęp do statystyk awstats ;). Nie głupi pomysł z ręcznym dl i analizowaniem. Ale trzeba niestety o tym pamiętać.

    Nie masz możliwości odpalenia cron na tym hostingu?

    > W każdym razie, zacząłem już kombinować, jak najlepiej będzie te logi sparsować i przeanalizować… ale nie pomyślałem w ogóle o tym, że muszą już istnieć odpowiednie ku temu narzędzia. AWStats ma najwyraźniej graficzne wodotryski, a mnie na razie zależy tylko na podsumowaniu tekstowym, ale pewnie i taką funkcję gdzieś odnajdę.

    W przypadku AWStats mówić, że ma graficzne wodotryski, to jak powiedzieć że Notepad ma bogate GUI. Dostępnych jest dosłownie kilka wykresów, a reszta jest w postaci tekstowej.

    Ba! Jeśli jesteś zainteresowany to w stopce AWStats jest nawet info z jakiego narzędzia korzystają do obrabiania logów – które żeby było ciekawiej są trzymane w .txt.
    „Advanced Web Statistics 7.9 (build 20230108) – Wygenerowane przez awstats (wtyczki: hashfiles)”

    Co do samej teorii nt cukierkowych statystyk z gui – dużo łatwiej analizuje się kolorowe wykresy niż surowy tekst. Natomiast przyznaje, że tak jak w moim przypadku jest to najzwyczajniej zbędne.

    Poza tym, statystyki wyciągane z logów serwera są dużo bardziej miarodajne, bo każde wejście jest rejestrowane. Ok nie będzie fancy feature typu heat map, czy gdzie kto poszedł (na jaką stronę) z mojej, etc… Ale nie mam nawet czasu i chęci trgo analizować ;)

    Zresztą widzę, że doskonale się rozumiemy ;)
    > Od początku moich eksperymentów z własną domeną i opłaconym serwerem było dla mnie jasne, że najlepiej robić to na poziomie serwera.

    1. Korzystam z The Camels, mają Direct Admin. Owszem, z manuala wynika, że AWStats powinien być, ale niestety admini go najwyraźniej wyłączyli (albo nie włączyli, co na jedno wychodzi). Crona też nie da się uruchomić. Gdy zapytałem, czy mogliby po prostu cronem kumulować te statystyki w pliku na mojej przestrzeni dyskowej, zasugerowali przejście na wyższy tier VPS-owy. :)

      Jasne, kolorowe wykresy są fajniejsze, ale na razie chcę ogarnąć surowe dane. Chociaż, masz oczywiście rację – skoro już sięgam po AWStats, to mogę też skorzystać ze wszystkich funkcji, jakie oferuje.

      1. CRON może być faktycznie wyłączony, lecz AWStats mnie dziwi. W DirectAdmin statystyki AWStats powinny być zlokalizowane +/- w: Statystyki > Logi. LUB pod zakładką Webalizer.

        Co ciekawe w The Camels znalazłem info o AWStats nawet w opisach hostingów, więc nie trzeba było głęboko przeszukiwać ich strony, ofert, czy manuali.

        Wiadome, że będą stronić od udzielania dostępu do takich funkcji, jak CRON, żeby przekonywać do wyższych pakietów :). Niestety business is business

        A że tak zapytam jeszcze – dostępu do SSH też nie dają? :)

        1. Po Twoim komentarzu wgryzłem się w temat i odkryłem, że chociaż przycisku do AWStats nigdzie nie ma, to mam katalog awstats, w którym są pliki z miesięcznymi raportami… ale tylko do września. Zapytałem adminów, o co chodzi, i napisali mi, że „wyłączyli AWStats, bo Google Search Console jest łatwiejsze w obsłudze i daje lepsze wyniki”. Pozostawiam to bez komentarza, wysłałem reklamację. Dzięki, że zwróciłeś uwagę, że piszą o AWStats czarno na białym w swojej ofercie na stronie.

          Tak, SSH też nie mają, ale to akurat było jasno powiedziane.

          Cóż, będę musiał rozważyć zmianę hostingu. Albo może od razu na VPS? Tylko że najtańszy ze znanych mi solidnych VPS-ów kosztuje 2,5 raza tyle co The Camels, więc nie wiem, czy warto płacić aż tyle za SSH i AWStats… Z drugiej strony, VPS-a można wykorzystać do innych rzeczy…

          1. Nie ma sprawy ;).

            Jeśli szukasz taniego vps to zainteresuj się https://mikr.us/. Osobiście nigdy nie używałem, choć aktualnie zastanawiam się nad postawieniem takiej wirtualnej maszyny pod sam monitoring malinki.

            Cenowo zdecydowanie jest różnica na niekorzyść dla vps, one niestety tanie nie są. Jak robiłem research to wygrywał u mnie ovh, choć pewnie znajdziesz teraz coś taniej. Jeśli jednak chcesz coś swojego postawić i pobawić się – polecam.

            Mnie od dawien dawna cieszyło grzebanie w serwerach, hostingach i niejednokrotnie naprawianie po sobie ;)

          2. Niestety, to wszystko wynika z faktu iż The Camels się sprzedał – wykupiło ich LH.pl. Przy czym nie jest to jeszcze tak źle, jakbyś wylądował pod skrzydłami Cyber_fork czy NetArt – bo wtedy przejęcie wiązałoby się z podniesieniem cen.

            Z mojej strony, aktualnie polecam Hostido.pl (jak chcesz możesz wejść przez afiliacje – https://hostido.pl/polecam/0HLRGKC07E), sam korzystam i jestem zadowolony. I teraz mają AWstats.

          3. Dzięki za obie rekomendacje (Mikrus & Hostido), wyglądają nadzwyczaj atrakcyjnie. Zabawne, jak trudno jest znaleźć te serwisy przez wyszukiwarkę albo na stronach porównujących niby w obiektywny sposób oferty hostingowe. Wszędzie witał mnie spam z ofertami o wiele mniej ciekawymi i co gorsza, mniej przejrzystymi („okej, tyle zapłacę za pierwszy rok, ale ile za drugi?”).

          4. Niestety, u nas „kupuje” się hostingi nie po jakością usług, ale tym ile ktoś wyda na reklamę. I potem dziwić się, czemu hostingiem nr 1 jest home.pl, który ceny usług hostingowych ma x4 większe niż konkurencja, a domeny sprzedaje po x6 razy więcej. A wyprowadzenie domeny wymaga listownej prośby o kod autinfo.

            Temu jak najbardziej do zabawy w linuxy to zapraszam o Mikrusa – jesli tylko do monitorowania PRI to chyba jeszcze mają usługę frog.

            Jeśli share hosting, to polecam hostido.

            A jeśli masz czas to zapraszam na https://forum.rootnode.pl/

          5. Marketing, marketing, marketing… Jak wszędzie, dzięki niemu będzie się wyżej. Nie bez powodu, jak zapyta się osoby, która nie jest techniczna o hosting: powie home.pl, albo nazwa.pl.

            Domena? Nazwa.pl…

            Czesto jednak w parze z ceną idzie obsługa dookoło sprzedażowa. Są osoby, które dadzą sobie radę z instalacją i konfiguracja od a do z i wybierają opcje tańsze, bez wsparcia. Są jednak osoby, które wolą zapłacić więcej, ale napiszą, zadzwonią, żeby im pomóc – no i się pomaga i czasem robi za nich ;).

            Dla tych co nie chcą przepłacać, a wiedzą „co robić” mikr.us jest najlepszą opcją IMHO.

  3. Założyłem konto na Mikrusie, kupiłem najprostszą subskrypcję, i muszę powiedzieć, że tak na pierwszy rzut oka jest to fenomenalnie przygotowany serwis (abstrahując od niskich cen). Mają wybornie czytelny interfejs i uporządkowaną dokumentację. Chyba spróbuję przenieść się z majdanem blogowym właśnie tam. Jeżeli stwierdzę, że nie mam siły/czasu na konfigurowanie nginksa, to Hostido jest następne na liście. Na Rootnode zajrzę, dzięki za polecankę.

Skomentuj Borys Anuluj pisanie odpowiedzi

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *