2016-06-23 2 views
1

Я начал logstash с несколькими рабочими> 16.logstash 2.3.3 многострочного фильтр не работает с несколькими рабочих

У меня есть многострочные сообщения, как ява исключения/Java следы и хочу, чтобы объединить их в одно событие. Ранее он работал, как и ожидалось, но после обновления мой ELK стек это нарушение :-(

мой logstash фильтр:

filter { 
    multiline { 

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

logstash журналы:

: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

Привет @MitterSinghThakur, если ответ решил ваш вопрос, пожалуйста, подумайте о его принятии. Это указывает более широкому сообществу, что вы нашли решение. Но этого не требуется. – baudsp

ответ

2

Если вы модернизировали от Logstash версии 1.5, ожидается.
В версии 2.0 были введены рабочие потоки, но поскольку многострочный фильтр не является потокобезопасным, он предотвращает использование более одного рабочего потока.

Таким образом, вы будете иметь либо:

  • Используйте multiline codec.
    Например, чтобы присоединиться к Java исключения StackTrace:

    input { 
        stdin { 
        codec => multiline { 
         pattern => "(^.+Exception: .+)|(^\s+at .+)|(^\s+... \d+ more)|(^\s*Caused by:.+)" 
         what => "previous" 
        } 
        } 
    } 
    
  • ли многострочная операции на вашем грузоотправителе (оба бобра и filebeat может быть настроен, чтобы сделать это)

  • Используйте только один рабочий поток (в этом случае вы можете использовать несколько экземпляров Logstash для использования всех ваших ядер процессора, но имейте в виду, что многострочный фильтр будет удален).
+0

Вы можете посмотреть на это для получения дополнительной информации: [эластичный блог-пост] (https://www.elastic.co/blog/logstash-moving-away-from-node-protocol-and-multiline-filter), [ github issue] (https://github.com/elastic/logstash/issues/4386) – baudsp

+0

спасибо за ваш ответ. –

+0

Спасибо за ваш ответ. Я использую logstash-forwarder в качестве грузоотправителя. Будет здорово, если вы можете наложить на него некоторый lite. было бы здорово, если бы вы могли поделиться конфигурационным примером сервера и клиентской стороны. Мне нужно отправить java-исключения, а также другие журналы со всех серверов приложений на сервер логсташей, используя logstash forwarder, например журналы: Исключение в потоке «main» java.lang.NullPointerException at com.example.myproject.Book.getTitle (Книга .java: 16) at com.example.myproject.Author.getBookTitles (Author.java:25) at com.example.myproject.Bootstrap.main (Bootstrap.java:14) –

Смежные вопросы