Das Ende der Logfiles
Das Ende der Logfiles
mit Elasticsearch, Logstash und Kibana zu übersichtlichem Logging
Dennis Kasparek
BA-Student
TRITUM GmbH
Was ist das Ziel?
Was kann man loggen?
 Zugriffe (access.log)
 Fehler (error.log)
 Änderungen
 Installationsvorgänge
 Eigene Daten
 …
Wie logge ich nun effektiver?
 Antwort: ELK-Stack
 Elasticsearch
 Logstash
 Kibana
Gibt es auch Alternativen?
Was ist Elasticsearch?
 Verteilte Suchsoftware
 Basiert auf Apache Lucene
 Bietet neben Volltextsuche auch analysierte und strukturierte Suche
 Sehr gut skalierbar
 Sehr schnell
Was ist Logstash?
 Aufgabe: Annahme, Verarbeitung und Weiterleitung
 Möglichkeiten: Input, Filter, Output
 Mögliche Inputs: file, udp, tcp, syslog
 Mögliche Filter: grok, mutate, geoip
 Mögliche Outputs: tcp, udp, elasticsearch
Was ist Kibana?
 Oberfläche für Elasticsearch
 Große Anzahl an verschiedenen Statistiken
 Aktuelle Version: 4
 Größte Neuerungen: abhängige Statistiken
 Dashboards von Version 3 nicht kompatibel
Wie installiere ich das alles?
 Gut dokumentierte Installationsanleitungen
 Wichtig: Absicherung!
 Logstash: iptables
 Elasticsearch: nur lokal erreichbar
 Kibana: Reverse Proxy und .htaccess
Wie sende ich Logs an den Logserver?
 Logstash (Forwarder)
 Rsyslog
 FireGento Logger (für Magento)
INPUT FILTER OUTPUT
input {
udp {
port => XXXXX
codec => json {
charset =>
"UTF-8"
}
}
}
filter {
grok {
match => ['message',
'%{COMBINEDAPACHELOG}']
}
geoip {
source => "clientip"
target => "geoip"
add_field => [ "[geoip][coordinates]",
"%{[geoip][longitude]}" ]
add_field => [ "[geoip][coordinates]",
"%{[geoip][latitude]}" ]
}
mutate {
convert => [ "[geoip][coordinates]", "float" ]
}
}
output {
elasticsearch {
host => "127.0.0.1"
}
}
Was passiert auf dem Logserver?
Und zuletzt: Wie sieht das alles jetzt aus?
LIVE-DEMO

Das Ende der Logfiles - mit Elasticsearch, Logstash und Kibana zu übersichtlichem Logging

  • 2.
    Das Ende derLogfiles Das Ende der Logfiles mit Elasticsearch, Logstash und Kibana zu übersichtlichem Logging Dennis Kasparek BA-Student TRITUM GmbH
  • 3.
  • 4.
    Was kann manloggen?  Zugriffe (access.log)  Fehler (error.log)  Änderungen  Installationsvorgänge  Eigene Daten  …
  • 5.
    Wie logge ichnun effektiver?  Antwort: ELK-Stack  Elasticsearch  Logstash  Kibana
  • 6.
    Gibt es auchAlternativen?
  • 7.
    Was ist Elasticsearch? Verteilte Suchsoftware  Basiert auf Apache Lucene  Bietet neben Volltextsuche auch analysierte und strukturierte Suche  Sehr gut skalierbar  Sehr schnell
  • 8.
    Was ist Logstash? Aufgabe: Annahme, Verarbeitung und Weiterleitung  Möglichkeiten: Input, Filter, Output  Mögliche Inputs: file, udp, tcp, syslog  Mögliche Filter: grok, mutate, geoip  Mögliche Outputs: tcp, udp, elasticsearch
  • 9.
    Was ist Kibana? Oberfläche für Elasticsearch  Große Anzahl an verschiedenen Statistiken  Aktuelle Version: 4  Größte Neuerungen: abhängige Statistiken  Dashboards von Version 3 nicht kompatibel
  • 10.
    Wie installiere ichdas alles?  Gut dokumentierte Installationsanleitungen  Wichtig: Absicherung!  Logstash: iptables  Elasticsearch: nur lokal erreichbar  Kibana: Reverse Proxy und .htaccess
  • 11.
    Wie sende ichLogs an den Logserver?  Logstash (Forwarder)  Rsyslog  FireGento Logger (für Magento)
  • 12.
    INPUT FILTER OUTPUT input{ udp { port => XXXXX codec => json { charset => "UTF-8" } } } filter { grok { match => ['message', '%{COMBINEDAPACHELOG}'] } geoip { source => "clientip" target => "geoip" add_field => [ "[geoip][coordinates]", "%{[geoip][longitude]}" ] add_field => [ "[geoip][coordinates]", "%{[geoip][latitude]}" ] } mutate { convert => [ "[geoip][coordinates]", "float" ] } } output { elasticsearch { host => "127.0.0.1" } } Was passiert auf dem Logserver?
  • 13.
    Und zuletzt: Wiesieht das alles jetzt aus? LIVE-DEMO