Logstash csv输入输出到弹性搜索

Logstash csv输入输出到弹性搜索,logstash,Logstash,我是Logstash新手,我想使用Logstash和Elasticsearch和Kibana可视化一些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

我是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 }
}

我没有得到想要的输出。谁能看一下这些并给我一点建议吗?

我想你可能想从
事件时代获取数据:

如果是,您必须首先使用
grok
过滤器来解析
事件年龄
并满足csv格式! 例如,您必须
grok
取出数据并将其放在字段中,例如:
csv\u data

50米,已发送,2014年7月31日星期四03:45:47+00002010-04-01,1,A************,S************,出站api,+1234567,+876543287,-0.02300,美元

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

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

仅供参考

不,我需要全部数据。*第2级SMS*[APAC]tre警报源在dtryee(rajdhani APAC)严重日期/时间:2014.07.31 13:45:32最后值:严重事件年龄:50米,已发送,2014年7月31日星期四03:45:47+00002010-04-01,1,A***************,S***************,出站api,+1234567,+876543287,-0.02300,USDOK,您必须过滤所有“\n”因为在csv格式中,“\n”表示新行。