【发布时间】:2015-05-14 15:42:31
【问题描述】:
我正在尝试调整路径名称,以便它不再在末尾附加时间戳。我输入了许多不同的日志,因此为每个可能的日志编写条件过滤器是不切实际的。如果可能的话,我只想修剪该值的最后九个字符。
例如,"random.log-20140827" 将变为 "random.log"。
【问题讨论】:
标签: logstash trim logstash-grok
我正在尝试调整路径名称,以便它不再在末尾附加时间戳。我输入了许多不同的日志,因此为每个可能的日志编写条件过滤器是不切实际的。如果可能的话,我只想修剪该值的最后九个字符。
例如,"random.log-20140827" 将变为 "random.log"。
【问题讨论】:
标签: logstash trim logstash-grok
mutate {
gsub => [
"path", "-\d{8}$", ""
]
}
【讨论】:
所以如果你知道它总是随机的.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"
}
}
在这两个中,第一个计算密集度较低。
我还没有测试过这些,但它们应该可以工作。
【讨论】: