logstash中的Ruby代码因_rubyexception而失败

时间:2016-08-03 06:36:43

标签: ruby elasticsearch logstash

我想获得ruby过滤器中代码的帮助。

logstash版本为5.0.0 alpha4。

我正在测试ruby过滤器中的代码,如下所示,但我得到_rubyexception。

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

ruby​​过滤器在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}

我无法找到ruby过滤器无法使用事件对象的原因。 如果我能得到一些帮助来解决这个问题,我感激不尽。

谢谢, 于

2 个答案:

答案 0 :(得分:5)

Logstash 5.0.0中有一个新的事件API,现在您需要在事件上设置字段,如下所示:

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

答案 1 :(得分:2)

从字段名称获取值:

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