Feld nach Muster aus Ereignis entfernen

So verwende ich einen Standard-ELK-Stack zum Analysieren von Apache-Zugriffsprotokollen, was gut funktioniert, aber ich möchte URL-Parameter mithilfe des KV-Filters als Felder aufteilen, damit ich bessere Abfragen schreiben kann.

Mein Problem ist, dass diese App, die ich analysiere, dynamisch generierte 'Cache-Busting'-Parameter hat, was dazu führt, dass Zehntausende von' Feldern 'jeweils einmal vorkommen. ElasticSearch scheint ernsthafte Probleme damit zu haben und sie haben für mich keinen Wert, daher möchte ich sie entfernen. Unten ist ein Beispiel für das Muster

GET /page?rand123PQY=ABC&other_var=something GET /page?rand987ZDQ=DEF&other_var=something

In dem obigen Beispiel beginnen die Parameter, die ich entfernen möchte, mit 'rand'. Derzeit verwendet meine logstash.conf grok, um Felder aus den Zugriffsprotokollen zu extrahieren, gefolgt von kv, um Parameter für Abfragezeichenfolgen zu extrahieren:

filter { grok { path => "/var/log/apache/access.log" type => "apache-access" } kv { field_split => "&?" } } Gibt es eine Möglichkeit, Felder herauszufiltern, die mit dem Muster @ übereinstimmerand[A-Z0-9]*=[A-Z0-9]*? Die meisten Beispiele, die ich gesehen habe, zielen auf Felder mit genauem Namen ab, die ich nicht verwenden kann. Ich habe mich gefragt, ob ich das Anforderungsfeld in ein neues Feld umwandeln soll, KV darauf ausführen und es dann entfernen soll. Funktioniert das

Antworten auf die Frage(4)

Ihre Antwort auf die Frage