0

ruby 过滤器中的 ruby​​ 过滤器在 => 处引发错误。我对如何使它工作感到困惑。我应该从具有许多 json 对象的日志文件中删除字段。我正在删除带有很长键的条目。

 input {
 file {
type => "syslog"

# Wildcards work, here :)
path => ["C:\Users\ppurush\Desktop\test\*.log"]


 }
}

filter{
ruby {
 code =>"

     keyval = [url][queryString].split('&')

            for field in keyval
                result = field.split(': ')
                key = result[0]
                if key =~ /^.{50,}$/
          ruby {
                remove_field =>"[  "[url][queryString]" ]"
                }
            end
"
    }
}

output {
  stdout { }
  elasticsearch { embedded => true }
}
4

1 回答 1

2

ruby 代码用双引号括起来,这意味着您不能在 ruby​​ 代码本身内使用双引号。

另外,尝试捕获错误:

ruby {
    code => "

      begin

        # your great code goes here

      rescue Exception => e

        event['ruby_exception'] = 'YOUR_FILTER_NAME: ' + e.message

      end

   "
}
于 2015-08-31T21:51:17.597 回答