2016-01-12 1 views
1

Я новичок в elasticsearch это мой logstash.conf файл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 loggstash начал и ни один процесс об открытом файле и не индексируется в elasticsearch

так я просто сделал ООН свой комментарий {} стандартного ввода для получения ввода в терминале, как показано ниже

input{ 
     stdin {} 
     #file { 
     #path => "/demo_logs/2015-12-14.txt" 
     #start_position => "beginning" 
     #} 
} 

раз я запустить файл конф и вставить значение в качестве

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} 

может кто-нибудь помочь в этом две вещи, чтобы успешно выполнить logstash.conf файл из TXT-файла и успешно индексировать все значения в этом .txt-файле.

я тоже пытался с ГРКАМИ фильтром, но я не мог это сделать, если его Grok фильтр также отлично подходит для меня

Благодарности

+0

Какую версию Logstash вы используете? – Val

+0

Как насчет использования elasticsearch_http вместо elasticsearch? – vdolez

ответ

0

Это может быть в основном из-за того, что ваши данные содержат пустые строки. Если это файл журнала, вы можете открыть его в блокноте ++ и перейти в edit-> line operations-> удалить пустые строки. Надеюсь, это поможет