Удалить поле из события по шаблону
Поэтому я использую стандартный ELK-стек для анализа журналов доступа Apache, который работает хорошо, но я пытаюсь выделить параметры URL в виде полей, используя фильтр KV, чтобы позволить мне писать более качественные запросы.
Моя проблема заключается в том, что анализируемое мной приложение имеет динамически генерируемые параметры «очистки кэша», что приводит к появлению десятков тысяч «полей», каждое из которых встречается один раз. У ElasticSearch, похоже, серьезные проблемы с этим, и они не имеют для меня значения, поэтому я бы хотел их удалить. Ниже приведен пример шаблона
GET /page?rand123PQY=ABC&other_var=something GET /page?rand987ZDQ=DEF&other_var=something
В приведенном выше примере параметры, которые я хочу удалить, запускаются «rand». В настоящее время мой logstash.conf использует grok для извлечения полей из журналов доступа, а затем kv для извлечения параметров строки запроса:
filter { grok { path => "/var/log/apache/access.log" type => "apache-access" } kv { field_split => "&?" } }
Есть ли способ, которым я могу отфильтровать любые поля, соответствующие шаблонуrand[A-Z0-9]*=[A-Z0-9]*
? Большинство примеров, которые я видел, относятся к полям с точным именем, которые я не могу использовать. Я задумался о том, чтобы переопределить поле запроса в новом поле, запустить KV для этого, а затем удалить его. Будет ли это работать?