Logstash CSV输出插件

时间:2017-02-08 17:26:18

标签: csv logstash logstash-configuration

我正在使用Logstash来解析包含单行JSON数据的文件,并将其输出为CSV格式的文件。它不是将数据输出为漂亮的分离值,而是使用时间戳,主机和消息字段为我提供单行数据。我在Logstash官方论坛上找到了this question,但它没有回复。有没有其他人遇到过这个问题,知道如何解决它或有任何建议?提前谢谢。

输出

当前输出

2017-02-08T16:48:45.907Z %{host} %{message}
2017-02-08T16:48:45.907Z %{host} %{message}
2017-02-08T16:48:45.907Z %{host} %{message}
2017-02-08T16:48:45.907Z %{host} %{message}
2017-02-08T16:48:45.907Z %{host} %{message}
2017-02-08T16:48:45.907Z %{host} %{message}

期望的输出

timestamp, id, name
timestamp, id, name
timestamp, id, name

配置

input {
    file {
        path => "input path"
        sincedb_path => "C:\Logstash\.sincedb*"
        start_position => "beginning"
        codec => "json"
        type => "type"
    }
}

filter {
    mutate {
        add_field => {"eventName" => "%{[event][eventName]}"}
        add_field => {"uniqueDeviceID" => "%{[event][deviceSegment][uniqueDeviceID]}"}
    }
    prune {
        whitelist_names => ["eventName", "uniqueDeviceID", "@timestamp"]
    }
}

output {
    stdout {codec => rubydebug}
    csv {
        fields => ["uniqueDeviceID", "eventName", "@timestamp"]
        path => "output path"
    }
}