Webalizer 2.1-10: Probleme mit riesigen Log-Files

Apache, Lighttpd, nginx, Cherokee
Post Reply
simcen
Posts: 333
Joined: 2003-02-12 14:35
Location: Bern, Schweiz
Contact:
 

Webalizer 2.1-10: Probleme mit riesigen Log-Files

Post by simcen »

Hallo Zusammen

Ich muss für das letzte Jahr Statistiken aus den Apache-Logsfiles (Logformat ist combined) erstellen. Dazu habe ich alle Log-Files in eine einzelne Datei gemergt, welche nun etwas mehr als 7GB gross ist.
Auf der Website von Webalizer entnehme ich:
[...]Unlimited log file sizes[...]

Doch leider scheitert Webalizer beim Versuch, das Log-File zu parsen:
simcen@ambador:~$ webalizer
Webalizer V2.01-10 (Linux 2.4.26) English
Error: Can't open log file /home/simcen/logs/access.log
Erstelle ich ein Test-Log-File mit dem Ende (tail) des access-logs, hat Webalizer keine Probleme.

Nun zu den Fragen:
1. Sieht jemand eine Lösung, wie ich aus den Massen von Access-Logfiles (ca. 260) ohne grösseren Aufwand mit Webalizer Statistiken erstellen kann?
2. Kann mir jemand eine andere Software empfehlen, die für meinen Gebrauch geeignet ist?

Besten Dank für Hilfe
Liebe Grüsse
Simon
simcen
Posts: 333
Joined: 2003-02-12 14:35
Location: Bern, Schweiz
Contact:
 

Re: Webalizer 2.1-10: Probleme mit riesigen Log-Files

Post by simcen »

Komisch, immer wenn ich in diesem Forum ein Post auf ein Problem verfasse, finde ich eine halbe Stunde später eine Lösung... :?

Ich hab einfach folgenden Befehl gebastelt:
find /home/simcen/logs/access.log.* -exec webalizer -c /home/simcen/webalizer.conf '{}' ; >> /root/webalizer.log 2> /root/webalizer_error.log &
und die webalizer.conf entsprechend angepasst, dass er das Log-File per stdin erwartet...

Mal schauen obs so funktioniert, bin seit einigen Minuten am parsen.
Ich denke aber nicht, dass dies eine super Lösung ist, die Fragen sind also noch offen...
eisbärmann
Posts: 28
Joined: 2004-06-27 14:04
 

Re: Webalizer 2.1-10: Probleme mit riesigen Log-Files

Post by eisbärmann »

hi epox,

ich verwende seit einigen Jahren webalizer. Eine andere Lösung wäre AWstats, ist komplett in Perl geschrieben und der Aufruf erfolgt per Browser.

Ich glaube mich aber an einige Sicherheitsprobleme erinnern zu können;-)

Wenn ich das aber richtig sehe, dann hast Du 260 Log-Files mit 260 verschiedenen Conf-Files?!

Braucht jede Deiner Hosts eine eigene Conf?

Webalizer lässt sich mit einigen Argumenten recht gur steuern:

Code: Select all

webalizer -p /pfad/access.log -o /pfad/stats/output -n Domain.name
Webalizer greift dabei die allgemeinen Einstellungen aus der /etc/webalizer.conf ab und bindet sie mit ein.

Im Prinzip kann die ganze Logfileerstellung durch ein schnelles Skript erledigt werden.

Du brauchst nur noch eine Tabelle mit den Werten für die Logfile eines Hosts, das Ausgabeverzeichnis und den Hostnamen.

Für jede Zeile wir webalizer mit den richtigen Argumenten aufgerufen.

Zum Abschluss einer jeden Staterstellung könntest Du die Logfile komprimieren und eine neue anlegen. Das spart wertvolle Zeit beim nächsten Durchlauf und hält die Belastung in einem annehmbaren Bereich.

Ach ja, das Skript nach Ablauf eines bestimmten Turnus aufrufen lassen :?
juergen
Posts: 133
Joined: 2004-03-30 14:44
Contact:
 

Linux auf 32 Bit-Systemen

Post by juergen »

hat per default eine maximale Dateigröße von 2GB, wenn man beim Systemaufruf nicht das Flag O_LARGEFILE angibt. Ich hab eben mal den webalizer ge"strace"ed:

Code: Select all

open("test.log", O_RDONLY)   
für ihn ist also ab 2GB schluss, steht auch in der man-page von open(2), Auszug:

Code: Select all

O_LARGEFILE
              On 32-bit systems that support the Large Files System, allow files whose sizes cannot    
              be represented in 31  bits  to be opened.
Bleibt dir also nichts weiteres übrig, als die Dateien spliten, oder per STDIN lesen. Oder den Webalizer patchen :-D

Der Apache hört übrigens auch bei 2GB auf zu schreiben. Also öfter mal rotieren.
Post Reply