У меня есть данные, поступающие из запросов к базе данных с использованием входного плагина jdbc, и результат запросов содержит поле url
, из которого я хочу извлечь несколько свойств.
Примеры URL:
- / инцидент.do? Sys_id = 0dc18b246faa17007a64cbe64f3ee4e1 & sysparm_view
- / navpage_form_default.do
- JOB: обработка событий чтения электронной почты
- JOB: система - сокращение ресурсов
Я добавил шаблоны регулярных выражений в файл шаблонов grok:
webpage_category .*
job_type .*
У меня есть два типа URL, поэтому я использовал, если в блоке фильтра, чтобы различать их
Конфигурация Я пытался до сих пор:
filter {
if [url] =~ /JOB: .*/ {
grok {
patterns_dir => ["/etc/logstash/patterns"]
match => {
"url" => "JOB: %{job_type:job_type}"
}
}
} else
if [url] =~ /\/.*\.do\?.*/ {
grok {
patterns_dir => ["/etc/logstash/patterns"]
match => {
"url" => "/{webpage_category:webpage_category}\.do\?.*"
}
}
}
}
Создание нового полядля URL, начинающихся с JOB:
, работает нормально, но webpage_category
не работает вообще.Это потому, что регулярные выражения нельзя использовать внутри матча?