2016-10-16 2 views
0

Я использую logstash для анализа моих журналов. когда я разбираю json (который содержит поле «сообщение») переопределяет поле сообщения по умолчанию. Я попытался использовать параметр remove_field для фильтра json {}, но это не сработало для меня.Избегайте переопределения поля сообщения по умолчанию в logstash

Вот мой код фильтра:

filter { 
    mutate { 
     gsub => ["message", "\"", "'"] 
    } 
    mutate { 
     gsub => ["message", ".", "_"] 
    } 
    csv { 
     columns => ["TIMESTAMP", "HEADERS", "FIELD1", "FIELD2", "FIELD2_TIME", "INTER_FIELD2"] 
     separator => "|" 
    } 
    mutate { 
     gsub => ["FIELD1", "'", '"'] 
    } 

    #Removing message field inside FIELD1 json to avoid overriding 
    json { 
     source => "FIELD1" 
     remove_field => ["message"] 
    } 
    mutate { 
     gsub => ["FIELD2", "'", '"'] 
    } 
    json { 
     source => "FIELD2" 
     remove_field => ["message"] 
    } 
} 

Как избежать переопределение поля defaultmessage?

ответ

0

два варианта приходят на ум:

  1. переместить [сообщение] поле из пути перед вызовом JSON {} фильтра (mutate-> переименовывать).
  2. используйте параметр 'target' фильтра json {}, чтобы помещать данные json где-то, кроме корня документа.