Webalizer Daten fehlen aufgrund fehlenden Pakets

Germanius

Member
Hallo,

meine Webalizer STatistiken haben sich nicht aktualisiert, da nach dem Upgrade auf Debian 6 ein Paket gefehlt hat:
Error Opening file /usr/share/GeoIP/GeoIP.dat
Nachdem ich es nachinstalliert habe, werden die Statistiken nun aktualisiert. Was ist jedoch mit den Tagen an denen die Statistiken nicht aktualisiert wurden? Die fehlen jetzt in der Statistik. Kann man die nachträglich noch irgendwie wieder herstellen?
Danke.
 

Till

Administrator
Die fehlen jetzt in der Statistik. Kann man die nachträglich noch irgendwie wieder herstellen?

Die Logdateien der letzten 30 Tage sollten im log Verzeichnis vorhanden sein. Du müsstest aber wohl webalizer für jeden Tag und jede Webseite einmal aufrufen, so wie es das ispconfig cron_daily.php script macht. Wahrscheinlich musst Du aber auch die bereits komprimierten logs erstmal mit gzip entpacken.

Ein fertiges Script gibt es meines Wissens nach nicht.
 

Germanius

Member
Danke, habe es versucht. Script wird auch ausgeführt, aber sehen tu ich in den Statistiken nichts.

Habe zwei Dateien in /usr/local/ispconfig/server angelegt:

webalizer.sh
Code:
#!/bin/sh

PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin

/usr/bin/php -q /usr/local/ispconfig/server/webalizer.php

und webalizer.php
Code:
<?PHP

require('/usr/local/ispconfig/server/lib/config.inc.php');
require('/usr/local/ispconfig/server/lib/app.inc.php');

set_time_limit(0);

// make sure server_id is always an int
$conf['server_id'] = intval($conf['server_id']);


// Load required base-classes
$app->uses('ini_parser,file,services,getconf');

function setConfigVar( $filename, $varName, $varValue ) {
    if($lines = @file($filename)) {
        $out = '';
        $found = 0;
        foreach($lines as $line) {
            @list($key, $value) = preg_split('/[\t= ]+/', $line, 2);
            if($key == $varName) {
                $out .= $varName.' '.$varValue."\n";
                $found = 1;
            } else {
                $out .= $line;
            }
        }
        if($found == 0) {
            //* add \n if the last line does not end with \n or \r
            if(substr($out,-1) != "\n" && substr($out,-1) != "\r") $out .= "\n";
            //* add the new line at the end of the file
            if($append == 1) $out .= $varName.' '.$varValue."\n";
        }

        file_put_contents($filename,$out);
    }
}


/*
$sql = "SELECT domain_id, domain, document_root FROM web_domain WHERE stats_type = 'webalizer' AND server_id = ".$conf['server_id'];
$records = $app->db->queryAllRecords($sql);
*/

    //$yesterday = date('Ymd',time() - 86400);
    $yesterday = '20111211';
    $logfile = '/var/www/clients/client1/web44/log/'.$yesterday.'-access.log';
     if(!@is_file($logfile)) {
        $logfile = '/var/www/clients/client1/web44/log/'.$yesterday.'-access.log.gz';
        if(!@is_file($logfile)) {
            continue;
        } }

    $domain = 'domain.de';
    $statsdir = '/var/www/clients/client1/web44/web/stats';
    $webalizer = '/usr/bin/webalizer';
    $webalizer_conf_main = '/etc/webalizer/webalizer.conf';
    $webalizer_conf = '/var/www/clients/client1/web44/log/webalizer.conf';

    if(!@is_file($webalizer_conf)) {
        copy($webalizer_conf_main,$webalizer_conf);
    }

    if(@is_file($webalizer_conf)) {
        setConfigVar($webalizer_conf, 'Incremental', 'yes');
        setConfigVar($webalizer_conf, 'IncrementalName', $statsdir.'/webalizer.current');
        setConfigVar($webalizer_conf, 'HistoryName', $statsdir.'/webalizer.hist');
    }


    if(!@is_dir($statsdir)) mkdir($statsdir);
    exec("$webalizer -c $webalizer_conf -n $domain -s $domain -r $domain -q -T -p -o $statsdir $logfile");

?>

Die Logdatei hab ich entpackt.
Woran kann es liegen, dass es nicht geht?
 

Till

Administrator
Webalizer merkt sich welche Daten die neuetsne Statistiken sind und nimmt keine älteren danach mehr an. Mach mal ein Backup des stats Verzeichnisses und lösche dann mal die webalizer.current Datei und versuch es dann nochmal.
 

Germanius

Member
Nun hat es funktioniert, allerdings sind jetzt in diesem Monat (Dezember) alle anderen Tage gelöscht. Es sind nun nur noch STatistiken für den ausgeführten Tag verfügbar. Auch die davor schon vorhandenen sind jetzt weg.
Monat November und Januar sind normal geblieben.
 

Germanius

Member
Heute Nacht haben sich die Statistiken für Januar aktualisiert. Für den 1. sind sie nun auch weg, nur für den 2. zu sehen.
Am Dezember hat sich nichts geändert, wird weiterhin nur ein Tag dargestellt.
Noch andere Ideen?
 

Till

Administrator
Leider nicht wirklich, da ich micht mit dem internen Aufbau der Webalizer History Datei nicht auskenne. Vielleicht haben die ja eine Mailingliste pder ähnliches, wo Du mal nachfragen könntest.
 

Germanius

Member
Danke, habe mir derweil anders geholfen. Zwar nicht so schön, aber immerhin:
Wenns wen interessiert, es gibt ein Programm, welches relativ einfach aus den Logs webalizer Statistiken generieren kann. Und zwar lokal aufm PC. So bleibt der Prozess aufm Server unangetastet:
Webalizer-GUI
 

Werbung

Top