【问题标题】:Ruby plugin in logstash not workinglogstash 中的 Ruby 插件不起作用
【发布时间】:2015-08-31 21:19:55
【问题描述】:

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 }
}

【问题讨论】:

    标签: ruby logstash logstash-configuration


    【解决方案1】:

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

    另外,尝试捕捉错误:

    ruby {
        code => "
    
          begin
    
            # your great code goes here
    
          rescue Exception => e
    
            event['ruby_exception'] = 'YOUR_FILTER_NAME: ' + e.message
    
          end
    
       "
    }
    

    【讨论】:

    • 谢谢。这是一个非常有效的答案。双引号加双引号。
    • 我无法访问 [url][queryString],因为它是 json。有什么办法吗?
    • 当您使用 ruby​​ 时,一切都在“事件”中。尝试事件['url']['queryString']
    • 它还会为 remove_field =>"[ "[url][queryString]" ]" 行在 =>.. 处引发错误
    猜你喜欢
    • 2018-09-29
    • 1970-01-01
    • 2019-10-27
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    • 2014-07-31
    • 1970-01-01
    • 2015-07-09
    相关资源
    最近更新 更多