Webalizer

Allikas: Kuutõrvaja
Redaktsioon seisuga 24. august 2010, kell 16:45 kasutajalt Jj (arutelu | kaastöö) (Uus lehekülg: 'Webalizer on tarkvara mis loodud veebiserveri logide analüüsimiseks ning nende alusel statistika koostamiseks. Webalizeri install.. Webalizer ei toeta eraldi virtuaalseid domee...')
(erin) ←Vanem redaktsioon | Viimane redaktsiooni (erin) | Uuem redaktsioon→ (erin)

Webalizer on tarkvara mis loodud veebiserveri logide analüüsimiseks ning nende alusel statistika koostamiseks.

Webalizeri install..


Webalizer ei toeta eraldi virtuaalseid domeene ja nende kohta statistika genereerimist. Selleks, et iga domeeni kohta oma logi tekitada tuleb kas a) logida iga domeen eraldi faili (mis on tülikas kuna suurte veebimajutus serverite puhul hoitakse nii avatuna palju väikesi faile) või b) tükeldada enne webalizeri kasutamist eraldi skriptiga üldine logi ära jagades iga domeeni info eraldi faili.

Näide ühe suure logifaili kasutamise kohta

Meil on veebiserver kus asuvad domeenid zoo.tartu.ee, elukas.zoo.tartu.ee, kala.zoo.tartu.ee, karu.zoo.tartu.ee, kõikide veebiserverite logi suunatakse kõik ühte faili /var/log/apache/access.log

Sellisel juhul aitab skript

#!/bin/bash
cat /var/log/apache/access.log | /root/bin/access_log_splitter.pl
sleep 10
echo > /var/log/apache/access.log

webalizer -o /www/elukas/stat -c /www/elukas/webalizer.conf
webalizer -o /www/kala/stat -c /www/kala/webalizer.conf
webalizer -o /www/karu/stat -c /www/karu/webalizer.conf

Perli skript access_log_splitter.pl mis logisid tükeldab oleks ise järgnev

<source lang=perl>

#!/usr/bin/perl
%is_open = ();
@hosts = ("animals","loomad","taimed","matk","tour","noor","models","mudelid");
while ($log_line = <STDIN>) {
        foreach $host (@hosts) {
                $host_dir = '/' . $host;
                if ($host eq "animals") {
                        $host_dir = '/loomad/animals'
                }
                if ($log_line =~ m/GET $host_dir/) {
                        if (! $is_open{$host}) {
                                $host_dir = '/www/tago' . $host_dir;
                                open $host, ">>${host_dir}/access.log" or die ("Can't open ${host_dir}/access.log");
                                $is_open{$host} = 1;
                        }
                        printf $host "%s", $log_line;
                }
       }
}
exit 0;

</souce>