我是elasticsearch的新手,这是我的logstash.conf文件
input {
#stdin {}
file {
path => "/demo_logs/2015-12-14.txt"
start_position => "beginning"
}
}
filter {
csv {
columns => ["data_date", "ip", "method", "status", "time"]
separator => ","
}
}
output {
elasticsearch {
action => "index"
hosts => "localhost"
index => "logstash-%{+YYYY.MM.dd}"
workers => 1
}
stdout { codec => rubydebug }
}
我使用/ bin / logstach -f logstash.conf触发了conf文件 loggstash已启动,没有关于打开文件并在elasticsearch
中编入索引的过程所以我只是注释了stdin {}以获取终端中的输入,如下所示
input{
stdin {}
#file {
#path => "/demo_logs/2015-12-14.txt"
#start_position => "beginning"
#}
}
我再次运行conf文件并将值插入
2015-12-14 07:29:24.356302,127.0.0.1,get_names,exit,0:00:00.298635
显示错误为
Trouble parsing csv {:field=>"message", :source=>"", :exception=>#<NoMethodError: undefined method `each_index' for nil:NilClass>, :level=>:warn}
任何人都可以帮助这两件事从.txt文件成功执行logstash.conf文件并成功索引该.txt文件中的所有值。
我也尝试使用grok过滤器,但我无法制作它,如果它的grok过滤器对我来说也很棒
由于
答案 0 :(得分:0)
这可能主要是因为您的数据包含空行。如果是日志文件,您可以在记事本++中打开它,然后转到编辑 - >行操作 - >删除空白行。希望这有帮助