我有一个CSV文件,我试图使用csv过滤器解析Logstash。 不幸的是,源文件包含一个包含XML数据的字段 - 我不确定它在技术上是否是有效的CSV文件,但目前还没有多少选择。 有没有办法可以暂时删除XML字段或更好,解析它?
源文件示例:
audit_record_id|audit_state|audit_event|audit_reason|delta|service_name|audit_date
12345|NONE|LOGIN||<?xml version="1.0" encoding="UTF-8"?> <AuditedChangedData/>||2015-09-21 01:00:16.770
123457|SUCCESS|TRANSACTION|tran_transfers|<?xml version="1.0" encoding="UTF-8"?> <AuditedChangedData><Property name="interval_type"></Property>....</Final></Property></AuditedChangedData>|TRANSACTIONS|2015-09-21 01:49:43.697
Logstash配置:
if [type] == "Audit" {
if ([message] =~ "audit_record_id") {
drop {}
}
csv {
separator => ["|"]
columns => ["audit_record_id","audit_state","audit_event","audit_reason","delta","service_name","audit_date"]
}
mutate { remove_field => ["message"] }
date { match => [ "audit_date", "yyyy-mm-dd HH:mm:ss.SSS" ] target => "audit_date" }
}
}
我收到的错误是:
:exception=>#<CSV::MalformedCSVError: Illegal quoting in line 1.>
非常感谢任何帮助。