In der Welt der Microservices ist die Anzahl der Logs-produzierenden Prozesse sehr groß und liegt durchaus im Bereich von 100-1000 Prozessen. Eine manuelle Log-Verarbeitung ist hier so gut wie undenkbar. Doch auch monolithische Services laufen oftmals dezentral und das Analysieren der Produktions-Logs ist dann häufig auch mit viel Aufwand verbunden. Mithilfe eines zentralen Loggins lässt sich eine viel bessere Übersicht über den Gesamtzustand eines Systems gewinnen, da nicht jedes Log einzeln untersucht werden muss, sondern die Logs aggregiert und somit auch leicht automatisiert ausgewertet werden können. Elasticsearch bietet die Möglichkeit, große Mengen an Logs zu speichern und zu durchsuchen. Das Ökosystem um Elasticsearch unterstützt Entwickler, DevOps usw. dabei, die Logs schnell und einfach aufzubereiten, damit diese gut analysierbar sind. In diesem Vortrag werden die Vor- und Nachteile des zentralen Loggins dargelegt und gezeigt, wie sich Elasticsearch (bzw. der ELK-Stack) in Umgebungen einbinden lässt.
2. 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
3. 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
5. Was bedeutet “Zentrales Logging” ?
Dezentrales Logging
VPN Maschine
Jump Host
(beim Kunden)
Application ServerEntwickler PC
5/28
6. Was bedeutet “Zentrales Logging” ?
Zentrales Logging
Application ServerEntwickler PC Logging Service
Anfragen der Logs Senden der Logs
6/28
7. 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
11. 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
12. 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
13. 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
14. 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
15. 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
16. 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