Webalizer lässt Tage aus
Webalizer V2.01-10 (Linux 2.6.8-11-amd64-k8)
lässt zeitweise Tage aus, weil der Cronjob nicht ausgeführt werden kann (syscp)
Hallo,
ich habe ein Problem mit einem Webalizer.
Wenn der Cronjob nicht täglich ausgeführt wird/werden kann, fehlen die Tage in der Auswertung.
Jetzt meine Frage:
Kann ich mit hilfe der vorhandenen Logfiles (immmer 1 pro Tag) noch nachträglich die Statistiken "berichtigen" ?
wenn ja, wie?
oder gibt es Mittel und Wege die Daten manuell etwas abzuändern, so dass am Ende des Monats die Zahlen einigermaßen stimmen?
Habe mittlerweile den Logrotate für die Logfiles auf weekly gestellt, damit das nicht täglich passieren kann.
Vielen Dank für die Hilfe im Vorraus.
lässt zeitweise Tage aus, weil der Cronjob nicht ausgeführt werden kann (syscp)
Hallo,
ich habe ein Problem mit einem Webalizer.
Wenn der Cronjob nicht täglich ausgeführt wird/werden kann, fehlen die Tage in der Auswertung.
Jetzt meine Frage:
Kann ich mit hilfe der vorhandenen Logfiles (immmer 1 pro Tag) noch nachträglich die Statistiken "berichtigen" ?
wenn ja, wie?
oder gibt es Mittel und Wege die Daten manuell etwas abzuändern, so dass am Ende des Monats die Zahlen einigermaßen stimmen?
Habe mittlerweile den Logrotate für die Logfiles auf weekly gestellt, damit das nicht täglich passieren kann.
Vielen Dank für die Hilfe im Vorraus.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 28262
Url: https://administrator.de/contentid/28262
Ausgedruckt am: 13.11.2024 um 00:11 Uhr
18 Kommentare
Neuester Kommentar
Ich würde den Webalizer die Logdateien auf jeden Fall immer noch einmal kurz vor dem Logrotate ausführen lassen. Lass den Cronjob lieber einmal zu viel, als einmal zu wenig über das Apache-Log rennen. Das kommt auch der CPU-Last zugute, wenn einmal viel auf dem Server los war ;)
Manuell kannst Du nicht komplett eingelesene Logfiles noch mit "webalizer logfile" nachträglich auswerten.
Gruss
Stefan
Manuell kannst Du nicht komplett eingelesene Logfiles noch mit "webalizer logfile" nachträglich auswerten.
Gruss
Stefan
Will ja nix sagen, aber:
Webalizer, pfui.
Ich nutz' awstats...
Lonesome Walker
Webalizer, pfui.
Ich nutz' awstats...
Lonesome Walker
Ist komisch, dass der die Statistiken "zerhackt"... In welcher Form? Normalerweise fügt webalizer die Daten anhand ihres Timestamps in seine Daten ein. Wenn es für einen Timestamp ein entsprechendes Datum gibt, wird es nicht hinzugefügt, der Rest schon.
Ich habe hier keinen Webalizer aufgesetzt, gucke morgen in der Fa. noch einmal nach den Programmparametern.
Aber vielleicht hilft vorerst ja auch ein "man webalizer" weiter ;)
Gruss
Stefan
Ich habe hier keinen Webalizer aufgesetzt, gucke morgen in der Fa. noch einmal nach den Programmparametern.
Aber vielleicht hilft vorerst ja auch ein "man webalizer" weiter ;)
Gruss
Stefan
Hallo,
Hast du in der webalizer.conf "Incremental yes" stehen? Nur dann klappt's vernünftig mit rotierenden Logs.
Ansonsten noch ein netter Aufruf für den cronjob falls du nicht händisch in dem Logverzeichnis spielst und genau weißt wann die Logs rotiert werden. Ist beides der Fall, dann rufe Webalizer nach dem logrotate folgendermaßen aus der crontab auf:
/usr/local/bin/webalizer `ls -lt1 /var/www/log/vhostname-access.*|head -n2|tail -n1`
Die Pfade und Namen müssen angepasst werden. Muß nicht mit jeder Konfiguration klappen, bei mir bearbeitet das Teil ein paar Minuten nach logrotate die zweitälteste Logdatei. Ist allerdings auch OpenBSD...
Gruss, Oliver
jedoch zerhackts mir danach immer sämtliche Webstatistiken bis zu diesem Datum
Hast du in der webalizer.conf "Incremental yes" stehen? Nur dann klappt's vernünftig mit rotierenden Logs.
Ansonsten noch ein netter Aufruf für den cronjob falls du nicht händisch in dem Logverzeichnis spielst und genau weißt wann die Logs rotiert werden. Ist beides der Fall, dann rufe Webalizer nach dem logrotate folgendermaßen aus der crontab auf:
/usr/local/bin/webalizer `ls -lt1 /var/www/log/vhostname-access.*|head -n2|tail -n1`
Die Pfade und Namen müssen angepasst werden. Muß nicht mit jeder Konfiguration klappen, bei mir bearbeitet das Teil ein paar Minuten nach logrotate die zweitälteste Logdatei. Ist allerdings auch OpenBSD...
Gruss, Oliver
"Incremental" steht imho standardmäßig auf "Yes".
Nöönöö. Hier:
- Incremental processing allows multiple partial log files to be used
- instead of one huge one. Useful for large sites that have to rotate
- their log files more than once a month. The Webalizer will save its
- internal state before exiting, and restore it the next time run, in
- order to continue processing where it left off. This mode also causes
- The Webalizer to scan for and ignore duplicate records (records already
- processed by a previous run). See the README file for additional
- information. The value may be 'yes' or 'no', with a default of 'no'.
Webalizer sucht zuerst im aktuellen Verzeichnis nach einer webalizer.conf, dann in /etc. Aber es ist möglich mit der option -c eine andere Konfigurationsdatei zu übergeben.
Gruss, Oliver
Das ist schon klar. Ein Programm kann keine Daten auswerten, die es nie zu Gesicht bekommt ;)
Deswegen noch einmal mein "Tipp" von weiter oben: Ruhig die Intervalle für das Webalizer-/AWstats-Update kleiner wählen. Je näher man am Logrotate ist, desto weniger Daten gehen verloren.
Am besten ist es, die Statistikerstellung als Prerotate in der Logrotate-Konfigurationsdatei des Webservers einzutragen.
Gruss
Stefan
Deswegen noch einmal mein "Tipp" von weiter oben: Ruhig die Intervalle für das Webalizer-/AWstats-Update kleiner wählen. Je näher man am Logrotate ist, desto weniger Daten gehen verloren.
Am besten ist es, die Statistikerstellung als Prerotate in der Logrotate-Konfigurationsdatei des Webservers einzutragen.
Gruss
Stefan
Auf folgende Weise ist es möglich, vor dem Logrotate die Statistiken zu aktualisieren:
Siehe im Verzeichnis /etc/logrotate.d nach, ob es ein Logfile für den Apache gibt. Wenn ja, editiere dieses, ansonsten lege es neu an, z.B. als /etc/logrotate.d/httpd.
Der Inhalt des Scriptes sollte abschließend in etwa folgendermaßen aussehen:
Den Aufruf des Webalizer-Scripts, das richtige Logfile und die gewünschte Logrotate-Konfiguration musst Du natürlich noch an Deine persönlichen Bedürfnisse anpassen.
Zur Migration: Ich habe nie migriert (und ich kenne auch keine Möglichkeit dazu). Aber um einen sauberen Schnitt zu haben, würde ich evtl. eine Stichtagsmigration (Quartalswechsel, Monatswechsel, Wasauchimmersinnmachtwechsel, ...) machen, bis zu der Du mit den Webalizer-Stats arbeitest. Und ab Stichtagsdatum erfolgt dann der Umstieg auf AWStats.
Wenn Du mit Webalizer aber klarkommst und alle nötigen Informationen zuverlässig zur Verfügung stehen (wenn Du das mit den fehlenden Tagen hinbekommst *g*), ist eine Umstellung ja auch nicht unbedingt erforderlich.
Gruss
Stefan
Siehe im Verzeichnis /etc/logrotate.d nach, ob es ein Logfile für den Apache gibt. Wenn ja, editiere dieses, ansonsten lege es neu an, z.B. als /etc/logrotate.d/httpd.
Der Inhalt des Scriptes sollte abschließend in etwa folgendermaßen aussehen:
"/var/log/httpd/access_log" {
rotate 5
compress
size 100M
sharedscripts
prerotate
/usr/local/bin/webalizer /var/log/access_log
endscript
postrotate
/usr/bin/killall -HUP httpd
endscript
}
Den Aufruf des Webalizer-Scripts, das richtige Logfile und die gewünschte Logrotate-Konfiguration musst Du natürlich noch an Deine persönlichen Bedürfnisse anpassen.
Zur Migration: Ich habe nie migriert (und ich kenne auch keine Möglichkeit dazu). Aber um einen sauberen Schnitt zu haben, würde ich evtl. eine Stichtagsmigration (Quartalswechsel, Monatswechsel, Wasauchimmersinnmachtwechsel, ...) machen, bis zu der Du mit den Webalizer-Stats arbeitest. Und ab Stichtagsdatum erfolgt dann der Umstieg auf AWStats.
Wenn Du mit Webalizer aber klarkommst und alle nötigen Informationen zuverlässig zur Verfügung stehen (wenn Du das mit den fehlenden Tagen hinbekommst *g*), ist eine Umstellung ja auch nicht unbedingt erforderlich.
Gruss
Stefan
Sorry, aber da geht mir jetzt praktisch die Theorie aus ...
Habe leider keine Möglichkeit, die Problematik irgendwo nachzustellen, sonst hätte ich mir das Ganze noch einmal genauer angesehen.
Einzige Idee, die ich noch habe, ist der Versuch:
- Webserver anhalten
- access.log umbenennen
- nicht fertig importierte Logdatei in access.log umzubenennen
- Webalizer laufen lassen
- access.log wieder in's Archiv
- Original-access.log wieder richtig benennen
- Apache starten
- Webalizer noch einmal laufen lassen
Ist zum einen sehr umständlich, außerdem sehr umständlich, ziemlich umständlich, und dazu ist es auch nicht sicher, dass das jetzt funktioniert. Ist, wie gesagt, leider nur ein Schuss in's Blaue
Gruss
Stefan
Habe leider keine Möglichkeit, die Problematik irgendwo nachzustellen, sonst hätte ich mir das Ganze noch einmal genauer angesehen.
Einzige Idee, die ich noch habe, ist der Versuch:
- Webserver anhalten
- access.log umbenennen
- nicht fertig importierte Logdatei in access.log umzubenennen
- Webalizer laufen lassen
- access.log wieder in's Archiv
- Original-access.log wieder richtig benennen
- Apache starten
- Webalizer noch einmal laufen lassen
Ist zum einen sehr umständlich, außerdem sehr umständlich, ziemlich umständlich, und dazu ist es auch nicht sicher, dass das jetzt funktioniert. Ist, wie gesagt, leider nur ein Schuss in's Blaue
Gruss
Stefan