How to match UUID/GUID and replace in logstash

671 Views Asked by At

I am wanting to group logs by their corresponding HTTP request method, but sometimes these paths contain ids as you might expect, currently I have a field httpPath which has a value of something like: resources/12321-2132-asdf3223, but also could be like : resources/12321-2132-asdf3223/someaction. And I want to be able to achieve the following:

resources/12321-2132-asdf3223 => resources/{id}

And

resources/12321-2132-asdf3223/someaction => resources/{id}/someaction

Creating a new field: controllerPath. So I want to find and replace UUIDs with {id}, and store the result in a new field if possible.

1

There are 1 best solutions below

0
On BEST ANSWER

Figured it out myself ( ;

  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}"
      ]
    }
  }