我正在尝试将以下csv格式的数据导入elasticsearch
以下是我的SampleCSV.csv
文件
Date,Amount,Type,Db/Cr,Desc
4/1/2015,10773,Car M&F,Db,Insurance
4/1/2015,900,Supporting Item,Db,Wifi Router
4/1/2015,1000,Car M&F,Db,Fuel
4/1/2015,500,Car M&F,Db,Stepni Tyre Tube
4/1/2015,770,FI,Db,FI
4/1/2015,65,FI,Db,Milk
我使用的配置如下:
input {
stdin {
type => "sample"
}
file {
path => "C:/Users/Deepak/Desktop/SampleCSV.csv"
start_position => "beginning"
} }
filter {
csv {
columns => ["Date","Amount","Type","Db/Cr","Desc"]
separator => ","
}
}
elasticsearch {
action => "index"
host => "localhost"
index => "sample"
workers => 1
}
stdout {
debug=>true
}
}
我正在执行命令
C:\MyDrive\Apps\logstash-2.0.0\bin>logstash agent -f C:\MyDrive\Apps\logstash-2.
0.0\bin\MyLogsConfig.conf
io/console not supported; tty will not be manipulated
Default settings used: Filter workers: 2
Logstash startup completed
现在我的问题是,当我在kibana中寻找"样品"相关索引我根本没有得到任何数据。它看起来没有数据导入弹性搜索,因此kibana没有得到任何东西。
你知道为什么吗?
答案 0 :(得分:0)
要考虑的几件事情。您可以将调试问题分为两部分:
首先,您要确保logstash正在按照您的预期获取文件内容。为此,您可以删除/注释elasticsearch输出。重新启动logstash并向SampleCSV.csv文件中添加一行新数据(不要忘记新行末尾的newcline / CR,否则会被拾取)。如果logstash选择新行,它应该出现在控制台输出中(因为你添加了stdout输出过滤器)。不要忘记文件输入会记住它最后从日志文件读取的位置并继续从该位置读取(它将此索引存储在名为since_db的特殊文件中)。 start_position => "开始"只有在您第一次启动logstash时才有效,在后续运行中它将从上次开始读取它意味着您不会在控制台中看到任何新行,除非您。)将新行添加到您的文件或b。)手动删除since_db文件(sincedb_path => null在Windows下不起作用,至少在我上次尝试时)。
一旦你开始工作,你就可以开始研究elasticsearch / kibana方面的事情了。在查看您的配置时,我建议您坚持使用默认索引名称模式(logstash-XXX,其中XXX类似于创建日期,请注意:在您的索引名称或者弹性搜索中拒绝使用大写字母将拒绝你的数据)。您应该使用默认模式,因为asfaik特殊的logstash索引映射(例如原始字段,...)仅为该名称模式注册。如果你改变了,你也必须改变映射。
ELK堆栈在开始时有点令人困惑,但不要犹豫,问你是否还有其他问题。