我有一个CSV文件,我想在我的弹性搜索中导入它。
我在Windows 10上,我也有一个Kibana能够在导入后浏览数据。我使用Logstash尝试进行此导入。
我的所有服务(Kibana,ES和Logstash)都在我的本地主机上运行。
我尝试使用以下Logstash配置文件(我的csv文件位于正确的路径中):
input {
file {
path => ["E:\Programmes\Logstash\logstash-2.2.0\data\*.csv"]
start_position => "beginning"
}
}
filter {
csv {
columns => ["billing_entity","invoice","company","username","reference","line_number","recipient_number","zone","network","date","time","country","duration","cost","currency","call_origin","billing_type"]
separator => ";"
}
#grok {
# match => { "call" => "%{WORD:billing_entity} %{WORD:invoice} %{WORD:company} %{WORD:username} %{WORD:reference} %{NUMBER:line_number} %{NUMBER:recipient_number} %{WORD:zone} %{WORD:network} %{DATE:date} %{TIME:time} %{WORD:country} %{WORD:duration} %{NUMBER:cost} %{WORD:currency} %{WORD:call_origin} %{WORD:billing_type}" }
#}
}
output {
elasticsearch {
action => "index"
index => "call_samples"
#index => "call-%{+YYYY.MM.dd}"
hosts => "localhost"
workers => 1
}
}
如您所见,我尝试使用' csv '或' grok '过滤器。
然后我使用此配置文件以详细模式logstash启动:
logstash.bat -f ..\conf\logstash.conf -v > logfile.txt
编辑:每次尝试后,我都会删除生成的sincedb文件以模拟更改。但无论如何我注意到它们是空的
但在日志中,我认为没有相关内容:
message =>“使用映射模板” message =>“正在尝试安装模板” message =>“新Elasticsearch输出” message =>“注册文件输入” message =>“没有设置sincedb_path,生成o .... message =>“使用来自...的映射模板 message =>“正在尝试安装模板” message =>“新Elasticsearch输出” message =>“正在启动管道” message =>“管道已启动”
完全相同我的文件被忽略....我还尝试了几个索引等...它永远不会导入数据。
要检查数据是否存在,我在localhost:9200上进行查询,或者使用索引“call_samples”浏览Kibana搜索栏“索引名称或模式”。
有人可以帮我吗?我在这一点上陷入困境......谢谢
编辑2 : 好吧,我对这个很笨,我只是想在启动logstash时将日志流重定向到一个文件:
logstash.bat -f ..\conf\logstash.conf -v > logfile.txt
但它可能会破坏导入的输入文件。所以我刚删除了我重定向文件的部分:
logstash.bat -f ..\conf\logstash.conf -v
现在,我的索引已正确创建,但没有导入数据......
答案 0 :(得分:0)
这是一个编码问题,即使在详细模式下,也从未告诉我它失败了什么......甚至没有一点线索。
所以我测试了一个用UTF-8编码的新测试文件,它运行良好......