2016-04-22 68 views
0

我無法使logstash正常工作。 Basic logstash Example工作。但後來我奮鬥在Advanced Pipeline Example。也許這可能是彈性搜索的一個問題。logstash簡單文件輸入/輸出

現在我只是想檢查,如果一個簡單的例子工作:

  • 輸入:讀文本文件,一個
  • 輸出:與文本文件,一個
的輸入產生新的文本文件-B

但我爲此而努力。我的配置如下:

# 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時,我得到下面的響應和nothings發生。

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做的竅門,請參閱文檔: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

sincedb是空的。我多次刪除它,但結果沒有變化。有些東西是有線的。是否有另一個簡單的hello world測試,我可以運行測試? – jerik

+0

如果文件爲空,則logstash不處理您的文件。也許現在太老了(請參閱「ignore_older」)? –