取出一个字段的第一行,在Logstash 1.4.0中添加为新字段

Take out the first line of a field and add it as a new field in Logstash 1.4.0

我配置了 ELK 堆栈,运行 使用 log4j,一切正常。我希望能够做的是按类型对所有异常进行分组,例如 - 创建一个术语图并为每个异常类型(如 FileNotFound、NullPointerException 等)设置一个术语。我已经有一个 stack_trace 字段,其中包括第一行的异常类型,然后是完整的堆栈跟踪。我在网上找到了这样的东西:

filter{
  mutate {
    gsub => [
      "stack_trace", "\n.*", ""
    ]
  }
}

但这只会用第一行覆盖 stack_trace 字段,这不是我想要的。我想添加一个新字段,该字段取出 stack_trace 字段的第一行异常类型。

复制堆栈跟踪字段并对其执行 gsub

filter{
  mutate {
    add_field => { 
      "exception" => "%{stack_trace}" 
    }
  }
  mutate {
    gsub => [
      "exception", "\n.*", ""
    ]
  }
}

编辑:感谢 @Alpha for pointing out ,您可能需要使用两个单独的突变。