用于提取一部分 URI 的 grok 模式

grok pattern for extracting a portion of URI

我的任务是管理我们的 ELK 堆栈并为 elastalert 编写规则,但需要我已经拥有的一个字段的特定部分作为其自己的字段,以便在该字段上使用 elastalert 的 query_key 功能.我们在这里使用这些规则:

https://github.com/hpcugent/logstash-patterns/blob/master/files/grok-patterns

/path_field_1/UID/path_field_2/path_params

其中 UID 是 0-9,a-z,A-Z 的 32 个字符的唯一标识符。我可以访问 Kibana 中的整个 URI,但我最终需要 UID 成为它自己的字段,以便我可以在它上面使用 elastalert 的 query_key。包含此 UID 的行始终以“/path_to_field_1/”开头。

作为一个完全的新手,我不确定有什么(好的?)方法可以实现这一点 - 而且文档(我已经花了一个星期的时间)非常晦涩难懂。

你看grok是对的,如果前面的位总是相同的,你可以用grok来抓取UID

grok {
  match => {
    "uri_field" => "/path_to_field_1/%{DATA:UID}/%{GREEDYDATA}"
  }
}