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のサンプル がほとんど動かないんだけど・・・