Фильтр logstash, если поле соответствует регулярному выражению, не работает - PullRequest
0 голосов
/ 05 июня 2018

В моем конвейере Logstash я хочу применить некоторые операции к полю, если оно соответствует регулярному выражению.Например, я хочу отфильтровать все url поля, которые начинаются с JOB:, поэтому после исследования я получил следующую конфигурацию:

filter {
        grok {
            patterns_dir => ["./patterns"]
                  if [url] =~ /^JOB: .*/ {
                       add_field => {
                              "job_type" => "JOB: %{job_type:url}"
                       }
                  }
         }
}

Но после запуска service logstash configtest я получаю эту ошибку:

The given configuration is invalid. Reason: 
Expected one of #, => at line 87, column 7 (byte 3332) after filter {
                        grok {
                                patterns_dir => ["./patterns"]
                                if 

1 Ответ

0 голосов
/ 05 июня 2018

if должен выходить из фильтра grok, т.е. он должен окружать grok

filter {
    if [url] =~ /^JOB: .*/ {
        grok {
            patterns_dir => ["./patterns"]
            match => ["url" => "JOB: %{job_type:job_type}"]
        }
    }
}
...