Как сопоставить UUID / GUID и заменить в logstash

#logstash #logstash-grok #logstash-filter

#logstash #logstash-grok #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} , и сохранить результат в новом поле, если это возможно.

Комментарии:

1. Не могли бы вы поделиться своей конфигурацией фильтра.

Ответ №1:

Понял это сам ( ;

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