spector
Goto Top

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.

Content-ID: 28262

Url: https://administrator.de/contentid/28262

Ausgedruckt am: 13.11.2024 um 00:11 Uhr

stpe
stpe 15.03.2006 um 20:05:46 Uhr
Goto Top
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
Spector
Spector 15.03.2006 um 20:09:23 Uhr
Goto Top
Manuell kannst Du nicht komplett eingelesene
Logfiles noch mit "webalizer
logfile" nachträglich auswerten.

Gruss
Stefan

ok.
jedoch zerhackts mir danach immer sämtliche Webstatistiken bis zu diesem Datum face-sad
also der Aufruf wäre dann webalizer -c <configfile> <logfile>
da das ganze aber inkrementell läuft, passt das ja nimmer, oder?
16568
16568 15.03.2006 um 21:20:43 Uhr
Goto Top
Will ja nix sagen, aber:

Webalizer, pfui. face-wink


Ich nutz' awstats...


Lonesome Walker
stpe
stpe 15.03.2006 um 21:20:55 Uhr
Goto Top
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
Okies
Okies 15.03.2006 um 21:25:26 Uhr
Goto Top
Hallo,

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
stpe
stpe 15.03.2006 um 21:27:58 Uhr
Goto Top
Will ja nix sagen, aber:

Webalizer, pfui. face-wink


Ich nutz' awstats...


Lonesome Walker
Ich mittlerweile auch.
stpe
stpe 15.03.2006 um 21:30:42 Uhr
Goto Top
"Incremental" steht imho standardmäßig auf "Yes".

Aber mir fällt gerade noch ein: Es könnte(!) sein, dass webalizer die Config-Datei nicht berücksichtigt, wenn man diese nicht als Parameter mit übergibt. Vielleicht ist das mal einen Versuch wert.

Gruss
Stefan
Okies
Okies 15.03.2006 um 21:48:03 Uhr
Goto Top
"Incremental" steht imho standardmäßig auf "Yes".

Nöönöö. Hier:
  1. Incremental processing allows multiple partial log files to be used
  2. instead of one huge one. Useful for large sites that have to rotate
  3. their log files more than once a month. The Webalizer will save its
  4. internal state before exiting, and restore it the next time run, in
  5. order to continue processing where it left off. This mode also causes
  6. The Webalizer to scan for and ignore duplicate records (records already
  7. processed by a previous run). See the README file for additional
  8. 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
stpe
stpe 15.03.2006 um 22:10:11 Uhr
Goto Top
Ich benutze, wie oben schon gesagt, kein Webalizer mehr. Nur ein Squid wird damit noch<- ausgewertet.

Wenn die Möglichkeit besteht, würde ich auch an Spector's Stelle auf AWStats ausweichen.

Gruss
Stefan
Okies
Okies 15.03.2006 um 22:30:30 Uhr
Goto Top
AWStats ist auf alle Fälle besser, aber hier löst es außer der besseren Auswertung nur das 'Incremental yes' Problem. Auch AWStats muß die richtigen Logfiles anfassen oder es entstehen Lücken...

Gruss, Oliver
stpe
stpe 15.03.2006 um 22:54:52 Uhr
Goto Top
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
Spector
Spector 16.03.2006 um 00:39:57 Uhr
Goto Top
Am besten ist es, die Statistikerstellung als Prerotate in der Logrotate-Konfigurationsdatei des Webservers einzutragen.

OK, aber wie soll ich das anstellen?
und der Umstieg auf AWStats würde mich ein komplettes Jahr an Statistiken kosten, oder gibt es hierfür Migrationspfade? (hab hierzu noch keine Suchmaschine genutzt face-smile )
wegen der manpage zu Webalizer.... die bringt mich leider bei meinem Problem net weiter face-sad
Hier hab ich noch ein Auszug des Stats, um zu verdeutlichen, was gemeint ist.
stpe
stpe 16.03.2006 um 20:42:36 Uhr
Goto Top
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:
"/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
Spector
Spector 16.03.2006 um 21:05:34 Uhr
Goto Top
Die Info is echt gut! Nur bringt sie mir noch rein gar nix, was mein eigentliches Problem angeht.

LogFile		/var/log/apache/access.log
OutputDir	/var/www/webalizer
Incremental	yes
ReportTitle	Statistiken für Partysplash
HostName	mx2.partysplash.de
Quiet		yes
ReallyQuiet	yes
HideSite	*mx2
HideReferrer	mx2/
HideReferrer	Direct Request
HideURL		*.gif
HideURL		*.GIF
HideURL		*.jpg
HideURL		*.JPG
HideURL		*.ra
GroupURL	/cgi-bin/*
IgnoreSite	localhost
IgnoreReferrer	localhost
MangleAgents    4

so sieht die momentane webalizer.conf aus (Pfade geändert)
wenn ich jetzt eine andere Logfile nehme, dann zerlegts mir eben leider sämtliche Einträge im Webalizer.
stpe
stpe 16.03.2006 um 21:13:54 Uhr
Goto Top
Sorry, aber da geht mir jetzt praktisch die Theorie aus ... face-sad

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 face-sad

Gruss
Stefan
Spector
Spector 16.03.2006 um 21:28:01 Uhr
Goto Top
- 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

Ich vermute, das wird keinen Erfolg erzielen...
einzigsteLösung, die ich bisher sehe, ist alles einfach weiterlaufen zu lassen.
da wenn ich die current Dateei des Webalizers lösche alles futsch ist und erst, wenn ich diese entferne macht er Aktionen VOR dem aktuell gelaufenen Webalizer-Lauf.
stpe
stpe 16.03.2006 um 21:35:53 Uhr
Goto Top
einzigsteLösung, die ich bisher sehe, ist alles einfach weiterlaufen zu lassen.
Naja, dann hast Du wenigsten in Zukunft keine Lücken mehr.

Hoffe, wir konnten wenigstens ein kleines Stück weiterhelfen.

Gruss
Stefan
Spector
Spector 16.03.2006 um 22:11:38 Uhr
Goto Top
Ja ein wenig schlauer bin ich jetzt.
ich hoffe nur, dass ich vielleicht irgendwann mal eine Problemlösung vorlegen kann...
Danke nochmal an alle, die mir versucht haben zu helfen.