Slide 1

Slide 1 text

Zentrales Logging mit Elasticsearch Digital Xchange 2019

Slide 2

Slide 2 text

Wer bin ich ● Simon Schneider ● Software Engineer bei der Rewe Digital ○ Schwerpunkt: Suche ● Bis Oktober 2018, INFORM GmbH in Aachen ○ Schwerpunkt: Zentrales Logging 2/28

Slide 3

Slide 3 text

Agenda 1) Allgemein a) Was bedeutet “Zentrales Logging”? b) Wie funktioniert der Elastic Stack? c) Wie nutzt REWE Digital den Elastic Stack? 2) Ingest und Speicherung a) Setup Elasticsearch b) Setup Logstash 3) Datenanalyse mit Kibana a) Live Demo 4) Fragen 3/28

Slide 4

Slide 4 text

“Zentrales Logging” Was bedeutet

Slide 5

Slide 5 text

Was bedeutet “Zentrales Logging” ? Dezentrales Logging VPN Maschine Jump Host (beim Kunden) Application Server Entwickler PC 5/28

Slide 6

Slide 6 text

Was bedeutet “Zentrales Logging” ? Zentrales Logging Application Server Entwickler PC Logging Service Anfragen der Logs Senden der Logs 6/28

Slide 7

Slide 7 text

Zentrales Logging Vor- und Nachteile des Zentralen Loggings Pros Contras ● Single source of truth (SSOT): Alle Logs an einem Ort => Leicht zu finden Keine Suchen nach Logs auf Servern => Schneller ● Neue Zusammenhänge: Globale Sicht ermöglicht arbeiten über Service Grenzen => CorrelationId ● Verbesserte Sicherheit: Entwickler benötigen weniger/keinen Zugriff auf Produktivsysteme ● Exploratives Verhaltensanalyse: Entwickler können mit wenig Aufwand Programmverhalten im Livebetrieb nachvollziehen ● Zusätzliche Infrastruktur: Neuer Speicherplatz und Rechenkapazität wird benötigt ● Großer Initialaufwand: Alle existierenden Services müssen auf das neue System umgestellt werden. 7/28

Slide 8

Slide 8 text

Wie funktioniert der Elastic Stack ?

Slide 9

Slide 9 text

Wie funktioniert der Elastic Stack ? Allgemeines ● Bestandteile ○ Elasticsearch ○ Logstash ○ Kibana ○ Beats ● Maintainer: Elastic NV (Niederlande) ● Lizenz: Apache License Version 2.0 9/28

Slide 10

Slide 10 text

Wie funktioniert der Elastic Stack ? Aufbau Elastic Stack Kibana Elasticsearch Beats Logstash SaaS Self Managed Elastic Stack Visualize & Manage Store, Search & Analyze Ingest Deployment Elastic Cloud Elastic Cloud Enterprise Standalone 10/28

Slide 11

Slide 11 text

Wie funktioniert Logstash ? Logstash ● Annehmen von Daten aus: ○ Beats ○ Redis ○ Kafka ○ Salesforce ○ ... ● Verarbeiten der Daten mit: ○ Grok ○ Geo IP ○ Date/Time Parser ○ Ruby/Java ○ … ● Ablegen der Daten in: ○ Elasticsearch ○ Syslog ○ ... 11/28

Slide 12

Slide 12 text

Wie funktionieren Beats ? Filebeat/Metricbeat/Packetbeat... ● Filebeat => Logs einlesen ● Metricbeat => System/Docker/MongoDB/Kubernetes Metriken sammeln ● Packetbeat => Sammelt und Analysiert Netzwerkverkehr ● Winlogbeat => Einlesen der Windows Ereignisprotokolle ● Auditbeat => Einlesen der Ereignisse aus dem Linux Audit Framework ● Heartbeat => Heartbeat Pings über ICMP, TCP und HTTP ● Libbeat => Go Library für das entwickeln von Beats 12/28

Slide 13

Slide 13 text

Wie funktioniert Elasticsearch ? Allgemein ● Eigenschaften ○ Suchmaschine und Analytics Engine auf Basis von Lucene ○ Skalierbar auf mehrere hundert Knoten ○ Robust gegen Störungen (Resilenz) ○ Flexibel, verschiedene Anwendungsfälle werden abgedeckt ● Kompatibilität ○ RESTful ○ SQL 13/28

Slide 14

Slide 14 text

Wie funktioniert Elasticsearch ? Knoten Modi ● Master ○ Verwaltung des Clusters ○ Geringe CPU Last, kaum Speicherverbrauch ● Data ○ Speichern von Daten ○ Hohe CPU Last, hoher Speicherverbrauch, häufige Festplattenzugriffe ● Ingest / Machine Learning ○ Verarbeiten der Daten ○ Hohe CPU Last, mittelmäßiger bis hoher Speicherverbrauch 14/28

Slide 15

Slide 15 text

Elasticsearch Architekturen Daumenregeln Hot-Warm Indizes ● Hot-Warm Architektur ○ Master Knoten (3) ○ Hot Knoten (>=3) ○ Warm Knoten (>=3) ● Indizes ○ Jeden Tag ein neuer Index ○ Alte Indizes werden auf die Warm Knoten verschoben ○ Ein Alias zeigt immer auf den tagesaktuellen Index ○ Alte Indizes werden komprimiert ● Shards ○ Shard Replication mindestens auf 2 ○ Shard Anzahl = Datenmenge / 30 GB + 1 https://www.elastic.co/de/blog/hot-warm-architecture-in-elasticsearch-5-x 15/28

Slide 16

Slide 16 text

Wie funktioniert Elasticsearch ? Datenhaltung Elasticsearch Elasticsearch Index Elasticsearch Shard Elasticsearch Shard Elasticsearch Shard Elasticsearch Shard Lucene Index Lucene Index Lucene Index Lucene Index Segment Segment Segment Segment Segment Segment Segment Segment 16/28

Slide 17

Slide 17 text

den Elastic Stack Wie nutzt REWE

Slide 18

Slide 18 text

Elastic Stack @ Logging im Rewe Online Shop - Technical Logs ● Die Logs aller Microservice Instanzen müssen persistiert werden ● Datenmenge Pro Tag: ○ 427 Millionen Log Events ○ 435 GB Log Daten ● Datenmenge Gesamt: ○ 5,9 Milliarden Log Events ○ 6,09 TB Log Daten 18/28

Slide 19

Slide 19 text

Logging im Rewe Online Shop - Logging Infrastruktur ● Docker Node ○ Docker / Logstash ● Ingest/Master Nodes: ○ Redis / Logstash / Elasticsearch ○ 3 Nodes ● Data Nodes: ○ 4 CPU Cores / 64GB RAM / 2TB SSD ○ 8 Nodes ● Kibana Nodes: ○ Kibana / Elasticsearch ○ 2 Nodes Docker Node Ingest Node Data Node Kibana Node Elastic Stack @ 19/28

Slide 20

Slide 20 text

Setup Elasticsearch

Slide 21

Slide 21 text

Live Coding

Slide 22

Slide 22 text

Logstash Setup

Slide 23

Slide 23 text

Setup Logstash Pipeline Konfiguration ● Input ○ Einlesen mit “gelf” auf UDP Port 12201 ● Filter ○ JSON Entpacken ○ Nginx/Service Logs unterscheiden ● Output ○ Logs an Elasticsearch senden gelf { type => docker port => 12201 } json { source => "message" target => "payload" } if [tag] == "app" { ... } elasticsearch { hosts => ["elasticsearch:9200"] } 23/28

Slide 24

Slide 24 text

Live Coding

Slide 25

Slide 25 text

mit Kibana Datenanalyse

Slide 26

Slide 26 text

Live Demo

Slide 27

Slide 27 text

Fragen ?

Slide 28

Slide 28 text

Vielen Dank! für eure Aufmerksamkeit 10:30 Uhr 11:30 Uhr 14:30 Uhr

Slide 29

Slide 29 text

Elasticsearch Cluster Anforderungen ● Workload: 1TB pro Tag ● Speicherdauer: 30 Tage ● Relevanz Quantil: 7 Tage ● Datenaufbereitung: Ingest ● Datensammlung A B A B C A A A

Slide 30

Slide 30 text

Credits Log Icon made by Freepik from www.flaticon.com Elastic Icons - https://www.elastic.co/de/brand 30/28