FilebeatMultiline: различия между версиями

Материал из noname.com.ua
Перейти к навигацииПерейти к поиску
Строка 56: Строка 56:
 
Consecutive lines that match the pattern are appended to the previous line that doesn’t match. <BR>
 
Consecutive lines that match the pattern are appended to the previous line that doesn’t match. <BR>
 
Последующие строки соответствуют паттерну добавляются в конец к предыдущей строке которая не соответствует паттерну
 
Последующие строки соответствуют паттерну добавляются в конец к предыдущей строке которая не соответствует паттерну
  +
<PRE>
 
Lines
 
Lines
 
<PRE>
 
<PRE>

Версия 16:49, 10 августа 2021

Filebeat multiline

С этой темой вечная проблема - разобрался, настроил и забыл. Через пол года нужно разбираться заново, и что б сэкономить время решил сделать заметку.
Скорее всего так же ведет себя и Logstash

Параметры

Параметры которые определяют поведение и их возможные значения:

  • multiline.negate
    • true
    • false
  • multiline.match
    • before
    • after

Append / Prepend

  • Append - добавить в конец
  • Prepend - добавить в начало

Тестовые данные

D, [2021-08-08T13:17:02.482811 #7] DEBUG -- Line 1
E, [2021-08-08T13:17:02.484029 #7] ERROR -- Line 2
D, [2021-08-08T13:17:02.484108 #7] DEBUG -- Multiline 1
Multiline 1 1
Multiline 1 2
Multiline 1 3
D, [2021-08-08T13:17:02.486820 #7] DEBUG -- Multiline 2
Multiline 2 1
Multiline 2 2
Multiline 2 3
E, [2021-08-08T13:17:02.484029 #7] ERROR -- Line 3

Тестовое окружение

Для тестирования отправляю в Logstash а там сохраняю в файл, имя поля и фильтры по сути значения не имеют
О тестовом окружении тут: https://noname.com.ua/mediawiki/index.php/Logstash

Отправка теста - добавляю в лог данные:

cat test-data.log >> /path/to/file/configured/in/filebeat.log

Случай 1

  • pattern = ^b
  • multiline.negate = false
  • multiline.match = after

Описание

Consecutive lines that match the pattern are appended to the previous line that doesn’t match.
Последующие строки соответствуют паттерну добавляются в конец к предыдущей строке которая не соответствует паттерну

Lines 
<PRE>
a
b
b
c
b
b 

become "abb" and "cbb"

Проверка на реальных данных

D, [2021-08-08T13:17:02.482811 #7] DEBUG -- Line 1
E, [2021-08-08T13:17:02.484029 #7] ERROR -- Line 2
D, [2021-08-08T13:17:02.484108 #7] DEBUG -- Multiline 1
Multiline 1 1
Multiline 1 2
Multiline 1 3
D, [2021-08-08T13:17:02.486820 #7] DEBUG -- Multiline 2
Multiline 2 1
Multiline 2 2
Multiline 2 3
E, [2021-08-08T13:17:02.484029 #7] ERROR -- Line 3

Последующие строки которые соответствуют паттерну добавляются в начало строки которая не соответствует паттерну.

Результат теста (каждая строка это отдельное сообщение в logstash):

"D, [2021-08-08T13:17:02.482811 #7] DEBUG -- Line 1\nE, [2021-08-08T13:17:02.484029 #7] ERROR -- Line 2\nD, [2021-08-08T13:17:02.484108 #7] DEBUG -- Multiline 1"
"Multiline 1 1"
"Multiline 1 2"
"Multiline 1 3\nD, [2021-08-08T13:17:02.486820 #7] DEBUG -- Multiline 2"
"Multiline 2 1"

Т.е. соответствует ожидаемому.

Случай 2

  • pattern = ^b
  • multiline.negate: false
  • multiline.match: before

Consecutive lines that match the pattern are prepended to the next line that doesn’t match.
Последующие строки которые соответствуют паттерну добавляются в начало строки которая не соответствует паттерну.

Lines
<PRE>
b
b
a
b
b
c

become "bba" and "bbc"

Проверка на реальных данных

Результат теста (каждая строка это отдельное сообщение в logstash):

"Line 1"
"Line 2"
"Multiline 1"
"Multiline 2"
"Line 3"

Случай 3

  • pattern = ^b
  • multiline.negate = true
  • multiline.match = after

Consecutive lines that don’t match the pattern are appended to the previous line that does match.
Последующие строки которые НЕ соответствуют паттерну присоединяются к предыдущей строке которая НЕ соответствует паттерну Lines

b
a
c
b
d
e

become "bac" and "bde"

Случай 4

  • pattern = ^b
  • multiline.negate: true
  • multiline.match: before

Consecutive lines that don’t match the pattern are prepended to the next line that does match.

Lines

a
c
b
d
e
b

become "acb" and "deb"

Ссылки