Logstash обернуть объект JSON - PullRequest
       5

Logstash обернуть объект JSON

0 голосов
/ 11 октября 2019

Я хотел бы обернуть объект json, отправленный в Logstash через плагин http listener, чтобы я мог отправить его в Splunk. Я получаю объект, который выглядит как:

{ 
   "foo" : "text", 
   "bar" : "text" 
} 

, и мне нужно, чтобы он выглядел так:

{ "event" : 
  { 
     "foo" : "text", 
     "bar" : "text"
  } 
} 

Я просто не могу найти, как получить доступ к этому объекту верхнего уровня.

config:

input {
  http {
    port => 8080
    codec => "json"
  }
}

filter {
  mutate {
    rename => { "WHAT GOES HERE???" => "event" }
  }
}

output {
  stdout { codec => json }
}

Большое спасибо!

1 Ответ

1 голос
/ 11 октября 2019

Вы можете использовать rename или add_field.

С rename

mutate {
    rename => { "foo" => "[event][foo]" }
    rename => { "bar" => "[event][bar]" }
}

С add_field

mutate {
    add_field => { "[event][foo]" => "%{[foo]}" }
    add_field => { "[event][bar]" => "%{[bar]}" }
}

Если вы используете add_field, поля foo и bar сохраняются в сообщении, вы можете удалить их, используя remove_field

mutate {
    remove_field => [ "foo", "bar" ]
}
...