【问题标题】:Logstash parsing different action with different logsLogstash 使用不同的日志解析不同的操作
【发布时间】:2013-05-14 18:00:59
【问题描述】:

我正在使用 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
{ 
}
}

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

【问题讨论】:

  • 你想对不匹配的日志做什么?将它们丢弃或输出到其他地方?
  • @nickethier 我想把它们放到一个项目中,在另一个项目中关联一些不同的标签并将它们也输出到弹性搜索中......请给我解释一下

标签: parsing logging elasticsearch logstash


【解决方案1】:

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

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

output {
     if [field] != "value" {
         elasticsearch {
              ...
         }
     }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-21
    相关资源
    最近更新 更多