2016-04-22 15 views
0

logstashを動作させるのに問題があります。 Basic logstash Exampleが機能します。しかし、私はAdvanced Pipeline Exampleで苦労しています。おそらくそれはelasticsearchの問題かもしれません。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を実行すると、次のような応答が表示されます。

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は空です。私はそれを数回削除しましたが、結果に変化はありませんでした。何かが配線されています。私はテストのために実行することができる他の簡単な世界のテストがありますか? – jerik

+0

ファイルが空の場合、logstashはファイルを処理していません。おそらくそれは古すぎるでしょう(「ignore_older」を参照)? –