Фильтрация Logstash, не удается проанализировать .CSV с данными JSON в нем - PullRequest
1 голос
/ 02 июля 2019

Я новичок в Logstash и пытаюсь проанализировать файл CSV, который также содержит поля с данными JSON (также вложенными в несколько строк). У меня проблемы с анализом CSV, поскольку данные JSON содержат запятые и кавычки.

filter {
  csv {
    separator => ","
    columns => [ "timestamp" , "timestamp_iso" , "log_level" , "tag" , "message" ]
    skip_empty_columns => true
    quote_char => "'"
  }
  date {
    match => [ "timestamp_iso" , "yyyy'.'MM'.'dd HH:mm:ss'.'SSS"]
    target => "@timestamp"
  }
  mutate {
    convert => ["timestamp", "integer"]
    add_field => {
      "file" => "%{[@metadata][s3][key]}"
    }
  }
  json {
    source => "message"
    target => "message"
    skip_on_invalid_json => true
  }
  grok {
    match => { "file" => "%{GREEDYDATA:device_id}_%{GREEDYDATA:log_time}.csv" }
  }
}

Поле, из которого я собираюсь проанализировать данные JSON, - это поле Сообщение в приведенном выше коде. Сообщение об ошибке из logstash:

 Error parsing csv {:field=>"message",......:exception=>#<CSV::MalformedCSVError: Illegal quoting in line 1.>}

Любая помощь с этим будет высоко ценится

...