Benutzer-Werkzeuge

Webseiten-Werkzeuge


cookbook:logs

Dies ist eine alte Version des Dokuments!


Logdateien mit LogParser auswerten

Ich zeige hier ein paar Möglichkeiten der Logdatei-Analyse mit Microsoft's LogParser 2.2 (kostenlos). Der LogParser ist hierbei in den Standardpfad installiert, XAMPP auf D:.

access.log auswerten

Hiermit ist das access.log des Webservers gemeint. In den Beispielen benutze ich eine XAMPP-Installation als Quelle, man kann sich aber auch das access.log vom Webspace bei einem Provider runterladen und dieses auswerten. Natürlich immer vorausgesetzt, man hat Zugriff darauf.

Folgende „Spalten“ können abgefragt werden (auch über LogParser.exe -h -i:NCSA zu ermitteln):

LogFilename (S)   LogRow (I)     RemoteHostName (S)   RemoteLogName (S)
UserName (S)      DateTime (T)   Request (S)          StatusCode (I)
BytesSent (I)     Referer (S)    User-Agent (S)       Cookie (S)

(S) steht für String, (I) für Integer, (T) für Timestamp.

Status-Codes zählen

  "c:\Program Files (x86)\Log Parser 2.2\LogParser.exe" "select statuscode, count(*) as Anzahl FROM d:\xampp\apache\logs\access.log GROUP BY statuscode ORDER BY Anzahl DESC" -i:NCSA

Ergebnis (beispielhaft):

  StatusCode Anzahl
  ---------- ------
  200        36146
  500        513
  301        430
  404        67
  302        5
  403        1
  
  Statistics:
  -----------
  Elements processed: 37162
  Elements output:    6
  Execution time:     0.05 seconds

User-Agents auswerten

Was für die Statuscodes geht, geht auch für die User-Agents (Browser):

  "c:\Program Files (x86)\Log Parser 2.2\LogParser.exe" "select user-agent, count(*) as Anzahl FROM d:\xampp\apache\logs\access.log GROUP BY user-agent ORDER BY Anzahl DESC" -i:NCSA

Will man das nicht im Konsolenfenster, sondern z.B. als CSV, gibt man das mit dem Parameter -o an:

  "c:\Program Files (x86)\Log Parser 2.2\LogParser.exe" "select user-agent, count(*) as Anzahl FROM d:\xampp\apache\logs\access.log GROUP BY user-agent ORDER BY Anzahl DESC" -i:NCSA -o:CSV > output.csv

Man kann den Namen der Datei auch innerhalb des SELECT-Befehls angeben:

  "c:\Program Files (x86)\Log Parser 2.2\LogParser.exe" "select user-agent, count(*) as Anzahl INTO output.csv FROM d:\xampp\apache\logs\access.log GROUP BY user-agent ORDER BY Anzahl DESC" -i:NCSA -o:CSV 

Hacker-Angriffe entdecken

Hier gibt es furchtbar viele Varianten. Hacker versuchen oft, URLs zu mißbrauchen, die Parameter haben, z.B.

  http://www.whatever.com/page/mypage.php?id=5

An diese werden dann diverse Zeichenketten angehängt, um beispielsweise ein Login-Fenster zu umgehen oder Informationen über die Datenbank zu erhalten. Ein potentiell suspekter String ist 'SELECT'.

  "c:\Program Files (x86)\Log Parser 2.2\LogParser.exe" "select count(*) as Anzahl, remotehostname, user-agent FROM d:\xampp\apache\logs\access.log WHERE request LIKE '%select%' GROUP BY user-agent, remotehostname ORDER BY Anzahl DESC" -i:NCSA
  Anzahl RemoteHostName User-Agent
  ------ -------------- ----------------------------------------------
  600    127.0.0.1      python-requests/2.0.0 CPython/2.7.5 Windows/7
  14     127.0.0.1      -
  1      127.0.0.1      Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)

Auch ein leerer User-Agent könnte (muß aber nicht) ein Hinweis sein.

  "c:\Program Files (x86)\Log Parser 2.2\LogParser.exe" "select statuscode,remotehostname FROM d:\xampp\apache\logs\access.log WHERE user-agent is null order by statuscode asc" -i:NCSA -o:datagrid
cookbook/logs.1411576059.txt.gz · Zuletzt geändert: 2014/09/24 00:00 (Externe Bearbeitung)