如何匹配 UUID/GUID 并在 logstash 中替换
How to match UUID/GUID and replace in logstash
我想通过相应的 HTTP 请求方法对日志进行分组,但有时这些路径包含 ids
正如您所料,目前我有一个字段 httpPath
其值类似于: resources/12321-2132-asdf3223
,但也可能像:resources/12321-2132-asdf3223/someaction
。我希望能够实现以下目标:
resources/12321-2132-asdf3223 => resources/{id}
和
resources/12321-2132-asdf3223/someaction => resources/{id}/someaction
正在创建新字段:controllerPath
。所以我想找到 UUID 并将其替换为 {id}
,并尽可能将结果存储在新字段中。
我自己想出来了 ( ;
if [httpPath] {
mutate {
add_field => { "controllerPath" => "%{httpPath}" }
}
mutate {
gsub => [
"controllerPath", "(?<GrokParse>/[A-Fa-f0-9]{8}-(?:[A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12})", "/{id}"
]
}
}
我想通过相应的 HTTP 请求方法对日志进行分组,但有时这些路径包含 ids
正如您所料,目前我有一个字段 httpPath
其值类似于: resources/12321-2132-asdf3223
,但也可能像:resources/12321-2132-asdf3223/someaction
。我希望能够实现以下目标:
resources/12321-2132-asdf3223 => resources/{id}
和
resources/12321-2132-asdf3223/someaction => resources/{id}/someaction
正在创建新字段:controllerPath
。所以我想找到 UUID 并将其替换为 {id}
,并尽可能将结果存储在新字段中。
我自己想出来了 ( ;
if [httpPath] {
mutate {
add_field => { "controllerPath" => "%{httpPath}" }
}
mutate {
gsub => [
"controllerPath", "(?<GrokParse>/[A-Fa-f0-9]{8}-(?:[A-Fa-f0-9]{4}-){3}[A-Fa-f0-9]{12})", "/{id}"
]
}
}