2017-01-24 8 views
0

を見つけることができません:Logstashは、Windows上でlogstash 5を実行しようとするとlog4j2.properties設定ファイル

C:\Development\workspace\logstash>C:\Development\Software\logstash-5.1.2\bin\logstash.bat -f robot-log.js

それはエラーを以下与える:

Could not find log4j2 configuration at path /Development/Software/logstash-5.1.2/config/log4j2.properties. Using default config which logs to console 
15:03:53.667 [[main]-pipeline-manager] INFO logstash.filters.multiline - Grok loading patterns from file {:path=>"C:/Development/Software/logstash-5.1.2/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-4.0.2/patterns/aws"} 
15:03:53.684 [[main]-pipeline-manager] INFO logstash.filters.multiline - Grok loading patterns from file {:path=>"C:/Development/Software/logstash-5.1.2/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-4.0.2/patterns/bacula"} 
15:03:53.693 [[main]-pipeline-manager] INFO logstash.filters.multiline - Grok loading patterns from file ... 

ファイルが実際にディレクトリ内に存在しています。なぜlogstashはそれを見つけることができませんか?

注:: 私はもともと、これはLinuxのパス区切り文字を使用したRubyの問題でした。しかし、@Stefanが以下のコメントで指摘したように、RubyはWindowsでもLinuxスタイルのパスを受け入れる。

+1

AFAIK、Rubyは、パスの区切り文字として '/'をウィンドウ下でも受け入れることができます。セパレータが問題の原因になっていますか? – Stefan

+0

@Stefan設定ファイルにはデフォルトでlogstashが付属していると思います。そして私はその道にあるその存在を見ることができます。 –

+0

@スティファンあなたは正しい。それはRubyの問題ではありませんが、logstashのバグと思われます。 –

答えて

1

これはlogstashの最新バージョンのバグだそうだ。 logger.rb下では、コードは次の通りです:

def self.initialize(config_location) 
     @@config_mutex.synchronize do 
      if @@logging_context.nil? 
      file_path = URI(config_location).path 
      if ::File.exists?(file_path) 
       logs_location = java.lang.System.getProperty("ls.logs") 
       puts "Sending Logstash's logs to #{logs_location} which is now configured via log4j2.properties" 
       @@logging_context = Configurator.initialize(nil, config_location) 
      else 
       # fall back to default config 
       puts "Could not find log4j2 configuration at path #{file_path}. Using default config which logs to console" 
       @@logging_context = Configurator.initialize(DefaultConfiguration.new) 
      end 
      end 
     end 
     end 
入力は、私がなぜlogstash見当がつかないので、私はRubyのプログラマじゃない http://foo.com/posts?id=30&limit=5#time=1305298413

ときdocumentationによると、それは/postsを返すためURI.pathへの呼び出しが問題と思われる

devsはここでそれを使用しました。しかし、file_path = URI(config_location).pathfile_path = config_locationに置き換えるだけで問題が解決します。

C:\Development\workspace\logstash>C:\Development\Software\logstash-5.1.2\bin\logstash.bat -f robot-log.js 
Sending Logstash's logs to C:/Development/Software/logstash-5.1.2/logs which is now configured via log4j2.properties 
[2017-01-24T15:22:04,754][INFO ][logstash.filters.multiline] Grok loading patterns from file {:path=>"C:/Development/Software/logstash-5.1.2/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-4.0.2/patterns/aws"} 
[2017-01-24T15:22:04,769][INFO ][logstash.filters.multiline] Grok loading patterns from file {:path=>"C:/Development/Software/logstash-5.1.2/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-4.0.2/patterns/bacula"} 
[2017-01-24T15:22:04,772][INFO ][logstash.filters.multiline] Grok loading patterns from file {:path=>"C:/Development/Software/logstash-5.1.2/vendor/bundle/jruby/1.9/gems/logstash-patterns-core-4.0.2/patterns/bro"} 
関連する問題