Man hat eine Logdatei (oder mehrere?), die man mal eben durchsuchen und auswerten möchte.
docker run -p 5601:5601 -p 9200:9200 -p 5044:5044 -v lokaleslogfile:/tmp/dockerlogfile.log -v lokaleconfig:/etc/logstash/conf.d/03-file-input.conf -it --name elk sebp/elk
- lokaleslogfile: Vollständiger Dateipfad zur zu untersuchenden Datei
- lokaleconfig: Pfad zur Logstash-Config (Beispiel siehe unten)
Unter localhost:5601
kann man dann Kibana aufrufen.
Doku zum Docker-Paket: https://elk-docker.readthedocs.io/
In der folgenden Datei muss man noch die GROK-Zeile so anpassen, dass die passenden Felder extrahiert werden - nach Geschmack. Doku zu GROK-Patterns: https://github.com/logstash-plugins/logstash-patterns-core/tree/master/patterns Grok-Debugger um die Pattern zu testen: https://grokdebug.herokuapp.com/
input {
file {
path => "/tmp/dockerlogfile.log"
start_position => "beginning"
}
}
filter {
grok {
match => { "message" => "%{TIMESTAMP_ISO8601:timestamp} %{WORD:level} \[%{JAVACLASS:class}\] Dataset %{DATA:dataset}\: %{GREEDYDATA:errormsg}" }
}
date {
match => [ "timestamp" , "yyyy-MM-dd:HH:mm:ss.SSS" ]
}
}
output {
elasticsearch { hosts => localhost }
}