修剪字段值,或删除部分值

时间:2015-05-14 15:42:31

标签: logstash trim logstash-grok

我正在尝试调整路径名,以便它不再在末尾附加时间戳。我输入了许多不同的日志,因此为每个可能的日志编写条件过滤器是不切实际的。如果可能的话,我只想修剪该值的最后九个字符。

例如"random.log-20140827"将成为"random.log"

2 个答案:

答案 0 :(得分:5)

mutate {
    gsub => [
        "path", "-\d{8}$", ""
    ]
}

答案 1 :(得分:3)

所以,如果你知道它总是随机的.log-something -

if [path] =~ /random.log/ {
  mutate {
     replace => ["path", "random.log"]
  }
}

如果你想"修复"任何有日期的东西:

if [path] =~ /-\d\d\d\d\d\d\d\d/ {
   grok {
      match => [ "path", "^(?<pathPrefix>[^-]+)-" ]
   }
   mutate {
      replace => ["path", "%{pathPrefix}"]
      remove_field => "pathPrefix"
   }
}

在这两者中,第一个是计算密集度较低。

我还没有对这些中的任何一个进行测试,但它们应该有效。