Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

27
Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk? Dr. Kurt Stockinger Dozent für Informatik Zürcher Hochschule für Angewandte Wissenschaften DW 2013, 12. November 2013, Zürich

description

Applikationen und Datenbanken generieren Logfiles, deren Inhalte wichtige Aussagen über Zugriffsmuster enthalten. So kann ermittelt werden, welche Produkte am häufigsten abgefragt werden oder welche Kundentrends sich abzeichnen. In diesem Vortrag beleuchten wir zunächst die Problematik anhand von praktischen Use Cases. Danach zeigen wir, wie sich die Probleme mit einem herkömmlichen Datenbankansatz, mit Hadoop und mit Splunk lösen lassen.

Transcript of Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Page 1: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Dr. Kurt Stockinger Dozent für Informatik

Zürcher Hochschule für Angewandte Wissenschaften

DW 2013, 12. November 2013, Zürich

Page 2: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Inhalt

•  Überblick über ZHAW und Data Science Lab •  Use Cases für Analyse von Applikations- und Query-Logs •  Technologien:

•  Datenbanken •  Hadoop •  Splunk

•  Implementierung der Use Cases mit den 3 Technologien

2

Page 3: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

CV Kurt Stockinger

•  Dozent an der ZHAW seit 1. August 2013 •  2007-2013:

Data Warehouse & Business Intelligence Architect bei Credit Suisse, Zürich & Forschungsprojekte mit ETH Zürich

•  2004-2007: Forschungstätigkeit am Lawrence Berkeley National Laboratory, Berkeley, Kalifornien (Scientific Data Management)

•  2002-2003: Forschungstätigkeit am CERN (Grid Computing, Datenbanken)

•  1999-2001: Doktorat in Informatik am CERN (Zugriffsoptimierung für objektorientierte Datenbanken) Gastforscher am California Institute of Technology, Pasadena, Kalifornien

3

Page 4: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Zürcher Hochschule für Angewandte Wissenschaften (ZHAW)

•  Geht zurück auf Technikum in Winterthur •  Gegründet 1874 •  Seit 2007 existiert Name ZHAW:

•  Zusammenschluss mehrerer Hochschulen im Kanton Zürich •  Zurzeit mehr als 10‘000 Studierende •  Standorte in Zürich, Winterthur und Wädenswil

•  Prominentester Dozent:

4

•  1901: Albert Einstein

Page 5: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Datalab = Data Science @ ZHAW

•  Eines der ersten Data Science Labs in Europa (wenn nicht sogar das

erste) •  Zusammenschluss von Informatikern, Statistikern, Mathematikern und

Physikern zur Lösung von Data Science Problemen in Forschung und Lehre: •  Institut für Angewandte Informationstechnologie

•  www.init.zhaw.ch •  Institut für Datenanalyse und Prozessdesign

•  www.idp.zhaw.ch

5

Page 6: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Data Scientist

6

T. Stadelmann, K. Stockinger, M. Braschler, M. Cieliebak, G. Baudinot, O. Dürr, A. Ruckstuhl, Applied Data Science in Europe. In: European Computer Science Summit. ECSS 2013. Amsterdam, The Netherlands: IEEE. http://pd.zhaw.ch/publikation/upload/204718.pdf

Page 7: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

7

Page 8: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Inhalt

•  Überblick über ZHAW und Data Science Lab •  Use Cases für Analyse von Applikations- und Query-Logs •  Technologien:

•  Datenbanken •  Hadoop •  Splunk

•  Implementierung der Use Cases mit den 3 Technologien

8

Page 9: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Use Cases

•  Web Log Analyse •  Applikations Log Analyse •  DWH Query Log Analyse

9

Page 10: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Web Log Analyse

•  Gegeben: •  Log Files von Webserver für eCommerce:

•  z.B. Online Shop, eBanking, Produktdokumentation & Hilfe

•  Gesucht:

•  Welche Artikel werden gesucht? •  Wie verändert sich das Suchverhalten über die Zeit? •  Von welchen Lokationen greifen die Benutzer darauf zu? •  Welche Seiten wurden nie angesehen?

10

Page 11: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Beispiel: Web Log

91.57.78.223 - - [09/Sep/2013:00:00:06 +0200] "GET /assets/static/dojo-0.4.3-custom-4.1.5/nls/dojo_de.js HTTP/1.1" 200 884 "http://www.superapp.info/product/DataScienceKit" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/28.0.1500.71 Chrome/28.0.1500.71 Safari/537.36"

Standardisierte Logs::

11

Page 12: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Applikations Log Analyse

•  Gegeben: •  Logfiles von unterschiedlichen Applikationen der eigenen Firma •  Jedes Logfile hat anderes Format •  Jede Applikation hat andere Funktionen, die für Auswertung relevant sind

•  Gesucht: •  Wer sind die Hauptkunden? •  Werden bestimmte Funktionen einer Applikation aufgerufen? •  Was sind die häufigsten Fehlermeldungen über welchen zeitlichen Verlauf? •  Sieht man Korrelationen zwischen einzelnen Ereignissen?

12

Page 13: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Beispiel: Applikationslog

13

2013/10/11 – getUser(„Schrödinger“) – Visting time: 32 sec 2013-Oct-14,14:30 Error – User „xyz“ not allowed to execute task 2013-27-10 eCommerce: Buy artile: „Schrödinger‘s Cat Trilogy, Robert Anthon Wilson, 1979“

Logs von unterschiedlichster Struktur::

Page 14: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

DWH Query Log Analyse

•  Gegeben: •  DWH Query Logs (ausgeführte SQL Statements)

•  Gesucht: •  Wer hat welche Queries ausgeführt? •  Über welchen Zeitraum? •  Gibt es Korrelationen zwischen den Benutzern? •  Welche Tabellen wurden am häufigsten abgefragt? •  Gibt es Zugriffsverletzungen oder sind bestimmte Zugriffsrechte falsch

vergeben?

14

Page 15: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Beispiel: DWH Query Log im XML Format

<xml> <audit> <username> john_smith </username> <timestamp> 21/12/2012 23:59:59 </timestamp> <sql_query> SELECT * FROM sales S, customers C WHERE S.customer_ID = C.id AND C.hair_color = black </sql_query> … </audit>

</xml>

15

Page 16: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Inhalt

•  Überblick über ZHAW und Data Science Lab •  Use Cases für Analyse von Applikations- und Query-Logs •  Technologien:

•  Datenbanken •  Hadoop •  Splunk

•  Implementierung der Use Cases mit den 3 Technologien

16

Page 17: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Data Warehouse basierend auf relationale Datenbanktechnologie

§  Relationale Datenbanken seit den 70er

§  ETL (extract, transform, load) = Kitt zwischen DWH-Schichten

§  Sehr effizient für Prozessierung von struktierten und normalisierten Daten

§  Parallele Datenbank für High Performance

17

Page 18: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

HDFS

Hadoop Überblick

Map Reduce Map Reduce

Node 1 Node N

Hadoop

App

“A scalable, fault-tolerant, distributed storage and computation platform”

18

Page 19: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Pig Überblick

Pig Latin ist eine SQL-ähnliche Sprache Jedes Statement wird on-the-fly in MapReduce kompiliert Pig Statements werden auf Hadoop ausgeführt

PIG Script

Runtime compiler

MapReduce Code

Hadoop cluster

Map Map Map

Shuffle & Sort

Reduce Reduce

Final results stored in

HDFS

19

Page 20: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Splunk Überblick

Kommerzielles, closed-source Produkt zur Indizierung und Suche von Log-Daten

Intuitives Interface und Suchsprache (entspricht Goolge-Suche + Erweiterungen)

Indizes sind verteilt, jedoch keine Replication von Daten und Index

20

Page 21: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Kombination von Hadoop und Splunk

21

Page 22: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Inhalt

•  Überblick über ZHAW und Data Science Lab •  Use Cases für Analyse von Applikations- und Query-Logs •  Technologien:

•  Datenbanken •  Hadoop •  Splunk

•  Implementierung der Use Cases mit den 3 Technologien

22

Page 23: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Datenbanken

•  Grundsätzlich sind Datenbanken für Analyse von strukturieren Daten konzipiert

•  Log Files sind jedoch semi-strukturiert oder unstrukturiert •  Extrahierungsschritt muss ausserhalb der Datenbank erfolgen

(Textextrahierung) •  Danach können Ergebnisse strukturiert in Datenbank abgelegt werden •  Visualisierung und Analyse erfolgt typischer Weise via Business

Intelligence Tools

•  Pro: •  Etablierte Tools vorhanden •  Gute Unterstützung von Zugriffsverwaltung

•  Con: •  Drei unterschiedliche Tools notwendig •  Eigentlich haben wir hier kein Datenbankproblem 23

Page 24: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Hadoop

•  Log Files können direkt mit Hadoop prozessiert werden: •  Low-level API: MapReduce + Java •  High-level Progammiersprache: Pig Latin

•  Analyse und Auswertung erfolgt ebenfalls in Hadoop •  Visualisierung der Ergebnisse mit anderem Tool

•  Pro: •  End-to-end-processing in einem skalierbaren Tool •  Open-source Software

•  Con: •  Zugriffsverwaltung noch nicht ausgereift •  Visualisierung durch externes Tool •  Know-how noch nicht so stark verbreitet (Data Scientists werden benötigt)

24

Page 25: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Splunk

•  Log Files können direkt mit Splunk prozessiert werden: •  Web Log Files werden direkt erkannt •  Python API erlaubt Erweiterungen

•  Visualisierung erfolgt direkt mit Splunk •  Zugriffsberechtigungen können über Dashboards gesteuert werden

•  Pro: •  Integriertes System (End-to-end Auswertung + Visualisierung) •  Zugriffsverwaltung •  Kombination mit Hadoop möglich

•  Con: •  Entwicklung von komplexen Dashboards nicht trivial •  Gewisse Lernkurve für Aufsetzen der Infrastruktur und Einschulung der

Entwickler 25

Page 26: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Nächste Schritte

•  Analyse von Log Files ermöglicht breite Anwendungsmöglichkeiten

•  Recommender Systems: •  Vorschlagen von ähnlichen Produkten •  Anwendungen:

•  Marketing, etc.

•  Machine Learning: •  Lernen von Benutzerverhalten und Zugriffsmuster •  Erkennen von Produktaffinitäten von Benutzern •  Anwendung:

•  Marketing, Fraud detection, Kundenbetreuung

26

Page 27: Analyse von Applikationslogs und Querylogs: Datenbanken, Hadoop oder Splunk?

Zusammenfassung

•  Analyse von Log Files ist kein Datenbankproblem und sollte nicht über das DWH gemacht werden.

•  Kombination mit Hadoop erlaubt skalierbaren Ansatz. •  Einsatz von Splunk hat sich in der Praxis gut bewährt. •  Log Analyse ist typisches Problem für Data Scientists:

•  Weltweit eine rare Spezies •  Aber:

•  Swiss Data Science Workshop im März 2014: Anmeldung ab Mitte Nov. •  Wir arbeiten an einem Curriculum für Data Scientists. •  DAS Data Science für Herbstsemester 2014 geplant. •  Kontakt: [email protected]

27