2016-04-22 66 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”)? –