首页 文章

Logstash csv输入输出到弹性搜索

提问于
浏览
0

我是 Logstash 的新手,我想使用Logstash和 ElasticsearchKibana 来显示一些 csv 数据 .

我的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

    我想你可能想从 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

相关问题