2016-04-22 4 views
0

У меня проблемы с работой logstash. Работает Basic logstash Example. Но потом я борюсь за Advanced Pipeline Example. Возможно, это может быть проблема с поиском elastics.logstash простой файл вход/выход

Теперь я просто хочу, чтобы проверить простой пример работы:

  • вход: чтение Textfile-а
  • выход: генерировать новые Textfile-б с вводом текстового файла-а

Но я борюсь с этим. Моя конфигурация такова:

# foo.conf 
input { 
    file { 
     path => "C:/logstash-2.3.1/logstash-tutorial-dataset" 
     start_position => "beginning" 
    } 
} 
output { 
    stdout {} 
    file { 
     #message_format => "%{foo},%{bar},%{fii},%{bor},%{bing}" 
     #codec => { line { format => "custom format: %{message}"}} 
     path => "C:/output.txt" 
    } 
} 

Когда я запускаю logstash, я получаю следующий ответ и ничего не происходит.

bin/logstash -f foo.conf -v --debug --verbose 
io/console not supported; tty will not be manipulated 
{:timestamp=>"2016-04-22T13:41:15.514000+0200", :message=>"starting agent", :level=>:info} 
{:timestamp=>"2016-04-22T13:41:15.518000+0200", :message=>"starting pipeline", :id=>"main", :level=>:info} 
{:timestamp=>"2016-04-22T13:41:16.035000+0200", :message=>"Registering file input", :path=>["C:/logstash-2.3.1/logstash-tutorial-dataset"], :level=>:info} 
{:timestamp=>"2016-04-22T13:41:16.039000+0200", :message=>"No sincedb_path set, generating one based on the file path", :sincedb_path=>"c:/Users/foobar/.sincedb_802dc9c88c8fad631bf3d3a5c96435e4", :path=>["C:/logstash-2.3.1/logstash-tutorial-dataset"], :level=>:info} 
{:timestamp=>"2016-04-22T13:41:16.103000+0200", :message=>"Starting pipeline", :id=>"main", :pipeline_workers=>4, :batch_size=>125, :batch_delay=>5, :max_inflight=>500, :level=>:info} 
{:timestamp=>"2016-04-22T13:41:16.106000+0200", :message=>"Pipeline main started"} 

Как получить простой пример работы?

ответ

0

ignore_older => 0 сделал трюк, см. Документaion: ignore_older.

Рабочая конфигурация выглядит следующим образом:

# foo.conf 
input { 
    file { 
     path => "C:/logstash-2.3.1/logstash-tutorial-dataset" 
     start_position => "beginning" 
     ignore_older => 0 
    } 
} 
output { 
    stdout {} 
    file { 
     path => "C:/output.txt" 
    } 
} 

Теперь файл .sincedb* содержит, а также содержание.

0

Logstash запоминает, какие файлы он обработал и сколько из них обработал. В обычных операциях это позволяет перезагрузить его в случае сбоя, а не журналов перепрограммирования.

В вашем случае я предполагаю, что ваш файл журнала уже обработан, поэтому logstash игнорирует его. Параметр «start_position», который вы предоставили, документирован для применения только к новым файлам.

Вам необходимо либо сбросить свой реестр (возможно, файлы, такие как /var/lib/logstash/.sincedb*), либо установить параметр «sincedb_path» в вашем файле {} в/dev/null, чтобы он не выполнялся «Поддерживайте историю во время тестирования.

+0

Гребень пуст. Я удалил его несколько раз, но результат не изменился. Что-то подключено. Есть ли еще один простой мир, который я могу запустить для тестирования? – jerik

+0

Если файл пуст, то logstash не обрабатывает ваш файл. Возможно, сейчас он слишком стар (см. «Ignore_older»)? –