Создать поле по сообщению logstash - PullRequest
0 голосов
/ 05 октября 2018

У меня очень простое сообщение, приходящее в мой logstash, я хочу создать два поля, которые находятся внутри этого сообщения.

if [message] =~ /.*My process: (?<myfield1>[A-Z]+) - (?<myfield2>[A-Z]+).*/ {
    mutate {
     add_field => [ "event_type", "eventType" ]
     add_tag => ["myTag"]
     add_tag => ["MySecondTag"]     } }

Как я могу создать поле со значениями field1 и field2?

1 Ответ

0 голосов
/ 07 февраля 2019

Вам следует подумать о том, чтобы заменить свой фильтр mutate на фильтр grok

Плагин Logstash Grok Filter

grok {
  id => "Parse_MyFields"
  match => { "message" => [ "/.*My process: %{WORD:myfield1} - %{WORD:myfield2}.*/" ] }
  }

Это установит 2 слова, которые вы пытаетесь извлечь вполе "myfield1" и поле "myfield2".

Обязательно проверьте ваш фильтр grok с помощью такого инструмента, как Конструктор Grok или Отладчик Grok

Вы даже можете использовать add_field с этим плагином.

...