Trim字段值,或去掉部分值
Trim field value, or remove part of the value
我正在尝试调整路径名,使其末尾不再附加时间戳。我输入了许多不同的日志,因此为每个可能的日志编写条件过滤器是不切实际的。如果可能的话,我只想 trim 值的最后九个字符。
例如 "random.log-20140827"
会变成 "random.log"
。
所以如果你知道它总是random.log-某事--
if [path] =~ /random.log/ {
mutate {
replace => ["path", "random.log"]
}
}
如果你想 "fix" 任何有日期的东西:
if [path] =~ /-\d\d\d\d\d\d\d\d/ {
grok {
match => [ "path", "^(?<pathPrefix>[^-]+)-" ]
}
mutate {
replace => ["path", "%{pathPrefix}"]
remove_field => "pathPrefix"
}
}
在两者中,第一个计算密集度较低。
我还没有测试过这两个,但它们应该可以工作。
mutate {
gsub => [
"path", "-\d{8}$", ""
]
}
我正在尝试调整路径名,使其末尾不再附加时间戳。我输入了许多不同的日志,因此为每个可能的日志编写条件过滤器是不切实际的。如果可能的话,我只想 trim 值的最后九个字符。
例如 "random.log-20140827"
会变成 "random.log"
。
所以如果你知道它总是random.log-某事--
if [path] =~ /random.log/ {
mutate {
replace => ["path", "random.log"]
}
}
如果你想 "fix" 任何有日期的东西:
if [path] =~ /-\d\d\d\d\d\d\d\d/ {
grok {
match => [ "path", "^(?<pathPrefix>[^-]+)-" ]
}
mutate {
replace => ["path", "%{pathPrefix}"]
remove_field => "pathPrefix"
}
}
在两者中,第一个计算密集度较低。
我还没有测试过这两个,但它们应该可以工作。
mutate {
gsub => [
"path", "-\d{8}$", ""
]
}