2015-10-15 1 views
0

Je journaux Json dans un tableau comme suit:Comment couper et supprimer des éléments dans un tableau avec Logstash

e":[{"n":"3/0/1","st":"CONTENT","v":"Sensortag"}, 
    {"n":"3/0/3","st":"CONTENT","v":"Contiki-develop-20150508-409-g2147b9e"}, 
    {"n":"3/0/13","st":"CONTENT","v":"1970-01-09T21:02:18Z"}, 
    {"n":"3301/0/5700","st":"CONTENT","v":"376.64"}, 
    {"n":"3303/0/5700","st":"CONTENT","v":"22.843"}, 
    {"n":"3304/0/5700","st":"CONTENT","v":"63.53"}, 
    {"n":"3315/0/5700","st":"CONTENT","v":"1000.34"}] 

Je voudrais supprimer les 3 premiers éléments du tableau et garder les 4 derniers en utilisant un filtre.

J'ai ce que mon filtre:

filter { 

    if ([type] == "testbed"){ 

      if [MessageParserJson][e[{}] in [MessageParserJson]{ 
        mutate { 
          remove_field => ["[MessageparserJson][e[{0}]]" , "[MessageparserJson][e[{1}]]" , "[MessageParserJson][e[{2}]]"] 
          add_field => { "[MessageParserJson][e[{3}]]" => "MessageParser" } 
          add_field => { "[MessageParserJson][e[{4}]]" => "MessageParser" } 

          add_field => { "[MessageParserJson][e[{5}]]" => "MessageParser" } 
          add_field => { "[MessageParserJson][e[{6}]]" => "MessageParser" } 
          } 
          } 

        drop { 
          remove_field => ["MessageParserJson"] 
          } 

} 
} 

Mais Logstash se met en erreur

Répondre

0

vous pouvez utiliser le filtre Ruby pour cela, par exemple retirer les trois premiers éléments cela devrait fonctionner:

filter { 
    ruby { 
     code => "event['MessageParserJson'].slice!(0,3)" 
    } 
} 

Vive