2

logstash を機能させるのに問題があります。基本的なlogstashの例は機能します。しかし、それからAdvanced Pipeline Exampleに苦労しています。おそらく、それはelasticsearchの問題でもある可能性があります。

ここで、単純な例が機能するかどうかを確認したいだけです。

  • input: テキストファイル a を読む
  • output: textfile-a の入力で新しい textfile-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"}

簡単な例を機能させるにはどうすればよいですか?

4

2 に答える 2

3

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*ファイルにはコンテンツも含まれています。

于 2016-10-17T16:23:40.923 に答える
1

Logstash は、処理したファイルと、処理したファイルの量を記憶しています。通常の操作では、これにより、障害が発生した場合にログを再処理せずに再起動できます。

あなたの場合、ログ ファイルは既に 1 回処理されているので、logstash はそれを無視しています。あなたが提供した「start_position」パラメーターは、新しいファイルにのみ適用されるように文書化されています。

レジストリ (おそらく /var/lib/logstash/.sincedb* などのファイル) をリセットするか、ファイルの「sincedb_path」パラメーターを /dev/null に設定して、テスト中の履歴。

于 2016-04-22T15:50:33.870 に答える