Jednym z najpopularniejszych analizatorów logów dla serwera Apache jest Webalizer. Aplikacja napisana w języku C wydawana jest na licencji GPL. Generuje ona szczegółowe statystyki odwiedzin serwera w formacie HTML. Program obsługuje wiele języków w tym język polski.

Program jest bardzo chętnie wybierany przez wiele firm hostingowych jako podstawowy system statystyk dla zakładanych kont klientów. Aplikacja jest bardzo prosta w użytkowaniu oraz nie obciąża mocno serwera. Przykładowo przetworzenie logów zawierających 70 000 rekordów zajmuje 1 sekundę dla serwera z procesorem 1600 MHz.

Webalizer obsługuje logi w standardowym formacie CLF (Common logfile format), logi serwerów FTP (wu-ftpd/proftpd xferlog) oraz serwera Squid. Obsługiwane są również skompresowane pliki logów za pomocą gzip oraz bzip2.

Instalacja i konfiguracja aplikacji jest bardzo prosta. Popularne dystrybucje Linuksa jak Red Hat, Fedora, CentOS, Debian czy Ubuntu posiadają skompilowany program w swoich repozytoriach. Wystarczy wydać odpowiednie dla systemu polecenie i zainstalować aplikację.

Domyślny plik konfiguracyjny powinien znajdować się w ścieżce /etc/webalizer.conf. Jeżeli na serwerze korzystamy z wielu domen oraz wirtualnych hostów, a chcemy dla nich osobno generować statystki stwórzmy osobny katalog a w nim trzymajmy osobne pliki dla każdej domeny.

[bash]mkdir /etc/webalizer
cp /etc/webalizer.conf /etc/webalizer/thecamels.org.conf
cp /etc/webalizer.conf /etc/webalizer/elenium.pl.conf
cp /etc/webalizer.conf /etc/webalizer/specops.pl.conf[/bash]

W ten sposób przygotujemy dla każdego konta (domeny, wirtualnego hosta) osobny plik konfiguracyjny. W plikach tych ustawiamy odpowiednie wartości dla każdej ze stron.

[bash]LogFile /var/log/httpd/access_log # Ścieżka do access log dla danego vhosta.
OutputDir /home/thecamels/public_html/stats # Ścieżka, w której wygenerowany zostanie raport
Incremental yes # Zgoda na analizę z kilku plików logów. Jeśli mamy rotowane logi zaleca się ustawienie opcji na yes
HostName thecamels.org # Nazwa hosta jaki monitorujemy[/bash]

Aby statystyki były zliczane osobno per vhost, dla każdego z nich musimy ustalić osobny plik logów.

[bash]<VirtualHost 192.168.0.178>
ServerName thecamels.org
ServerAlias www.thecamels.org
DocumentRoot "/home/thecamels/public_html"
CustomLog "/home/thecamels/logs/access_log" common
</VirtualHost>[/bash]

Aby wygenerować statystyki wystarczy wydać polecenie: webalizer -c /etc/webalizer/thecamels.org.conf. Zostaną wygenerowane statystyki dla konkretnej domeny. Jeżeli chcemy wygenerować dla każdej domeny, możemy posłużyć się prostym skryptem:

[bash]for i in /etc/webalizer/*.conf; do webalizer -c $i; done[/bash]

Aby statystyki generowały się automatycznie, należy dodać polecenie do CRONa. Możemy też pokusić się o napisanie skryptu, którego podłączymy do crontaba.

[bash]#!/usr/bin/perl
use strict;

my @files = </etc/webalizer/*.conf>;

foreach my $file (@files) {
chomp($file);
system("/usr/bin/webalizer -c $file");
}[/bash]

Szczegółowe informacje na temat webalizera znajdują się na stronie mrunix.net.

Poprzedni artykułPHP 5.3.4RC1
Następny artykułnVidia Linux Display Driver 260.19.21

6 KOMENTARZE

  1. Ciekawe, i proste. Zawsze mnie ciekawiło jak się to robi dla kilku domen. Bo dla jednej to mi się zawsze udawało. Tak to spoko. Robi się osobnego hosta i osobne logi dla domeny i już.

  2. Ja to tylko nie wiedziałem jak rozdzielić na domeny. Tak czy siak. Polecam bo nie obciąża komputera a częstoś odświeżania statystyk ładujemy do crona i sami tym zarządzamy.

  3. Extra! Dzięki. Co prawda w cpanelu mam już to wbudowane, ale zawsze chciałem postawić takie cos na moim Ubuntu. Wczoraj się troszke męczyłem ale to wina tego, że w Ubuntu są chyba inne ściezki i nazwy dla serwera Apache i miałem problem by je podac i żeby działało.

ZOSTAW ODPOWIEDŹ

Proszę wpisać swój komentarz!
Proszę podać swoje imię tutaj