2016-08-03 179 views
0

我想获得有关ruby过滤器中代码的帮助。logstash中的ruby代码与_rubyexception失败

logstash版本是5.0.0 alpha4。

我正在测试ruby过滤器中的代码如下,但我越来越_rubyexception。

ruby { 
    code => " 
     event['newfield'] = 'test' 
    " 
    } 

ruby​​ filter在filter {}中定义。 的logstash.log显示如下,

:timestamp=>"2016-08-03T15:26:47.291000+0900", :message=>"Ruby exception occurred: undefined method[]=' for 2016-08-03T06:26:46.829Z test %{message}:LogStash::Event", :level=>:error} 

我找不到之所以红宝石过滤器无法使用事件对象。 我很感激能否帮助解决这个问题。

感谢, 宇

回答

5

有一个在Logstash 5.0.0新事件的API,现在你需要进行如下设置事件字段:

ruby { 
    code => " 
     event.set('newfield', 'test') 
    " 
    } 
+0

工作就像一个魅力!谢谢! –

+0

真棒,很高兴它帮助! – Val

+0

API:https://www.elastic.co/guide/en/logstash/5.x/event-api.html – drinor

1

为了得到字段名值:

ruby { 
code => " 
value = (event.get('field_name')) 
    " 
}