2016-06-23 30 views
1

ich begonnen habe logstash mit mehreren Arbeitern> 16.logstash 2.3.3 mehrzeilige Filter nicht mit mehreren Arbeitern arbeiten

Ich habe mehrzeilige Nachrichten wie Java Ausnahmen/java Spuren und wollen, dass sie zu einem einzigen Ereignis verschmelzen. Zuvor Es funktioniert wie erwartet, aber meine ELK-Stack nach dem Upgrade es bricht :-(

meinen logstash Filter:

filter { 
    multiline { 

    pattern => "(^[a-zA-Z.]+(?:Error|Exception): .+)|(^\s+at .+)|(^\s+... \d+ more)|(^\s*Caused by:.+)" 
    what => "previous" 
    } 
} 

logstash Protokolle:

:message=>"Warning: Manual override - there are filters that might not work with multiple worker threads", :worker_threads=>16, :filters=>["multiline"], :level=>:warn} 
Exception in pipelineworker, the pipeline stopped processing new events, please check your filter configuration and restart Logstash. 
+0

Hallo @MitterSinghThakur wenn die Antwort Ihre Frage gelöst hat, bitte in Betracht ziehen, es zu akzeptieren. Dies zeigt der breiteren Gemeinschaft, dass Sie eine Lösung gefunden haben. Aber dazu besteht keine Verpflichtung. – baudsp

Antwort

2

Wenn Sie von Logstash Version aktualisiert 1.5, es wird erwartet
In der Version 2.0 wurden die Worker-Threads eingeführt, aber da der Multiline-Filter nicht threadsicher ist, wird die Verwendung von mehr als einem Worker-Thread verhindert

So haben Sie entweder:

  • die multiline codec verwenden.
    Zum Beispiel Java-Ausnahme Stacktrace beitreten:

    input { 
        stdin { 
        codec => multiline { 
         pattern => "(^.+Exception: .+)|(^\s+at .+)|(^\s+... \d+ more)|(^\s*Caused by:.+)" 
         what => "previous" 
        } 
        } 
    } 
    
  • Sie die mehrzeilige Betrieb auf dem Versender (beide Biber und filebeat kann so konfiguriert werden, es zu tun)

  • Verwenden Sie nur ein Worker-Thread (in diesem Fall Sie können mehrere Instanzen von Logstash verwenden, um alle Ihre CPU-Kerne zu verwenden. Beachten Sie jedoch, dass der mehrzeilige Filter schließlich entfernt wird.
+0

Weitere Informationen finden Sie hier: [elastischer Blogbeitrag] (https://www.elastic.co/blog/logstash-moving-away-from-node-protocol-and-multiline-filter), [ github Ausgabe] (https://github.com/elastic/logstash/issues/4386) – baudsp

+0

danke für Ihre Antwort. –

+0

danke für Ihre Antwort. Ich benutze logstash-forwarder als Versender, es wird großartig sein, wenn du etwas lite darauf stellen kannst. es wäre großartig, wenn Sie die Konfigurationsbeispiel Server & Client Seite teilen können. Ich muss Java-Ausnahmen sowie andere Protokolle von allen App-Servern zum logstash-Server mit Logstash-Weiterleitung, Beispielprotokolle liefern: Ausnahme im Thread "Haupt" java.lang.NullPointerException bei com.example.myproject.Book.getTitle (Buch .java: 16) bei com.example.myproject.Author.getBookTitles (Author.java:25) bei com.example.myproject.Bootstrap.main (Bootstrap.java:14) –