Избегайте переопределения поля сообщения по умолчанию в logstash

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

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

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?


person Deepak Kumar    schedule 16.10.2016    source источник


Ответы (1)


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

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