Ich habe ELK 5.5.1 läuft in einem Docker-Container, und es wird die meisten meiner Protokolle analysieren, mit Ausnahme von denen, die aus meiner Spring-Anwendung stammen. Irgendwie sind die Ideen ausgegangen.Unkooperative ELK Docker Instanz
Ich habe es auf die logstash-> elasticsearch Pipeline nachverfolgt. Filebeat macht seinen Job, und Logstash ist Empfangen von Protokollen von der Anwendung in Frage, basierend auf tailing lostashs stdout log.
Ich löschte das Docker-Volume, das meine ELK-Daten sauber speichert, und begann mit filebeat, indem ich nur die fraglichen Logs weiterleitete.
eine Log-Zeile wie diese nehmen:
FINEST|8384/0|Service tsoft_spring|17-08-31 14:12:01|2017-08-31 14:12:01.260 INFO 8384 --- [ taskExecutor-2] c.t.s.c.s.a.ConfirmationService : Will not persist empty response notes
eine sehr geringe logstash Konfiguration verwenden, wird es in Elasticsearch beharrte aufzuwickeln werden:
input {
beats {
port => 5044
ssl => false
}
}
filter {
if [message] =~ /tsoft_spring/ {
grok {
match => [ "message", "%{GREEDYDATA:logmessage}" ]
}
}
}
output {
stdout { }
elasticsearch { hosts => ["localhost:9200"] }
}
Mit einer vollständigeren Konfiguration, das Protokoll wird einfach ignoriert durch elastische, keine grokparsefailure, keine dateparsefailure:
Ich habe überprüft, ob dieses Muster diese Zeile analysiert, unter Verwendung von http://grokconstructor.appspot.com/do/match#result, und ich hätte schwören können, dass es letztes Wochenende funktioniert hat, aber könnte meine Vorstellungskraft sein.
Sohn einer Waffe ... Ich kann es nicht glauben. Ich habe in diesem Fall schon mal einen Zeitverlust gesehen. Ich kann das nicht glauben - danke eine Tonne! – JonasJSchreiber