我是Logstash的新手,正在尝试解析CSV文件,该文件还包含带有JSON数据的字段(也嵌套在某些行中)。 JSON数据包含逗号和引号时,我在CSV解析时遇到了麻烦。
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数据的字段是上面代码中的Message字段。 logstash的错误消息是:
Error parsing csv {:field=>"message",......:exception=>#<CSV::MalformedCSVError: Illegal quoting in line 1.>}
任何帮助,将不胜感激