FilebeatMultiline: различия между версиями
Sirmax (обсуждение | вклад) |
Sirmax (обсуждение | вклад) |
||
Строка 82: | Строка 82: | ||
E, [2021-08-08T13:17:02.484029 #7] ERROR -- Line 3 |
E, [2021-08-08T13:17:02.484029 #7] ERROR -- Line 3 |
||
</PRE> |
</PRE> |
||
+ | Перевод описания: <BR> |
||
Последующие строки которые соответствуют паттерну добавляются в начало строки которая не соответствует паттерну. |
Последующие строки которые соответствуют паттерну добавляются в начало строки которая не соответствует паттерну. |
||
Строка 91: | Строка 92: | ||
"Multiline 1 3\nD, [2021-08-08T13:17:02.486820 #7] DEBUG -- Multiline 2" |
"Multiline 1 3\nD, [2021-08-08T13:17:02.486820 #7] DEBUG -- Multiline 2" |
||
"Multiline 2 1" |
"Multiline 2 1" |
||
+ | "Multiline 2 2" |
||
+ | "Multiline 2 3\nE, [2021-08-08T13:17:02.484029 #7] ERROR -- Line 3" |
||
</PRE> |
</PRE> |
||
Т.е. соответствует ожидаемому. |
Т.е. соответствует ожидаемому. |
Версия 16:51, 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
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" "Multiline 2 2" "Multiline 2 3\nE, [2021-08-08T13:17:02.484029 #7] ERROR -- Line 3"
Т.е. соответствует ожидаемому.
Случай 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"