Возможно ли в Logstash multiline codec использовать логические переменные и, или?
Добрый день
Возможно ли использование логических переменных в Logstash multiline codec при описании pattern? Как видно из примера ниже, ко мне из файла приходит лог, который содержит в себе ключевые значения по которым лог должен быть сшит в отдельные блоки и передан в БД как разные документы.
Пример: значений которые нужно применять при сшивании
input {
file {
# codec => "plain"
codec => multiline {
pattern => ["T0_INPUT_XML]|[someinfo]|[check]|[time]|[cashier]|["] #сшиваем до следующего T0_INPUT_
negate => true
what => next
}
path => "/home/logs/*.log"
start_position => "beginning"
tags => "from_file"
type => xml_log
}
}
Вся проблема в том что до следующего _INPUT_ в логе могут присутствовать или _OUTPUT_ или другое значение "T" (T1_ к примеру который способен принять значения INPUT/OUTPUT), которые также должны быть переданы как отдельные документы. Соответственно для поля pattern хочу задать несколько шаблонов обработки разделенных логической "or". Кто-то с подобным сталкивался? Можете ли дать примеры ?
input {
file {
# codec => "plain"
codec => multiline {
pattern => "^\b(T0_OUTPUT_XML)?|(T0_INPUT_XML)" ##создаем патерны (теги) по которым будет разбираться простыня
negate => true
what => "previous" ##определяет положение сшивающего тега(в данном случае в начале листа тег и инфа до следующего указаного в патерне)если ставить "next" то патерн попадает в предыдущий лист
}
path => "/home/logs/*.log"
start_position => "beginning" ## определяет откуда начинать читать лист и в какой очеердности оно прилитает в вебинтерфейс в данном случае зеркалка.. надо исправить: -)
tags => "from_file"
type => xml_log
}
}