logFiler 0.5
logFiler ist eine PHP-Anwendung, mit der man Zugriffe auf seine Website in Echtzeit verfolgen und auswerten kann. Einzige Voraussetzung ist PHP ab Version 4.
Version 0.5 vom 25. Februar 2005
Was ist neu:
- In der Datei „logfiler_config.php“ kann jetzt festgelegt werden, ob bestimmte Referrer, User Agents oder Remote User blockiert werden, genauer gesagt einen 403 Header bekommen sollen. Die entsprechenden Daten trägt man, wie an den Beispielen zu sehen ist, in eine Liste ein. Es besteht die Möglichkeit, blockierte Zugriffe in das Logfile schreiben zu lassen. Entsprechende Einträge erscheinen in der Referrer- und in der Zugriffe-Ansicht in roter Schrift.
- Aus der Auswertung „User Agents“ ist jetzt „Browser&OS“ geworden. Dort werden neben allen User-Agent-Strings auch die absoluten Zahlen und die Anteile der gängigsten Browser, Feedreader und OS angezeigt.
- In der Referrer- und in der Zugriffe-Ansicht werden in der Spalte „User Agents“ die Browser nicht mehr unter „Mozilla“ zusammengefasst. Jetzt werden die tatsächlichen Browser, Feedreader, Bots und OS angezeigt,
- Nach der Auswahl einer Logdatei werden jetzt automatisch die Referrer angezeigt, anstatt lediglich die Menüzeile.
- Bei den Suchbegriffen werden jetzt auch die von Web.de erkannt und angezeigt. Außerdem werden Treffer bei den Bildersuchmaschinen von Yahoo und Google angezeigt und mit „Image“ markiert.
- Zu „Suchbegriffe“ hat sich „Links“ gesellt. Dort werden die Suchbegriffe, die auf die eigene Website geführt haben, als Links dargestellt, so dass man die Suchabfragen einfach und bequem selbst nachvollziehen kann.
- Der Menüpunkt „Verlauf“, den ohnehin niemand benutzt hat, ist dafür entfallen. Wer ihn wieder haben möchte, muss in Zeile 131 der logfiler.php einfach nur die Kommentarzeichen entfernen.
- Bugfix: Steht für die Ausführung von PHP-Scripts nur wenig Speicher zur Verfügung, gibt es jetzt keine Probleme mehr beim automatischen Sichern und beim Durchsuchen einer log.txt, die größer als 3 MB ist.
- Bugfix: Die Spaltensortierung funktioniert jetzt auch bei anderen Logdateien als nur bei der aktuellen.
Update
Damit die neue Blockier-Funktion auch wirkt, muss die logger.php nicht, wie bei den Vorversionen empfohlen, am Ende, sondern am Anfang jeder zu loggenden Datei eingebunden werden.
Ähnliche Beiträge:
Tampopos Nudelsuppe Bossa Nova-Füllhorn
Kommentare:
Bei den Kommentaren handelt es sich um fremde Inhalte, die sich „esse est percipi“ nicht zueigen macht. Verantwortlich für den Inhalt eines Kommentars ist der jeweilige Verfasser.
mist.. ich krieg es nicht hin, weiss nicht, ob es an der php version auf meinem server liegt??
Warning: file() [function.file]: open_basedir restriction in effect. File(/logfiler/data/log.txt) is not within the allowed path(s): (/www/htdocs/meinname/) in /www/htdocs/meinname/logfiler/logfiler.php on line 20
Warning: file(/logfiler/data/log.txt) [function.file]: failed to create stream: Operation not permitted in /www/htdocs/meinname/logfiler/logfiler.php on line 20
danke für den flotten support, jetzt seh ich aber gar nüscht mehr. müssen die zu trackenden docs jetzt wg des includes alle als php gesichert sein..? sorry, bin keine php-heldin :o]
Ich bekomme keine Fehlermeldung, allerdings bleibt die log.txt leer.
Habe extra das ganze ‘data-Verzeichnis’ schreibbar gemacht..
der erste fehler der mir so aufgefallen ist, muss es nicht:
<?php include(„logfiler/logger.php“); ?> heißen?
(in der readme-datei)
aber es funktioniert immer noch nicht..
ich denke es liegt am serverpfad.
wie sollte der aussehen,
eher so: /srv/www/htdocs/web4/html/logfiler/data/log.txt
oder: /html/logfiler/data/log.txt
oder: html/logfiler/data/log.txt
.
.
. ?
ah, werd ich beherzigen. danke allen für die diversen aufschlüssigkeiten ;o)
Ich hatte auch erst nur eine leere Seite angezeigt bekommen und die log.txt blieb ebenfalls leer. Der Grund war offenbar, dass ich die PHP-Dateien in einem Windows-Editor bearbeitet und gespeichert hatte. Dadurch gingen wohl die Zeilenumbrüche verloren. Man möge mir verzeihen, dass ich den genauen technischen Hintergrund hier nicht kenne.
Geholfen hat nur, das Speicherformat der Dateien auf „UNIX“ umzustellen, z.B. im NoteTab Light in den Document Properties bei „Save As“
Erstmal vielen Dank für die Bereitstellung des logFiler. Ich habe heute alles so gemacht wie es beschrieben wurde, allerdings habe ich auch nur eine leere Seite, wenn ich die logfiler.php aufrufe. Jedoch sind in der log.txt schon Daten vorhanden. Nun bin ich am Ende mit meinem Latin.
Hat vielleicht jemand einen Tip?
Schon mal vielen Dank.
Bei einer Vorgängerversion hat mal irgendjemand irgendwo geschrieben, dass es bei ihm erst lief, als er die Komprimierung in der logfiler.php ausgeschaltet hatte, da diese auf seinem Server nicht unterstützt wurde.
Bei logFiler 0.5 stellt man sie ab, indem man Zeile 19:
ob_start("ob_gzhandler");
entweder komplett löscht oder diese Zeile auskommentiert, indem man an den Anfang der Zeile entweder zwei Schrägstriche // oder das Zeichen # setzt.
Viel Erfolg!
Danke für die schnelle Hilfe, jetzt geht es… ich freu mich sehr…
Liebe Grüße.
Vielen Dank für das interessante Skript! Auch ich habe erst nach Berücksichtigung des Tipps von Oliver Daten sehen können.
Hallo!
Ich habe mal kurz logfiler angeschmissen und bin recht angetan. Ein paar Vorschläge/Bugs:
In Zeile 19 von logfiler.php steht: ob_start(„ob_gzhandler“);
Damit liefs bei mir weder in Safari noch in Camino – sollte das ob_start nicht vor der ersten Ausgabe stehen, damit es funktioniert? Ich habs jetzt kurzerhand auskommentiert.
In logger.php Zeile 17-24: hat es einen bestimmten Grund dass du die Datei Zeile für Zeile kopierst und nicht einfach mit rename() verschiebst. Dürfte deutlich schneller sein.
@ Manuela: Spätestens bis zur nächsten Version wird es ein FAQ geben, momentan sammele ich noch …
@ Max: Wahrscheinlich ist auf deinem Server die zlib-Extension nicht installiert, denn bei mir funktioniert es sowohl in Safari als auch in Firefox.
Das kopieren hat historische Gründe – bei der ersten Version klappte irgendwas mit dem Verschieben der Datei nicht, seitdem wird halt kopiert. Da das um 12 Uhr nachts passiert, spielt die Geschwindigkeit nicht eine so große Rolle. Aber ich nehme das mal als Anregung für eine der nächsten Versionen…
Michael (Preidel), vielleicht solltest du bei denem PHP mal das errorlevel auf E_NOTICE setzen. Dann siehst du nämlich, dass if ($_SERVER["HTTP_X_FORWARDED_FOR"]) { nicht wirklich erlaubt ist zum überprüfen ob eine variable existiert, eigentlich sollte es heissen if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])) {. Das selbe mit den „Konstanten“ H und i, die sind eigentlich auch nicht defniniert, werden aber ohne E_NOTICE von PHP automatisch nach „H“ bzw. „i“ konvertiert.
Gruss ®
@ Michael: Gute Idee mit dem Cookie, das werde ich sicherlich in eine der nächsten Versionen umsetzen. Die Zeitkonstanten werde ich korrigieren, ebenso werde ich eine Abfrage einbauen, ob die Server-Variable HTTP_X_FORWARDED_FOR existiert (Ich wusste bisher nicht, dass es Apaches gibt, die die nicht kennen).
Was ich allerdings nicht verstehe: Warum musstest du die Pfadangabe in der logger.php ändern? logfiler_config.php und logger.php liegen doch beide im Ordner logfiler? Oder hast du logger.php ins Hauptverzeichnis gelegt?
@ Raphael: Fast, aber nicht ganz. Ich hatte nach dem Kommentar von Michael mittlerweile schon festgestellt, dass es offensichtlich Apache Konfigurationen gibt, die die Variable HTTP_X_FORWARDED_FOR nicht kennen – was ich bisher nicht wusste.
Allerdings ergibt if ($_SERVER["HTTP_X_FORWARDED_FOR"]) { auch nur dann eine Warnung, wenn die Variable tatsächlich nicht existiert – existiert sie, gibt es auch keine Warnung.
Was ich aber an der Stelle eigentlich mache, ist abfragen, ob die Server Variable HTTP_X_FORWARDED_FOR einen Wert enthält. Konkret muss ich also, um das Vorhandensein und das Enthalten eines Werts zu prüfen, if (!empty($_SERVER["HTTP_X_FORWARDED_FOR"])) { schreiben. Falls die Variable nicht existiert, gibt PHP übrigens keine Warnung aus.
Nein, beide Dateien liegen im Unterverzeichnis „logfiler“ auf gleicher Ebene. Aufgerufen wird die logger.php von meiner im Hauptverzeichnis liegenden weblog.php per include ("logfiler/logger.php");.
Ich habe keine Ahnung – es hat auch ewig gedauert, bis ich es herausgefunden habe, da ich denklogisch niemals darauf gekommen wäre, denn die beiden Dateien liegen auf einer Ebene und der Aufruf müsste funktionieren… Leider erhielt ich immer die Fehlermeldung „Probleme mit der Logdatei!“. Mittels Ausgabe der Variableninhalte merkte ich dann, dass die Variable $logfile_path leer war, daraufhin, dass die logfiler_config.php nicht eingelesen wurde – ohne Ausgabe einer Fehlermeldung. Erst die o.a. Änderung führte dazu, dass die Config-Datei gefunden wurde. Habe das soeben noch einmal getestet und den Pfad geändert: Prompt erhielt ich wieder die Fehlermeldung „Probleme mit der Logdatei!“.
Cookie-Geschichte: Super, dass dir die Idee gefällt. Warte dann gespannt auf die nächste(n) Version(en) ;-)) Thanx!
Viele Grüße, Michael.
Hallo. Erstmal danke für das Programm. Es ermöglicht wirklich interessante Einblicke in das Treiben seiner Besucher und das in Echtzeit.
Ich habe es auf zwei Domains installiert und einige Tage lang funktionierte es tadellos. Aber nun haben innerhalb von 24 Stunden die Scripte auf beiden Domains ihre Arbeit eingestellt.
Ich bekam nun noch die Meldung
Warning: unlink(/home/blog/logfiler/data/log.txt): Permission denied in /home/blog/logfiler/logger.php on line 25
Keine Ahnung, ob es an meinem Server lag. Sind die Logdateien vielleicht zu groß geworden?
Ich glaube nicht, dass sie schon nach einem Tag zu groß geworden sind, das werden sie – je nach PHP Speicher – erst nach ungefähr 24.000 Seitenaufrufen.
Der Fehler beschreibt auch was anderes: Nach dem Backup kann die Datei log.txt nicht gelöscht (unlink) werden, weil die Erlaubnis dazu fehlt. Das passiert u.a., wenn die Datei noch in Gebrauch ist (hier nicht der Fall, da vor dem unlink die Datei mit fclose ordnungsgemäß geschlossen wird) oder aber bei nicht genügenden Zugriffsrechten.
Setz mal mit einem FTP Programm die Zugriffsrechte des Ordners data auf 777, bzw. kreuz bei allen Lese- Schreib- und Ausführrechte an. Für die log.txt selbst sollten 644 (alle dürfen lesen, Besitzer darf schreiben) ausreichen.
Viel Erfolg.
Fehler: Kann ich da irgend etwas machen, oder ist das alles eine Folge von SAFE MODE?
Warning: opendir(): SAFE MODE Restriction in effect. The script whose uid/gid is 1825/1012 is not allowed to access /home/... owned by uid/gid 0/0 in /home/.../logfiler/logger.php on line 61
Warning: opendir(/home/.../logfiler/data/user_online/): failed to open dir: No such file or directory in /home/.../logfiler/logger.php on line 61
Warning: fopen(/home/..../logfiler/data/user_online/82.150.200.4): failed to open stream: No such file or directory in /home/.../logfiler/logger.php on line 61
Warning: fclose(): supplied argument is not a valid stream resource in /home/.../logfiler/logger.php on line 61
Warning: readdir(): supplied argument is not a valid Directory resource in /home/.../logfiler/logger.php on line 61
Warning: closedir(): supplied argument is not a valid Directory resource in /home/..../logfiler/logger.php on line 65
Danke im voraus!
Gerhard
Vielen Dank für das hervorragende Skript! Sowas habe ich lange gesucht, nie gefunden, und dann stolpere ich hier mehr oder weniger drüber… :)
@ Gerhard Marini: Ja, das liegt am SAFE MODE. Es sieht so aus, dass /home/ dem User mit der ID 0 (wahrscheinlich www_root oder sowas) gehört, während /home/.../logfiler/logger.php dem User mit der ID 1825 (also Ihnen) gehört. Es gibt zwei Möglichkeiten: SAFE MODE auf off stellen, oder aber per „chown“ den logger.php Eigentümer auf 0 ändern. Da das aber nur mit Root-Zugang funktioniert, müssen Sie wahrscheinlich den Provider bitten, Ihnen weiterzuhelfen. Wichtig: bevor der Eigentümer geändert wird, müssen die Rechte auf 777 gesetzt werden, da die Dateien nach dem chown nicht mehr Ihnen gehören und Sie andernfalls nichts mehr mit Ihnen machen können.
Danke für die kompetente Auskunft. Werde mich mit meinem Provider in verbindung setzen, damit ich auch in den Genuss des tollen Skripts komme ;-).
Fehler behoben – das Skript läuft auch unter Safe Mode ON. Das Problem war, dass ich blöderweise ein Verzeicnis (log_backups/) nicht in dem Pfad angelegt habe, wie es in der config-Datei definiert war.
Mea culpa …
ich habe die server-verzeichnisse eingestellt, obige tips bzgl. schreibrechten gecheckt usw… trotzdem bekomme ich folgende fehlermeldung:
Warning: fopen(/var/www/web769/html/logfiler/data/log_backups/log-050710.txt): failed to open stream: Permission denied in /var/www/web769/html/logfiler/logger.php on line 12
Probleme mit der Logdatei!
Hm, in Zeile 12 wird ein bestimmtes Datumsformat erstellt, das erzeugt diesen Fehler garantiert nicht. Kann es sein, dass am Quellcode etwas verändert wurde? Ansonsten kann ich nur darauf hinweisen, dass es sich – wie der Fehlerstring ja auch deutlich sagt – um ein Rechte-Problem handelt.
Wie ich oben schon mal schrieb: Setz mal mit einem FTP Programm die Zugriffsrechte des Ordners data auf 777, bzw. kreuz bei allen Lese- Schreib- und Ausführrechte an. Für die log.txt selbst sollten 644 (alle dürfen lesen, Besitzer darf schreiben) ausreichen.
Dabei bitte ankreuzen, dass die gleichen Rechte auch für alle Unterordner gesetzt werden sollen. Falls diese Möglichkeit nicht vorhanden ist, die Rechte des Ordners log_backups per Hand auf 777 setzen.
Damit sollte das Problem eigentlich behoben sein.
hallo michael,
tolles log, würde mir einiges an mehr an information über meine site besucher zeigen.
ich habe mir dein logfiler auf der hp installiert, alle pfade, korrekt angegeben, doch nichts weiter als ein leerer screen.
es hat auch nichts geholfen den registrierlink in der index.html zu einem freund auf die hp weiterzuleiten. kann es vielleicht auch daran liegen das mein provider php4.3.8 eingerichtet hat?
grüße steffen
Mir geht´s wie steffen, auch nur eine leere Anzeige. Obwohl ich meine, alles richtig eingestellt zu haben.
Doch steffen hat ja auch noch keine Antwort.
An der PHP-Version liegt es nicht. Weiter oben in den Kommentaren werden zwei Möglichkeiten beschrieben (Config-Datei falsch abgespeichert bzw. Komprimierung wird nicht unterstützt), an denen es liegen könnte. Dort steht dann auch, was man zur Abhilfe tun muss.
Kommentar schreiben:
FAQ (Häufig gestellte Fragen)
Kommentare:
- Michael Preidel zu CookieCrumble Testflight jetzt auch für macOS
- Götz zu CookieCrumble Testflight jetzt auch für macOS
- Michael Preidel zu Harbor – Sicherer Hafen [Testflight]
- Henning zu Harbor – Sicherer Hafen [Testflight]
- Michael Preidel zu Harbor – Sicherer Hafen [Testflight]
- Michael Preidel zu Harbor – Sicherer Hafen [Testflight]
Schlagwörter
