0

我正在使用 Logstash 来解析日志。

现在我想以不同方式处理与特定正则表达式匹配的日志以及不以不同方式匹配的日志。

是可以通过 Logstash 实现的。

我该怎么做?

我的配置文件是:

input {
stdin {
    type => "stdin-type"
  }
}
filter {

  grok {
    type => "stdin-type"
    patterns_dir=>["./patterns"]
    pattern => "%{PARSE_ERROR}"
    add_tag=>"%{type1},%{type2},%{slave},ERR_SYSTEM"
  }
date
{
replace=>["%{ts}","yyyy/MM/dd-HH:mm:ss.SSS"]
custom_timestamp=>[%{ts}]
}

mutate
{
    type=>"stdin-type"
    replace => ["@message", "%{message}" ]

}


}
output {
  stdout { debug => true debug_format => "json"}
  elasticsearch
{ 
}
}

假设我不想将那些与正则表达式不匹配的日志放在弹性搜索中。可能吗?如何?

4

1 回答 1

0

是的,您可以在 filter{} 部分或 output{} 部分中使用条件来执行此操作:

filter {
    if [field] == "value" {
        drop{}
    }
}

或者

output {
     if [field] != "value" {
         elasticsearch {
              ...
         }
     }
}
于 2015-05-30T00:03:16.977 回答