Entwickler-Ecke
Freeware Projekte - Web-Log-Analyzer
jasocul - Mo 17.04.06 13:32
Titel: Web-Log-Analyzer
Mein Hoster hat zum Jahreswechsel die Statistik aus dem Paket genommen. Ein Nachfrage ergab den Hinweis, dass es genügend andere Programm gäbe, die eine entsprechende Anlayse der Log-Files ermöglichen würde.
Dann habe ich mich auf die Suche gemacht und auch einiges gefunden. Aber die guten Programme waren mir zu teuer und die kostenlosen einfach schlecht. Mag sein, dass ich nur nicht richtig gesucht habe, aber ich hatte dann die Schnauze voll und mir gedacht: "Selbst ist der Mann".
Das Ergebnis ist mein WebLogAnalyzer. Bisher allerdings nur ein Prototyp. Ich wollte iinh allerdings schon jetzt veröffentlichen, damit die weitere Entwicklung in die richtige Richtung geht.
Wie bei einem Prototyp üblich, wird es noch viele Fehlerquellen geben. Verschiedene (oder defekte) Log-Formate könnten das Programm zum Absturz bringen. Allerdings habe ich bsher noch keins gefunden. Fehlerprüfungen sind nur eingeschränkt enthalten, damit die Fehler auftauchen.
Auswertungen sind bisher nur zwei enthalten: Visits und Hits. Ich wollte noch nicht zuviel einbauen. Erstens gibt es bestimmt überflüssige Auswertungen und zweitens sollte das für einen Prototyp erstmal genügen.
Theoretisch funktioniert alles im Programm, was verfügbar ist. Nur eine Sache nicht: Eine Zusammenfassung nach Woche, Monat und Jahr ist zwar auswählbar, aber noch nicht realisiert. Alle Auswertungen sind also tagesgenau.
Das Programm erzeugt im Anwendungsverzeichnis zwei weitere Dateien um die Konfiguration und die Blacklist zu speichern. In der Registry wird nichts eingetragen. Eine Installation ist auch nicht erforderlich, da das Programm ohne weitere Tools funktionieren sollte.
Was ich mir von euch Wünsche:
Testet das Programm.
Schreibt mir, welche Auswertungen ihr haben möchtet.
Was sollte am Design verändert werden?
Sind weitere Filter-Vorgaben sinnvoll?
etc.
Änderungen werden bei mir nicht so schnell umgesetzt, da ich auch noch andere Dinge machen muss. Bin halt kein Schüler mehr mit viel Freizeit.
Da ich aber ein eigenes Interesse am Programm habe, wird alles brauchbare wohl umgesetzt werden.
Schonmal vielen Dank für eure Hilfe.
matze - Mo 17.04.06 17:22
also ich hab grad mal das Logfile von meinem Server mit ca. 50 MB einlesen lassen.
Es dauert ziemelich lange und die Progressbar mit diesen riesigen Blöcken ist da nicht so toll. Evtl mal auf Smooth umstellen und evtl auch eine Restzeitanzeige. Vielleicht kann man das ganze noch schneller machen ?
Danach konnte ich es leider nicht weiter testen, weil dann das Programm abgestürzt ist und nichtmehr reagiert hat.
BenBE - Mo 17.04.06 17:54
Also, mir sind folgende Dinge aufgefallen:
1. Die großen Kästchen, sollten echt ein klein wenig winziger werden
2. Bei fehlerhaften Logfile-Daten stürzt das Programm ab
3. Die Auswertung könnte umfangreicher sein?
- Auswertung nach IP \ Domain (nachträgliche Auswertung der DNS-Namen muss möglich sein)
- Auswertung nach Uhrzeit
- Auswertung nach Länge des Visits
- Auswertung der Referer
- Auswertung von Google-Anfragen
- Auswertung nach Traffic (nach Tag, nach Uhrzeit, nach IP)
- Auswertung nach Status-Codes
- Auswertung von fehlerhaften Links
- Auswertung der Browser \ Betriebssysteme (Über browscaps.ini auch incl. Supportete Features)
- Häufigste Adresse, Häufigste File, ...
4. Komprimierte Logfiles im tar.gz und tar.bz-Format sollten eingelesen werden können
5. Laden der Logfiles direkt über einen FTP-Server wäre praktisch
Ich hoffe, diese Anregungen füllen deinen Programmierkalender erstmal wieder ein wenig bis zum Release der nächsten Version.
bis11 - Mo 17.04.06 19:31
Hi,
auch ich habe das Programm ausprobiert. Ich kann mich meinen Vorrednern nur anschließen. Bei meinem 3,5MB großem LOG-File vom Apache 2.0.50 hat er mir erst einen Fehler ausgespuckt, daß er das Datum nicht kennt und dann ist das Programm abgestürtzt.
jasocul - Mo 17.04.06 20:51
Kurze Rückmeldung:
1. So große Log-Files hatte ich bisher nicht. Ich werde mir aber eins zum Test konstruieren.
2. Programm-Absturz sollte eigentlich nicht passieren. Ich werde ein Fehlerprotokoll einbauen.
3. Eine Anpassung der Fortschritts-Anzeige dürfte nicht so schwierig sein. :wink:
4. Einlesen von komprimierten Dateien ist geplant, aber nicht in der ersten Version.
5. Direkter ftp-Zugang ist ebenfalls geplant, aber auch nicht in der ersten Version.
@BenBE:
Ich wollte nicht alle denkbaren, sondern alle sinnvollen (und machbaren) Auswertungen wissen. Eine Verweildauer ist über ein Log-File nicht feststellbar.
| Zitat: |
| Auswertung der Browser \ Betriebssysteme (Über browscaps.ini auch incl. Supportete Features) |
Hast du da noch ein paar Infos? Dass Browser-Infos im Log enthalten sind, ist klar. Leider ist das teilweise ziemlich unstrukturiert.
@bis11:
Kannst du feststellen was für ein Datums nicht zu verarbeiten war? Evtl. kannst du mir einen Auszug aus deinem Log-File zukommen lassen? Wird natürlich vertraulich behandelt.
@matze:
Voraussichtliche Restzeit sollte möglich sein. Was meinst du mit "auf Smooth umschalten"? Schneller machen muss ich mal sehen. Das Einlesen wird über eine StringList gemacht, Die Verarbeitung der Daten geht über String-Operationen in eine Memory-DataSet. Ich werde mir mal eine große Datei produzieren und schauen, wo der Engpass ist.
Auf jeden Fall danke ich euch für die ersten Rückmeldungen.
BenBE - Mo 17.04.06 21:09
jasocul hat folgendes geschrieben: |
Kurze Rückmeldung:
1. So große Log-Files hatte ich bisher nicht. Ich werde mir aber eins zum Test konstruieren. |
Mein 1-MB-Logfile ging eigentlic recht zügig (3-4 Sekunden) wenn man das aber mal 50 nimmt, ist die Beschwerde verständlich. In Bezug auf die StringLists kann ich Dir sowohl Begin-Update\End-Update als auch die Nutzung von PChars zum Parsen empfehlen.
jasocul hat folgendes geschrieben: |
4. Einlesen von komprimierten Dateien ist geplant, aber nicht in der ersten Version.
5. Direkter ftp-Zugang ist ebenfalls geplant, aber auch nicht in der ersten Version. |
Das klingt doch schon mal gut ;-)
jasocul hat folgendes geschrieben: |
@BenBE:
Ich wollte nicht alle denkbaren, sondern alle sinnvollen (und machbaren) Auswertungen wissen. Eine Verweildauer ist über ein Log-File nicht feststellbar. |
Ich meinte auch eher den indirekten Web über erste Anfrage einer IP bis zur letzten über Referer verbundenen Anfrage ... Diese Zeit sollte einen groben Einblick geben, wie lang ein Besuch gedauert hat. Dass man aus ner Apache Log keine Infos von der Client-Site über die Verweil-Dauer bekommt, ist mir klar. ;-)
jasocul hat folgendes geschrieben: |
| Zitat: | | Auswertung der Browser \ Betriebssysteme (Über browscaps.ini auch incl. Supportete Features) |
Hast du da noch ein paar Infos? Dass Browser-Infos im Log enthalten sind, ist klar. Leider ist das teilweise ziemlich unstrukturiert. |
IIRC liegt dem PHP-Interpreter eine Datei browscap.ini bei, die für jeden bekannten Browser einen Eintrag mit dem User-Agent-String (Maskiert) und einer Angabe unterstützter Features sowie dem eigentlichen Browser-ID-String und der Version enthält. Nähere Informationen finden sich auf der
PHP.net [
http://www.php.net/]-Page im
Manual [
http://de.php.net/manual/de/function.get-browser.php].
jasocul hat folgendes geschrieben: |
| Auf jeden Fall danke ich euch für die ersten Rückmeldungen. |
Als Webmaster möchte man solche Analysen auch ohne Server-Belastung durchführen können - da hilft man doch gern ;-)
Delete - Mo 17.04.06 22:57
Aus dem Programm raus noch direkt eine Downloadmöglichkeit für die Log-Datei wäre schön.
jasocul - Di 18.04.06 07:27
Luckie hat folgendes geschrieben: |
| Aus dem Programm raus noch direkt eine Downloadmöglichkeit für die Log-Datei wäre schön. |
Das soll später über den ftp-Zugang realisiert werden. Die Log-Dateien könnten dann eingelesen werden und mit "Speichern unter" lokal abgelegt werden. Oder habe ich dich jetzt falsch verstanden?
Delete - Di 18.04.06 11:01
Hi. :wave:
:zustimm: Hübsches Tool, Jasocul. (reimt sich :mrgreen:)
Was mich noch stört ist die Legende neben der grafischen Auswertung. Der Sinn erschließt sich mir nicht so ganz...
PS: Außerdem hat das Programm Probleme mit dem Öffnen der Log-Datei, wenn
- Der Server auf meinem Rechner läuft - und
- Der Server gerade läuft
jasocul - Di 18.04.06 11:12
Gibt es eine Fehlermeldung? Ich vermute, dass die Datei im Zugriff ist.
Delete - Di 18.04.06 13:04
Hi Jasocul.
Richtig vermutet. ;-)
Es wundert mich nur, dass ich die Datei mit einem Texteditor öffnen kann, aber nicht mit deinem Programm. :?
PS:
| Fehlermeldung: |
Webloganalyzer __________________________________________________________
Datei C:\Programme\Sambar Server\log\access.log kann nicht geöffnet werden. Der Prozess kann nicht auf die Datei zugreifen, da sie von einem anderen Prozess verwendet wird.
[OK] |
jasocul - Di 18.04.06 13:37
Das ist aber in den Griff zu bekommen. Hatte das bisher nur nicht berücksichtigt, da ich zunächst von einem OffLine-Zugriff ausgegangen bin.
Das Geschwindigkeitsproblem habe ich auch gefunden. Dafür muss ich im Konzept was ändern. Zum Glück habe ich das Programm in einem frühen Stadium zum Testen reingestellt. Ursache ist das Memory-DataSet. Höllisch langsam, wenn mal ein paar mehr Daten ankommen. Ich habe es einfach rausgenommen und jetzt dauern 30 MB nur noch 4 Sekunden (Vorher > 50 Sekunden). Aber das wird bestimmt wieder ein bisschen langsamer, da ich die Daten ja in aufbereiteter Form benötige.
Locke - Di 18.04.06 14:09
Also ich habe auch noch eine interessante Fehlermeldung erhalten:
| Zitat: |
| 26.06.2005 ist kein gueltiges Datum. |
Und irgendwie laedt das Programm schon seid ner halben stunde meinen 25 MB log ;)
mfg Locke
jasocul - Di 18.04.06 15:13
Geschwindgkeitsproblem ist schon erkannt. Da das aber ein konzeptionelles Problem ist, dauert die Korrektur ein bisschen.
Dass mit dem Datum irritiert mich schon. Kannst du den Bereich deines Logs soweit einschränken, dass du mir einen Auszug mit dem Problem-Datensatz schicken kannst? Vertraulichkeit ist selbstverständlich.
matze - Di 18.04.06 16:37
mit auf Smooth umstellen meine ich eigedlich den "smooth" parameter der Profressbar :-)
Ich sollte mich mal verständlicher ausdrücken.
jasocul - Di 18.04.06 16:53
Ich hätte ja auch mal nachsehen können. Ich kannte den Parameter schlicht nicht. Deswegen war ich verwirrt.
bis11 - Di 18.04.06 19:22
Mal eine Frage, wertet Dein Tool nach den gleichen Vorgehen aus wie Webalizer ? Das soll heißen, wenn im LogFile die folgende Zeile steht :
Quelltext
1:
| crawl-66-249-72-39.googlebot.com - - [01/Jan/2006:03:43:01 +0100] "GET /faqprinting.php?id=556 HTTP/1.1" 200 1713 |
Wertet er dann nur nach
faqprinting.php aus oder nach
faqprinting.php?id=556 ? Da ich das Tool ja nicht richtig testen kann, frage ich einfach mal.
BenBE - Di 18.04.06 19:28
Ich wäre dafür, dass beides möglich ist ...
jasocul - Di 18.04.06 21:00
Bisher wertet das Programm den Bereich noch gar nicht aus. Das war ja auch eine meiner Fragen: Welche Auswertungen sollen das Programm können?
Denkbar wäre es, das optional zu machen: Auswertung der aufgerufenen Seiten mit und ohne Berücksichtigung der Parameter.
Ich nehme es auf jeden Fall in meine Überlegungen mit auf.
EDIT:
@bis11 und @Locke:
Danke für die Logs. Datums-Fehler habe ich gefunden. Hing mit der Analyse der IP zusammen. In meinen Logs steht nur die IP. Bei euch steht eine aufgelöste IP. Dadurch blieb für den zweiten Bereich (Datum und Zeit) Text stehen, der als Datum interpretiert werden sollte.
An der Geschwindigkeit konnte ich auch schon was machen, zumal die Ursache relativ schnell klar war. Eine schnelle Änderung des Konzepts führt bei einer 3,5MB-Datei zu 16 Sekunden. Das reicht mir eigentlich nicht. Na ja, mal sehen, was ich noch rauskitzeln kann.
BenBE - Mi 03.05.06 20:52
In deinem Programm fehlt noch eine Möglichkeit, nach bestimmten IPs filtern, bzw. nach den einzelnen Spalten zu sortieren.
jasocul - Mi 03.05.06 20:59
Filter sind schon in Vorbereitung. Eine Blacklist sollte schon nutzbar sein.
Die Sache mit der tabellarischen Darstellung wird wohl rausfliegen. Der Aufbau und die Verwaltung schluckt enorm viel Performance. Erste Tests haben ergeben, dass es ohne die Grid-Darstellung mindestens 20 mal schneller ist.
Vielleicht baue ich das als Option in einer späteren Version wieder ein. Im Moment ist die gesamte Anwendung aber nur eine riesige Baustelle. Deswegen gibt es zur Zeit keine neuere Version.
Außerdem musste letzte Woche unser PDC ausgtauscht werden und gleichzeitig war ein Drittel der Belegschaft auf einer Messe. Da fehlte es mir einfach an Zeit.
BenBE - Sa 21.07.07 16:40
Hi,
hab heut mal kurz in den Logs etwas nachsehen wollen und da fiel mir die fehlende Filter-Möglichkeit nach URL-Teilen unangenehm auf.
Gibt es von deinem Programm bereits eine aktualisiertere Fassung, die auch mit großen Logfile-Beständen (mehrere Dateien, insgesamt >200MB) schnell arbeiten kann?
Ach ja: Hab grad eine 80-MB-Logfile (ist ne Filterung aus den anderen Logfiles), von der dein Programm behauptet, sie wäre leer. Danach bleibt das Fortschrittsfenster aber noch ununterbrochen stehen ...
MfG,
BenBE.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!