Ruby 发生异常:nil:NilClass 的未定义方法“split”

Ruby exception occurred: undefined method `split' for nil:NilClass

我在 logstash 中遇到问题。 我写了以下代码:

ruby {
        code => 'separated = event.get("[request_url]").split("/")
                 separated.each_index {|x|
                         temp = "P" + x.to_s
                         event.set(temp,  separated[x])}'
    }

我收到以下错误:

[2021-07-26T16:27:37,135][ERROR][logstash.filters.ruby    ][main][23b8bf19dac851a85d8c4d86162422f06362d00bf13b156291eea5b597c7f7ec] Ruby exception occurred: undefined method `split' for nil:NilClass {:class=>"NoMethodError", :backtrace=>["(ruby filter code):2:in `block in filter_method'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-filter-ruby-3.1.7/lib/logstash/filters/ruby.rb:93:in `inline_script'", "/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-filter-ruby-3.1.7/lib/logstash/filters/ruby.rb:86:in `filter'", "/usr/share/logstash/logstash-core/lib/logstash/filters/base.rb:159:in `do_filter'", "/usr/share/logstash/logstash-core/lib/logstash/filters/base.rb:178:in `block in multi_filter'", "org/jruby/RubyArray.java:1809:in `each'", "/usr/share/logstash/logstash-core/lib/logstash/filters/base.rb:175:in `multi_filter'", "org/logstash/config/ir/compiler/AbstractFilterDelegatorExt.java:134:in `multi_filter'", "/usr/share/logstash/logstash-core/lib/logstash/java_pipeline.rb:295:in `block in start_workers'"]}

我也不知道是什么问题! 谁能帮帮我?

我应该在使用之前测试这个值。 所以我将代码更改为:

ruby {
        code => 'urls = event.get("[request_url]")
                 if urls
                        separated = urls.split("/")
                        if separated
                                separated.each_index {|x|
                                        temp = "P" + x.to_s
                                        event.set(temp,  separated[x])
                                }
                        end
                 end'
    }

错误已修复。