Logstash 过滤器,如果字段匹配正则表达式不起作用
Logstash filter, if field matches regex not working
在我的 Logstash 管道中,我想对匹配正则表达式的字段应用一些操作。例如,我想过滤所有以 JOB:
开头的 url
字段,所以在研究之后我想出了这个配置:
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
if
需要超出 grok
过滤器,即它必须包围 grok
filter {
if [url] =~ /^JOB: .*/ {
grok {
patterns_dir => ["./patterns"]
match => ["url" => "JOB: %{job_type:job_type}"]
}
}
}
在我的 Logstash 管道中,我想对匹配正则表达式的字段应用一些操作。例如,我想过滤所有以 JOB:
开头的 url
字段,所以在研究之后我想出了这个配置:
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
if
需要超出 grok
过滤器,即它必须包围 grok
filter {
if [url] =~ /^JOB: .*/ {
grok {
patterns_dir => ["./patterns"]
match => ["url" => "JOB: %{job_type:job_type}"]
}
}
}