Server Logfiles lesen / kleines Tool / Windows 10 App / oder ohne Installation
oxo888oxo
- webserver
Hallo
Ich suche ein kleines und schlankes Tool, mit dem ich die Server Logfiles auslesen kann. Ich habe bei meinem Website-Hoster Zugriff auf die Logfiles.
Im Grunde interessieren mich nur die Referrer, wobei es die heute in Zeiten von https wohl kaum noch gibt. Richtig?
Und besonders interessieren mich die 404 Fehler. Also ich möchte schnell und einfach ermitteln, welche meiner nicht mehr existierenden Unterseiten "aufgerufen" wurden.
Ich möchte mir jetzt nicht eine große fette Software dafür installieren. Ich suche ein kleines schlankes Tool. Am besten eins, was auch von einem USB Stick läuft und garnicht erst installiert werden muss und welches auch nichts an meinem Windows 10 System ändert. Ich bin da immer extrem vorsichtig und pingelig :-)
Ich vermute mal als Online-Dienst gibt es sowas nicht, oder?
Gibt es da was, was jemand von Euch auch selbst benutzt und empfehlen kann?
Über Google findet man ja einiges. Aber ich weiß immer nicht, ob ich den diversen Download-Seiten trauen kann und so. Ich hoffe, Ihr könnt meine Vorsicht da verstehen.
Gruß Ingo
Hallo Ingo,
Ich suche ein kleines und schlankes Tool, mit dem ich die Server Logfiles auslesen kann. Ich habe bei meinem Website-Hoster Zugriff auf die Logfiles.
wieso ein Tool? Ein einfacher Texteditor genügt doch. Eventuell in Verbindung mit grep.
Im Grunde interessieren mich nur die Referrer, wobei es die heute in Zeiten von https wohl kaum noch gibt. Richtig?
Weiß ich nicht - aber ich sehe keinen kausalen Zusammenhang zwischen https und dem Vorhandensein des referer-Headers. Die beiden Dinge haben technisch nichts miteinander zu tun.
Und besonders interessieren mich die 404 Fehler. Also ich möchte schnell und einfach ermitteln, welche meiner nicht mehr existierenden Unterseiten "aufgerufen" wurden.
Verstehe.
Ich möchte mir jetzt nicht eine große fette Software dafür installieren. Ich suche ein kleines schlankes Tool. Am besten eins, was auch von einem USB Stick läuft und garnicht erst installiert werden muss und welches auch nichts an meinem Windows 10 System ändert. Ich bin da immer extrem vorsichtig und pingelig :-)
Tipp: Die Server-Logfiles können sehr unterschiedlich konfiguriert sein, was Umfang und Reihenfolge der Spalten betrifft. Sie lassen sich aber fast immer als CSV-Dateien parsen. Also nimm einfach Excel (oder LibreOffice/OpenOffice Calc) und importiere eine Logdatei über den CSV-Assistenten. Danach hast du alle Daten schön spaltenweise und kannst nach Herzenslust sortieren, filtern, suchen und vieles mehr.
Ich vermute mal als Online-Dienst gibt es sowas nicht, oder?
Und wenn: Ich würde es nicht wollen. Die Server-Logfiles enthalten potentiell schutzwürdige Inhalte, die ich nicht unbedingt unbeteiligten Dritten in den Rachen werfen möchte.
Live long and pros healthy,
Martin
Hallo @Martin
Ah ja alles klar. Das mit Excel ist eine tolle Idee. Habe es gerade auch schon probiert. Und alles klappt prima damit. Danke Dir für die gute Idee.
Gruß aus Münster Ingo
Hallo,
Das mit Excel ist eine tolle Idee.
Aber Vorsicht: im Gegensatz zu den Logdateien hat Excel eine Zeilenbegrenzung. Im Normalfall erreicht man diese Grenze nicht und die Logdateien sollte man eh nicht so groß werden lassen, aber ich wollte nicht unerwähnt lassen, dass es bei ungünstigen Umständen zu Datenverlust kommen kann.
Gruß
Kalk
Hi,
Das mit Excel ist eine tolle Idee.
Aber Vorsicht: im Gegensatz zu den Logdateien hat Excel eine Zeilenbegrenzung.
stimmt schon, aber da müssen die Logdateien schon sehr, SEHR groß werden, um in diese Begrenzung zu rennen: Excel verkraftet theoretisch bis zu 2²⁰-1 Zeilen (also gut eine Million).
Ob sich das Programm dann überhaupt noch bedienen lässt, ist eine andere Frage.
Im Normalfall erreicht man diese Grenze nicht und die Logdateien sollte man eh nicht so groß werden lassen, aber ich wollte nicht unerwähnt lassen, dass es bei ungünstigen Umständen zu Datenverlust kommen kann.
Ja. okay. Dass gerade Excel für solche Dinge eh nicht primär gedacht ist, sollte einem bewusst sein (und bei den freien Office-Suiten sieht's nicht viel besser aus). Diese Programme zielen in erster Linie auf den Finanzsektor ab, weniger auf den technisch-wissenschaftlichen Bereich.
Live long and pros healthy,
Martin
Hallo,
Aber Vorsicht: im Gegensatz zu den Logdateien hat Excel eine Zeilenbegrenzung.
stimmt schon, aber da müssen die Logdateien schon sehr, SEHR groß werden, um in diese Begrenzung zu rennen: Excel verkraftet theoretisch bis zu 2²⁰-1 Zeilen (also gut eine Million).
Ja, seit Excel 2007. Vorher waren es beachtliche 65536 Zeilen. Also auch auf die Version achten, oder eben die Konkurrenz nehmen…
Gruß
Kalk
Vorher waren es beachtliche 65536 Zeilen
In der 32-Bit Version ist das, glaub ich, bis „heute“ so.
Excel verkraftet theoretisch bis zu 2²⁰-1 Zeilen (also gut eine Million).
Gut, dass Du das „theoretisch“ erwähnt hast. Mit einer solchen Tabelle zu Arbeiten macht nämlich - vor allem bei der automatischen Neuberechnung aller Ergebnisse - keinen „Spaß“.
Hallo oxo888oxo,
Und besonders interessieren mich die 404 Fehler.
Wäre es dann nicht sinnvoll, im Webserver eine spezielle Error-Seite für die 404er einzurichten, die auf Server-Code läuft (z.B. PHP) und die Aufrufe in einer Datenbank vermerkt?
Wenn Du wie wild auswerten willst, machst Du einen Eintrag pro 404er, oder Du aggregierst gleich: mit INSERT ON DUPLICATE KEY UPDATE je URL eine Row und dann einfach einen Zähler hochdrehen.
Um zu beschreiben, wie man das genau macht, müsste man wissen, was Du für solche Dinge im Werkzeugkasten hast.
Rolf
Ingo hatte einen neuen Thread aufgemacht, aber das gehört hierher. Darum habe ich dort geschlossen. Dies ist der Text aus seinem Posting dort:
Ich betreibe einen Online-Shop. Nun gib es im Internet diverse Links zu Produktseiten, die nicht mehr existieren (von mir gelöscht, weil es die Produkte nicht mehr gibt). Ich möchte gerne in Erfahrung bringen, welche von meinen nicht mehr existierenden Produktseiten noch ab und zu aufgerufen werden.
Dabei ist es mir wichtig zu unterscheiden, ob diese toten URLs von Suchmaschinen-Bots oder echten Menschen/Usern aufgerufen werden.
Ich habe bei meinem Hosting Provider (1&1 Ionos) Zugriff auf meine Server Log Dateien. Diese öffne ich mit Excel, so dass ich alles schön in Spalten habe. Dann sortiere ich erstmal alle aus, die keinen 404 Status-Code liefern.
Nun möchte ich gerne alle Server-Log-Einträge löschen, die von Suchmaschinen-Bots stammen, weil ich davon ausgehe, dass die restlichen dann eher von echten Menschen/Usern stammen.
Meine Frage an Euch ist nun, ob diese Strategie gescheit ist oder ob ich da dummes Zeug mache und evtl. was nicht richtig beachte.
Gruß aus Münster Ingo
Rolf
Hallo Ingo,
wie Ralf Dir schon im geschlossenen Thread schrieb und wie ich auch hier schon geschrieben habe, wäre es gescheiter, das Errorhandling des Webservers zu nutzen und HTTP 404 auf ein Script, bspw. PHP, umzuleiten. Dann ist die Excel-Fummelei überflüssig.
Du könntest in deiner .htaccess Datei eine Zeile
ErrorResponse /pagenotfound.php
erstellen und ein pagenotfound.php schreiben, das sich um die Auswertung kümmert. Die Erkennung, ob der Request von einem Bot oder einem Menschen stammt, ist in PHP genauso möglich wie in Excel. Alles, was im Log steht, hast Du auch in $_SERVER bzw. $_REQUEST Einträgen zur Vefügung.
Wenn Du keinen Apache hast - andere Browser Webserver [Der Martin] haben ähnliche Optionen. Und wenn Du kein PHP hast - irgendwas hast Du bestimmt, was Du am Server laufen lassen kannst. Oder nicht? Wenn Du kein Know-How über serverseitige Programmierung hast, wird es natürlich schwierig - aber das müsstest Du uns dann erstmal mitteilen. Davon wissen wir bisher nichts.
Rolf
Hallo Rolf
Davon wissen wir bisher nichts.
Die von Dir beschriebenen Taktiken (404 mit PHP usw.) habe ich begriffen und kenne ich auch schon vom Prinzip her. Danke Dir aber natürlich trotzdem sehr für die Anregungen.
Aber erstmal egal, ob mit 404-PHP oder Server-Log-Excel ... wie kann ich denn am besten unterscheiden, ob ein Request von einem Bot oder einem Menschen stammt?
In den Logfiles gibt es ja eine Spalte, in der z.B. das hier steht:
Mozilla/5.0 (compatible; Pinterestbot/1.0; +http://www.pinterest.com/bot.html)
OK. In dem Beispiel kann man ja schon recht deutlich lesen, dass es der Bot von Pinterest ist.
Ist das die Spalte, die es mir quasi verrät, ob der Request von einem Bot oder einem Menschen stammt?
Gruß aus Münster Ingo
Ist das die Spalte, die es mir quasi verrät, ob der Request von einem Bot oder einem Menschen stammt?
Das ist die Spalte in welcher der Webserver notiert, was der Browser zu sein vorgibt. Mein wget
z.B. kann sich als nordkoreanisches Atom-U-Boot, wahlweise auch als Pusteblume ausgeben.
<?=$_SERVER['HTTP_USER_AGENT'];?>
Hallo,
Ist das die Spalte, die es mir quasi verrät, ob der Request von einem Bot oder einem Menschen stammt?
Das ist die Spalte in welcher der Webserver notiert, was der Browser zu sein vorgibt. Mein
wget
z.B. kann sich als nordkoreanisches Atom-U-Boot, wahlweise auch als Pusteblume ausgeben.
sehr schön und humorvoll auf den Punkt gebracht. 😀
Tatsache ist, dass der User Agent schon eine gewisse Orientierung gibt und in den meisten Fällen wohl auch eine verwertbare Information liefert. Man sollte sich aber nicht darauf verlassen und diesen String wirklich nur als das nehmen, was er ist: Eine unverbindliche Auskunft, die korrekt sein kann, aber nicht muss.
Live long and pros healthy,
Martin
Hallo Martin
Eine unverbindliche Auskunft, die korrekt sein kann, aber nicht muss.
Ich verstehe. Was muss ich denn noch heranziehen, um zuverlässiger zu ermitteln, ob der Request von einem Bot oder einem Menschen stammt?
Gruß Ingo
Hallo Ingo,
Eine unverbindliche Auskunft, die korrekt sein kann, aber nicht muss.
Ich verstehe. Was muss ich denn noch heranziehen, um zuverlässiger zu ermitteln, ob der Request von einem Bot oder einem Menschen stammt?
ich würde der IP-Adresse starkes Augenmerk widmen. Über eine whois-Abfrage bekommt man normalerweise raus, wem die IP-Adresse "gehört". Da kann man dann mal drüber nachdenken ...
Live long and pros healthy,
Martin
Was muss ich denn noch heranziehen, um zuverlässiger zu ermitteln, ob der Request von einem Bot oder einem Menschen stammt?
Ein bösartiger Bot wird sehr genau versuchen, das Verhalten von Menschen nachzuahmen. Das geht bis zum Lösen von Captchas.
Wichtige Frage, die vorher zu klären ist:
Die Beantwortung führt nahezu direkt zu Erkenntnissen über mögliche und sinnvolle Maßnahmen - dazu kann insbesondere auch gehören, nichts zu tun.
Wie schon dargestellt ermittle mich mit einer Liste von URLs(*) ob es sich um einen Test auf bekannte Vulnerabilitäten handelt. Wenn das so ist blockiere ich die IP für eine Stunde.
Ich bin damit nach meiner Auffassung sehr erfolgreich, denn diese Tests gehen praktisch jedem, nicht zielgerichteten Angriff voraus.
*) Darin sind die von Rolf beschriebenen Tests auf Wordpress, aber auch phpmyadmin, einige Foren und so weiter.
- Warum und wozu willst Du das wissen?
Mir ging/geht es um Folgendes: Ich möchte gerne Links im Internet aufspüren, die zu nicht mehr existierenden Produkt-Seiten meines Online-Shop führen und die von Menschen und nicht von Bots noch den Öfteren angeklickt werden.
Ich möchte das, damit ich gegebenenfalls auf passende oder übergeordnete Seiten um/weiterleiten kann per htacess.
Das soll keine dauerhafte Lösung sein, da ich in der zwischenzeit alte Produktseiten nicht mehr gänzlich lösche. Inzwischen mache ich es so, dass die betreffenden Produkte auf "ausverkauft" gestellt werden und dass sie über die Shop-interne Suche nicht mehr auffindbar sind.
Hallo oxo888oxo,
wie kann ich denn am besten unterscheiden, ob ein Request von einem Bot oder einem Menschen stammt?
Vielleicht war ich ja einfach nur blind, aber tatsächlich habe ich aus deinen bisherigen Beiträgen nicht herausgelesen, dass Du an dieser Stelle ein Problem hast.
Du hast mehrere Kriterien, um einen Bot von einem Menschen zu unterscheiden
Alles hat seine Vor- und Nachteile.
Ich selbst habe nur Billigwebspace ohne Logfile-Zugriff. Deswegen weiß ich nicht, wie gut der Useragent-String zum Erkennen von Bots funktioniert. Allerdings sehe ich in den Statistiken, die der Hoster anbietet, dass eine MENGE Abrufe auf nicht existierende Seiten gemacht werden, und die nach Probing einer Wordpress-Installation aussehen. Solche Bots werden sich sicherlich nicht durch ihren Useragent-String als Bots zu erkennen geben.
Bei der IP-Adresse kann man davon ausgehen, dass Google, Bing oder Duckduckgo bekannte Adressen verwenden. Sicherlich gibt es dafür auch öffentliche Verzeichnisse. Bots, die bei Dir nach Sicherheitslücken suchen, werden andere IPs verwenden, gerne auch IP Adressen von Privatleuten, deren PC von einem Botnetz gekapert wurde.
Das Navigationsverhalten ist schwieriger auszuwerten. Hier kannst Du nicht mehr nur einzelne Anfragen betrachten, sondern musst einen Zeitraum analysieren. Wieviele Anfragen kommen binnen X Minuten von einer IP, und was tut die IP auf deiner Seite? Welche Seiten ruft sie ab? Ein normaler Browser kann nach der favicon.ico Datei suchen. Ein Crawler wird sehr schnell viele Abrufe hintereinander machen und ggf auch die robots.txt lesen wollen. Ein Security-Bohrer wird andere Abfragen machen - bei mir finde ich viele Abfragen auf typische Wordpress-Seiten wie wp-login.php oder wp-includes/wlwmanifest.xml. Da ich kein Wordpress betreibe, kann das nur eine Security-Probe sein.
Die Frage ist auch, woher die Abrufer deine nicht mehr gültigen Produktseiten haben. Gibt es dafür noch Suchmaschinentreffer? Das könntest Du durch Suchen dieser Produkte in gängigen Suchmaschinen ermitteln. Es kann aber auch sein, dass die Crawler von Idealo oder anderen Shopping-Trittbrettfahrern deine Seiten aufgezeichnet haben und die Leute jetzt zu Dir leiten. Das könnte man durch referer-Angaben herausfinden (wenn sie denn vom User zugelassen werden).
Eine geschickte Methode zur Erkennung von Bots könnte ein Pseudo-Captcha sein: Du baust eine 404-Seite, auf der Du Dich für den kaputten Link entschuldigst und erklärst, dass Du besser werden möchtest. Deshalb würdest Du gerne erfahren, von welcher Seite der 404-Besucher zu Dir gefunden hat. Darunter setzt Du ein paar Buttons für die vermutlich häufigsten Kandidaten (Google, Bing, Idealo, etc) und eine Zeile "Andere" mit einem Input-Feld. Von einem Menschen kannst Du Antwort bekommen, von einem Bot eher nicht. Und Du bekommst Auskunft, woher der Link kam. Du solltest dann noch einen Datenschutzhinweis vermerken, dass Du die getätigte Eingabe lediglich statisch erfassen und keine weiteren Daten dazu speichern würdest.
Rolf
Hallo an alle
Ich danke Euch sehr für die vielen Gedanken und Anregungen zu meinem Anliegen. Ich werde mir jetzt mal in Ruhe überlegen, wie ich das machen.
Ich denke, ich werde so nach und nach die Log.Files quasi "händisch" auswerten. Immer wieder mal ein bisschen, wie ich Zeit und Lust habe. Und irgendwann sind dann ja auch alle alten toten Links abgearbeitet.
Gruß aus Münster Ingo Siemon