"Ruby ex-6ren">
gpt4 book ai didi

ruby - Logstash 错误 - 如何追踪

转载 作者:太空宇宙 更新时间:2023-11-03 16:19:14 25 4
gpt4 key购买 nike

我在 Logstash 日志中收到以下内容,但无法弄清楚它的来源:

{:timestamp=>"2016-05-19T12:14:00.883000-0400", :message=>"Ruby exception occurred: undefined method `[]' for nil:NilClass", :level=>:error}

我还有其他一些错误,但我无法判断是哪个记录导致的。我怀疑我的错误来自日期操作,但问题更笼统。

如何让 logstash 打印导致此错误或任何类似错误的整个事件?

我的过滤器输出看起来像这样,输入来自 JDBC 源:

filter {
mutate
{
convert => [ "dt", "string" ]
}
date {
match => [ "dt", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"]
}
ruby {
code => "event['idx'] = event['dt'][0..9]"
}
ruby {
code => "event['id'] = event['@timestamp'].time().to_f.to_s + '' + event['sessionid']"
}

}

output {
stdout {
codec => rubydebug
}
elasticsearch {
hosts => ["localhost" ]
index => "prefix-%{idx}"
document_id => "%{id}"
}
}

最佳答案

这行似乎在 ruby 过滤器的 filter 方法中:

def filter(event)
begin
@codeblock.call(event)
filter_matched(event)
rescue Exception => e
@logger.error("Ruby exception occurred: #{e}")
event.tag("_rubyexception")
end
end

我认为您可以添加一条错误消息来打印事件。这样你就会知道是哪个事件导致了错误:

def filter(event)
begin
@codeblock.call(event)
filter_matched(event)
rescue Exception => e
@logger.error("Ruby exception occurred: #{e}")
@logger.error("Event causing error: #{event}") # <= Log event
event.tag("_rubyexception")
end
end

在文件中:vendor/bundle/jruby/1.9/gems/logstash-filter-ruby-2.0.5/lib/logstash/filters/ruby.rb for Logstash 2.3.2

关于ruby - Logstash 错误 - 如何追踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37328891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com