#elasticsearch #logging #logstash #filebeat
Вопрос:
У меня есть несколько приложений, которые генерируют журналы в формате txt и журнала, и мне нужно было отправить всю информацию в Кибану, я смог отправить эти журналы, но отправил каждую строку файла в событии. Я хотел бы отправить все строки журнала только в одном событии, пример формата журнала приложений:
16/09/2021 14:32:37 - [ INFO ] - Lendo arquivo de configuração
16/09/2021 14:32:38 - [ INFO ] - UID de Execução: d6649885-37f1-4f98-ba86-c23289fbad25
16/09/2021 14:32:41 - [ INFO ] - Iniciando extração de arquivo .RAR...
16/09/2021 14:32:42 - [ ERROR ] - Erro de execução: System.ArgumentException: File does not exist: C:Users7.903007DesktopBase 2arquivo rarBaseII_cbss_16092021.rar
at SharpCompress.Archives.AbstractArchive`2..ctor(ArchiveType type, FileInfo fileInfo, ReaderOptions readerOptions)
at SharpCompress.Archives.Rar.RarArchive..ctor(FileInfo fileInfo, ReaderOptions options)
at SharpCompress.Archives.Rar.RarArchive.Open(String filePath, ReaderOptions options)
at BaseII.Program.Main(String[] args) in C:Users7.903007DesktoptestelegacyautomationBaseIIProgram.cs:line 45
Я хотел бы отправить все строки журнала только в одном событии, возможно ли это?
Ответ №1:
Вы можете указать этот multiline
параметр в своей filbeat.yml
конфигурации в filebeat.inputs
разделе.
Пример конфигурации:
multiline.type: pattern
multiline.pattern: '^dd/dd/dddd'
multiline.negate: true
multiline.match: after
Эта настройка гарантирует, что Filebeat возьмет все строки, которые не начинаются с даты, и объединит их с предыдущей строкой, которая начинается.
Шаблон — это просто регулярное выражение.
Если это трассировка стека Java, вы можете пойти даже с этим, который ищет пробелы:
multiline.type: pattern
multiline.pattern: '^[[:space:]]'
multiline.negate: false
multiline.match: after