Logstash v5.0 beta1で躓いたところ

その1 Windows版で起動時にMalformedURLException

ダウンロードしてそのまま起動してコレである。

公式のIssuesにも同じ現象が載ってたけど対策は書いてなかった。

色々ググったところ、log4j.propertiesのファイルパスをfile://の形式で渡せば良いみたいなのでbatファイルの中を見ながら渡せる方法を探した。

結局下記を起動前の環境変数にセットしておけばよかった

set jruby_opts=-J-Dlog4j.configurationFile=<Logstashを解凍したフォルダ>\logstash-5.0.0-beta1\config\log4j2.properties

その2 filterのruby使用時にRuby exception occurred: undefined method `[]'

日付から"時"や"曜日"を抜き出したかったので下のように書いたら

  ruby {
    code => "event['dayOfWeek'] = event['@timestamp'].time.strftime('%a')"
  }    

 Logstash 2.4までは動くのに5.0 betaからエラーで動かなかった・・・

Githubの修正履歴まで確認してわかったのは、event['xxx']という書き方がNGになって、setter,getterをちゃんと書く必要があるということ。

下のコードは上のコードと同じ事をしているけど、v5.0 beta1で動くコード

  ruby {
    code => "event.set('dayOfWeek',event.get('@timestamp').time.strftime('%a'))"
  }    

 

この修正のおかげで、ググって見つけられるfilter rubyのサンプル がほとんど動かないんだけど・・・