Logstash csv输入输出到弹性搜索

时间:2014-08-04 17:28:36

标签: logstash

我是 Logstash 的新手,我想使用 Logstash Elasticsearch 来显示一些 csv 数据的 Kibana

我的 csv 格式如下所示:

        * Level 2 SMS *
[APAC] tre Alerts Feed is SEVERE on dtryee  (rajdhani-apac)
Date/Time: 2014.07.31 13:45:32
Last Value: SEVERE
Event age: 50m,sent,Thu  31 Jul 2014 03:45:47 +0000,2010-04-01,1,A***********,S************,outbound-api,+1234567,+876543287,-0.02300,USD

使用conf文件如下:

input {
    file {
        path => ["/opt/sms_log.csv"]
        start_position => "beginning"
    }
}
filter {
    csv {
        columns => ['body', 'status', 'SentDate',  'ApiVersion', 'NumSegments', 'AccountSid', 'Sid', 'Direction', 'From', 'To', 'Price', 'PriceUnit']
    }
}
output {
  elasticsearch { host => localhost }
}

我没有得到所需的输出。任何人都可以看看这些并给我一些建议吗?

1 个答案:

答案 0 :(得分:0)

我想您可能想要从Event age:

获取数据

如果是,您必须先使用grok过滤器来解析Event age并满足csv格式! 例如,您必须grok输出数据并将其放在字段中,例如:csv_data

  

50m,发送,2014年7月31日星期三03:45:47 + 0000,2010-04-01,1,A ***********,S ********* ***,outbound-api,+ 1234567,+ 876543287,-0.02300,USD

然后,在csv过滤器中,您必须指定源字段:

filter {
    csv {
        columns => ['body', 'status', 'SentDate',  'ApiVersion', 'NumSegments', 'AccountSid', 'Sid', 'Direction', 'From', 'To', 'Price', 'PriceUnit']
        source => "csv_data"
    }
}

FYI