如何匹配 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}"
      ]
    }
  }