Fehler anhand von Logfiles analysieren


Beim Aufruf Ihrer Homepage klappt etwas nicht? Es erscheint die Meldung Error 500? Ein Blick in die Logfiles kann den entscheidenden Hinweis liefern.

Das funktioniert so:

  • Eine SSH-Verbindung (beispielsweise über Eingabeaufforderung unter Windows 10 / 11 oder über die Software Putty) herstellen
  • Den Befehl log-tail eintragen und mit "Enter" abschicken.
  • Jetzt die betreffende Seite oder Funktion im Browser aufrufen.
     

Im Terminalfenster werden jetzt die einzelnen Aufrufe angezeigt. Eventuell werden Fehlermeldungen mit ausgegeben.

Befehle und Filter

Hier einige Beispiele, die in der Analyse helfen.

log-tail Zeigte einen Livestream der Logfiles an.
log-cat Zeigt die Logeinträge der letzten 7 Tage.
log-cat | grep 'suchbegriff' Zeigt alle Einträge in den letzten 7 Tagen, die den Begriff suchbegriff enthalten.
log-cat | grep '06/Mar/2024:11:55' Zeigt die Logeinträge von 11:55:00 bis 11:55:59 am 6. März 2024 an.
log-cat | grep mod_fcgid Zeigt alle Fehler an, die vom PHP-Interpreter gemeldet wurden
log-cat > log.txt Schreibt die Logeinträge der letzten 7 Tage in eine Textdatei, die dann an anderer Stelle weiter genutzt werden kann.
log-cat | grep 'HTTP/1.1" 200' Zeigt alle gültigen Aufrufe an.
log-cat | grep 'HTTP/1.1" 404' Zeigt alle Aufrufe von URLs an, die nicht existieren.
log-cat | grep 'HTTP/1.1" 200' -c Zählt alle gültigen Aufruf und zeigt das Ergebnis an

Zeile eines Logeintrags erklärt

Und so sieht ein Auszug des im Logs aus:


91.96.122.112 - - [06/Mar/2024:12:09:46 +0100] "GET /neue-hits-on-spotify/ HTTP/1.1" 200 15827 "https://muster.de/" "Mozilla/5.0 (X11; Linux x86_64; rv:122.0) Gecko/20100101 Firefox/122.0" 263513 


Aber was bedeutet das im Detail? Wir zerlegen diese Zeile mal:

  • 91.96.122.112 - Die IP-Adresse des Besuchers
  • [06/Mar/2024:12:09:50 +0100] - Datum und Uhrzeit  und Zeitzone (Timestamp), zu dem der Eintrag in der Logdatei erfolgte.
  • "GET /was-kannst-du-richtig-gut/ HTTP/1.1" - Der Inhalt einer Unterseite wurde mit dem Protokoll HTTP 1.1 abgerufen
  • 200 - Status 200 bedeutet: Erfolgreich
  • 15827 - irrelevant
  • "https://muster.de/" - Die URL von der dieser Besucher gekommen ist.
  • "Mozilla/5.0 (X11; Linux x86_64; rv: 122.0) Gecko/20100101 Firefox/122.0" - Der verwendete Browser (User-Agent)
  • 263513 - irrelevant

Und jetzt mal ein Beispiel mit einer Fehlermeldung:


[06/Mar/2024:11:58:32 +0100] [client 43.153.84.53:0] mod_fcgid: stderr: PHP Notice:  Undefined index: datume in /home/www/public_html/muster/news.php on line 21


Auch diese Zeile zerlegen wir:

  • [06/Mar/2024:12:09:50 +0100] - Datum und Uhrzeit  und Zeitzone (Timestamp), zu dem der Eintrag in der Logdatei erfolgte.
  • [client 43.153.84.53:0] - Die IP-Adresse des Anwenders oder der Maschine der dieses Skript aufgerufen hat. Es kann sich dabei z.B. auch um interne Dienste wie z.B. Cronjobs handeln.
  • PHP Notice - In diesem Fall handelt es sich nur um einen Hinweis, dass da was nicht ganz gut ist. Steht dort Error oder Warning besteht ein echtes Problem.
  • Undefined index: datume in /home/www/public_html/muster/news.php on line 21 - die eigentliche Fehlermeldung. Hier ist eine Variabel $datum nicht befüllt worden.
Maillogs erzeugen

Wenn E-Mails per PHP Funktion mail() verschickt werden, kann es auch zu Problemen kommen.

Weitere Bespiele

Hilft beim Verständnis.