Workshop Logfile Analyse mit Splunk

58
@mindbox_dd @hannes3686 Logfile Analyse mit Splunk

Transcript of Workshop Logfile Analyse mit Splunk

Page 1: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Logfile Analyse mit Splunk

Page 2: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Page 3: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Aufbau von Logdaten

domain.de-2017-02-16:66.249.66.188 - - [16/Feb/2017:00:40:41 +0100] "GET /mieten/ http/1.1" 301 29737 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

Web Access Logfiles erfassen jeden einzelnen Zugriff

Page 4: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

domain.de-2017-02-16:66.249.66.188 - - [16/Feb/2017:00:40:41 +0100] "GET /mieten/ http/1.1" 301 29737 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

HTTP User Agent = Visitenkarte des Browsers

Aufbau von Logdaten

Page 5: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

domain.de-2017-02-16:66.249.66.188 - - [16/Feb/2017:00:40:41 +0100] "GET /mieten/ http/1.1" 301 29737 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

IP Adresse des Besuchers

Aufbau von Logdaten

Page 6: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

domain.de-2017-02-16:66.249.66.188 - - [16/Feb/2017:00:40:41 +0100] "GET /mieten/ http/1.1" 301 29737 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

IP Adresse des Besuchers

Achtung! Personenbeziehbare Daten.https://www.heise.de/newsticker/meldung/BGH-verhandelt-zur-Zulaessigkeit-von-IP-Adressen-Speicherung-auf-Websites-3625336.html

Aufbau von Logdaten

Page 7: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

domain.de-2017-02-16:66.249.66.188 - - [16/Feb/2017:00:40:41 +0100] "GET /mieten/ http/1.1" 301 29737 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

geladene Bytes

Aufbau von Logdaten

Page 8: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

domain.de-2017-02-16:66.249.66.188 - - [16/Feb/2017:00:40:41 +0100] "GET /mieten/ http/1.1" 301 29737 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

HTTP Status Code

Aufbau von Logdaten

Page 9: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

domain.de-2017-02-16:66.249.66.188 - - [16/Feb/2017:00:40:41 +0100] "GET /mieten/ http/1.1" 301 29737 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

aufgerufene URL

Aufbau von Logdaten

Page 10: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

domain.de-2017-02-16:66.249.66.188 - - [16/Feb/2017:00:40:41 +0100] "GET /mieten/ http/1.1" 301 29737 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

Zeitstempel

Aufbau von Logdaten

Page 11: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

domain.de-2017-02-16:66.249.66.188 - - [16/Feb/2017:00:40:41 +0100] "GET /mieten/ http/1.1" 301 29737 "-" "Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)"

Domain + Tag

Aufbau von Logdaten

Page 12: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Aufbau von Logdaten

jeder Zugriff = 1 Zeile bedeutet Millionen von Datensätzen schon bei mittelgroßen Websites Logfile im *.txt Format ist schnell mehrere GB groß

Page 13: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Herausforderung

Page 14: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Lösung: Splunk

Business Intelligence Software => ideal für Big Data

Page 15: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Lösung: Splunk

Kostenlos: bis 500MB zusätzliche Daten / Tag

Page 16: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Herausforderung

!$#&%$

5GB!?

Page 17: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Gepackte Logdatei verwenden

Page 18: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

… oder Logdatei verkleinern

Page 19: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Vorbereitung | Terminalbefehle

Page 20: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Vorbereitung | Logdatei verkleinern

1. Terminal aufrufen 2. In das Verzeichnis mit den entpackten Logdateien wechseln 3. Mit grep-Befehl relevante Zeilen in eine neue Datei kopieren

Mac

Page 21: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Vorbereitung | Terminalbefehle

pwd - Gibt aus, in welchem Ordner man sich befindet ls - Listet Dateien und Unterordner auf cd Verzeichnisname - wechselt Unterverzeichnis cd .. - wechselt ins übergeordnete Verzeichnis

Mac

Page 22: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Vorbereitung | Terminalbefehle

Durchsucht alle Dateien im Verzeichnis & kopiert relevante Googlebot-Zeilen in die neue Datei logfile.txt

Grep „66.249.“ *.*>logfile.txt

Mac

Page 23: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Vorbereitung | Logdatei verkleinern

1. Eingabeaufforderung aufrufen 2. In das Verzeichnis mit den entpackten Logdateien wechseln 3. Mit findstr-Befehl relevante Zeilen in eine neue Datei kopieren

Windows

Page 24: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Vorbereitung | Terminalbefehle

pwd - Gibt aus, in welchem Ordner man sich befindet ls - Listet Dateien und Unterordner auf cd Verzeichnisname - wechselt Unterverzeichnis cd .. - wechselt ins übergeordnete Verzeichnis

Windows

Page 25: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Vorbereitung | Terminalbefehle

Durchsucht alle Dateien im Verzeichnis & kopiert relevante Googlebot-Zeilen in die neue Datei logfile.txt

findstr /I /C:66.249 *.* >>logfile.txt

Windows

Page 26: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Datenanalyse vorbereiten

Page 27: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Datenanalyse vorbereiten

Logdaten bei Splunk importieren

Page 28: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Datenanalyse vorbereiten

Logdaten bei Splunk importieren

einmalig, einzelne Datei

mehrere Dateien, Verzeichnis überwachen

Page 29: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Datenanalyse vorbereiten

Logdaten bei Splunk importieren

Page 30: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Datenanalyse vorbereiten

Typ der Datenquelle wählen: access_combined Splunk zerlegt die Zeilen automatisch in ihre Bestandteile und indiziert sie

Page 31: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Datenanalyse vorbereiten

„Host“ definieren > beliebig definierbar, idealerweise wird Domainname gewählt

Page 32: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Datenanalyse vorbereiten

„Index“ neu anlegen, sonst werden später Daten verschiedener Server gemischt

Page 33: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Datenanalyse vorbereiten

Name definieren genügt

Page 34: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | OberflächeBefehlszeile Zeitraum wählbar

extrahierte Felder

Suchtreffer

Page 35: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Oberfläche

Wechsel zwischen Diagrammen & tabellarischen Daten

Page 36: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Oberfläche

unterschiedliche Diagrammtypen wählbar

Page 37: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Analysen

Jede Suche beinhaltet host & clientip, um nur Google-Einträge zur richtigen Seite zu analysieren.

Page 38: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Analysen

Die wichtigsten Anweisungen:

• Die häufigsten … - | top 10 FELDNAME

• Diagramm mit Zeitverlauf - | timechart count by day - | timechart count by uri - | timechart span=1w count by uri

• Tabellarische Statistik - | stats count by status

• gewöhnliche Diagramme - | chart count by date_hour

• Pipe „|“ startet einen Befehl

Page 39: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | AnalysenSuche nach IP = 18.452 Ereignisse

Suche nach „googlebot“ = 19.082 Ereignisse

1. Generelles Crawl-Verhalten

host="MBXIT-256-HaRi.local" clientip="66.249.*" | timechart count by day

Page 40: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Analysen2. Welche URLs werden am häufigsten aufgesucht?

host="MBXIT-256-HaRi.local" clientip="66.249.*" | top 10 uri

Startseite, Favicon, robots.txt, Hauptkategorien / gut rankende Seiten

stehen hier irrelevante URIs? => ggf. Optimierungsbedarf f. interne Verlinkung

Page 41: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Analysen3. Mit welchen User-Agents greift der Bot am meisten zu?

host="MBXIT-256-HaRi.local" clientip="66.249.*" | top 10 useragent

Page 42: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Analysen4. Wird „Link Juice“ vergeudet? Gibt es Fehlerseiten?

Page 43: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Analysen4. Wird „Link Juice“ vergeudet? Gibt es Fehlerseiten?

host="MBXIT-256-HaRi.local" clientip="66.249.*" | stats count by status

4** - 5** vermeiden, 302-307 Codes prüfen Status Codes erklärt unter: https://de.wikipedia.org/wiki/HTTP-Statuscode

Page 44: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Analysen5. Welche Seiten sind betroffen?

host="MBXIT-256-HaRi.local" clientip="66.249.*" status=404 OR status=410 OR status=500 | stats count by uri

host="MBXIT-256-HaRi.local" clientip="66.249.*" status=302 OR status=307 | stats count by uri

host="MBXIT-256-HaRi.local" clientip="66.249.*" status>301 status<400 | stats count by status

Page 45: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Analysen6. Sind Status-Code Probleme zeitlich bedingt?

host="MBXIT-256-HaRi.local" clientip="66.249.*" status=500 | timechart count by date_hour

host="MBXIT-256-HaRi.local" clientip="66.249.*" status=404 | timechart count by date_hour

Page 46: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Analysen7. Sind Status-Code Probleme zeitlich bedingt?

host="MBXIT-256-HaRi.local" clientip="66.249.*" status=404 | timechart limit=4 count by date_hour

Page 47: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Analysen8. Auf welche Dateigrößen trifft Google am häufigsten?

host="MBXIT-256-HaRi.local" clientip="66.249.*" | top 30 bytes

Welche Größen treten am häufigsten auf? 5,7kb ist nicht groß - ggf. eine Ressource, die sehr oft vorkommt und optimiert werden kann

host="MBXIT-256-HaRi.local" clientip="66.249.*" bytes=5729 | stats count by uri

Page 48: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Analysen9. Welche Requests produzieren die größte Datenlast?

host="MBXIT-256-HaRi.local" clientip="66.249.*" | stats max(bytes) count by uri

Page 49: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Analysen10. Welche HTML-URLs produzieren die größte Datenlast?

host="MBXIT-256-HaRi.local" clientip="66.249.*" uri!="*.pdf" AND uri!="*.jpg" | stats max(bytes) count by uri

Bis zu 2,8MB für Quellcode!

Page 50: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Analysen11. Wie verhält sich Google beim Crawling von Parameter-URLs

host="MBXIT-256-HaRi.local" clientip="66.249*" uri="*?*" | timechart count by status

Page 51: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Analysen12. Welche Parameter begegnen Google am häufigsten?

neues Feld aus Logdaten extrahieren

Page 52: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Analysen12. Welche Parameter begegnen Google am häufigsten?

neues Feld aus Logdaten extrahieren

Page 53: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Analysen12. Welche Parameter begegnen Google am häufigsten?

Ich möchte einen regulären Ausdruck selbst schreiben

(?<=[\?|&])+(?<parameter>[a-zA-Z0-9]+)

Page 54: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Analysen12. Welche Parameter begegnen Google am häufigsten?

299 Zugriffe über utm-Source in 2 Tagen?

host="MBXIT-256-HaRi.local" clientip=„66.249.*" | chart count by param

utm-Parameter in interner Linkstruktur verwendet

Page 55: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Analysen12. Welche Parameter-URLs crawlt Google am häufigsten

Website-Events werden nicht über Analytics-Parameter getrackt!

Page 56: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Monitoring

Auswertungen als Dashboard fürs Monitoring jede Analyse lässt sich umwandeln

Page 57: Workshop Logfile Analyse mit Splunk

@mindbox_dd@hannes3686

Splunk | Monitoring

Auswertungen als Dashboard fürs Monitoring

Page 58: Workshop Logfile Analyse mit Splunk

L e i p z i g , d e n 2 8 . N o v e m b e r 2 0 1 1

MÄRKTE VERSTEHEN

MARKEN ENTWICKELN: DIE ZEBRA-GROUP